Implantação de Alta Disponibilidade na AWS
Introdução
App Builder pode aproveitar muitos serviços da AWS para auxiliar na implantação de um ambiente de alta disponibilidade (HA).
Elementos AWS
-
S3 Bucket - configurado para permitir App Builder acesso de leitura/gravação para fins de criação e compartilhamento de chaves de segurança.
-
App Builder banco de dados - Pode ser executado usando RDS ou instalado em instâncias EC2.
-
ElastiCache - Usado como um barramento de mensagens para compartilhamento de informações entre App Builder instância
-
Elastic Beanstalk - Gerencia App Builder instâncias e fornece um balanceador de carga para distribuir solicitações de clientes.
Nota
Embora uma parte considerável deste documento discuta implantação do Elastic Beanstalk – isso não é necessário nem obrigatório. App Builder pode ser instalado em instâncias EC2 autônomas e configurado adequadamente. Ele ainda exigirá sincronização de chave de criptografia, Redis / elasticache e configuração do servidor de aplicativos.
Configuração do S3 - Armazenando Chaves de Criptografia de Dados no S3
Conforme observado em Configuração de criptografia de dados, o armazenamento local da instância EC2 não pode ser usado para armazenamento de longo prazo. Consequentemente, as Chaves de Criptografia de Dados (DEKs) devem ser armazenadas em buckets S3.
Buckets S3 Usados para Armazenamento de Chaves de Criptografia de Dados (dek)
Balde | Endereço | Acesso | Notas |
---|---|---|---|
vinyl-data-encryption-keys | https://s3.amazonaws.com/vinyl-data-encryption-keys | aws-elasticbeanstalk- ec2- papel | Bucket S3 padrão usado por ambientes Elastic Beanstalk. |
Dentro do bucket, os DEKs são prefixados com o nome do ambiente do Elastic Beanstalk.
Configurando o armazenamento de chaves de criptografia de dados (DEK) do ambiente Elastic Beanstalk
App Builder vem com um script .ebextensions que registra as propriedades do ambiente para armazenamento DEK. Essas propriedades incluem:
Propriedade | Padrão | Exemplo |
---|---|---|
Armazenamento de chaves de criptografia de dados | S3 | S3 |
DataEncryptionKeyS3BucketEndpoint | https://{bucket}.s3{-aws-region}.amazonaws.com | https://s3.amazonaws.com/vinyl-data-encryption-keys |
DataEncryptionKeyS3KeyPrefix | {nome-do-ambiente-elastic-beanstalk} | zudyacceptance |
App Builder não iniciará com as propriedades de ambiente padrão do Elastic Beanstalk. Você deve alterar os valores DataEncryptionKeyS3BucketEndpoint e DataEncryptionKeyS3KeyPrefix.
Concedendo Acesso de Ambientes do Elastic Beanstalk aos Buckets do S3
Instâncias EC2 dentro de um ambiente Elastic Beanstalk são atribuídas a uma papel. O exemplo de política a seguir concede acesso a um bucket S3.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::{bucket-name}/*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "*"
}
]
}
Configuração do ElastiCache
Use o ElastiCache para facilitar a comunicação entre App Builder servidores. Um pequeno nó, sem réplicas ou shards é tudo o que é necessário.
As informações de configuração serão usadas ao configurar os servidores de aplicativos no Beanstalk e Não-feijão configurações.
Configuração do Banco de Dados
A configuração do banco de dados está fora do escopo deste documento. O Jitterbit pode fornecer instruções de configuração do RDS, se desejado.
Configuração do Elastic Beanstalk
A Amazon modifica sua interface frequentemente. Essas capturas de tela e fluxo são precisos em novembro de 2016.
Crie o ambiente:
Selecione "Criar servidor web"
Selecione IIS.
A configuração será definida como padrão para um valor que não queremos. Selecione "Alterar versão da plataforma" e selecione "8.5 no Windows Server 2012 R2 de 64 bits".
Selecione a versão apropriada do aplicativo.
Insira o nome do ambiente. Isso se tornará parte de uma url que pode ser usada para alcançar esse ambiente. Tenha em mente que o namespace está em todas as instâncias do Elastic Beanstalk de todos os clientes da AWS.
Marque "Criar este ambiente dentro de uma VPC".
O Jitterbit usa instâncias T2.small e T2.medium para fins de desenvolvimento e controle de qualidade, e instâncias maiores para ambientes de produção.
Se você deseja ser notificado sobre problemas ambiente, insira seu endereço email abaixo.
Configure as configurações de VPC conforme apropriado. A visibilidade do ELB deve ser Externa
Revise o resumo:
Permissões
Depois Que o Ambiente Estiver Pronto
O ambiente levará aproximadamente 15 minutos para surgir.
Depois que aparecer verde no painel, configuraremos alguns parâmetros adicionais:
-
Configuração... Configuração do software... Definir
-
ConnectionInfo para uma string que corresponda às informações de conexão do seu banco de dados
-
DataEncryption:S3BucketEndpoint para o bucket que você configurou na Etapa 1
-
DataEncryption:S3KeyPrefix para o nome do ambiente do Elastic Beanstalk.
-
Criptografia de Dados:S3KeyPrefix
-
SharedState:RedisConnectionString para a string de conexão apropriada para redis (ex: 10.0.2.139:16016)
-
EstadoCompartilhado:Provedor
-
Após estes passos você irá para o App Builder site. Isso acionará uma instalação ou atualização do banco de dados, se necessário.
Configurando HTTPS
Por padrão, novos ambientes Elastic Beanstalk não são configurados para HTTPS. HTTPS é altamente recomendado para todos os novos ambientes Elastic Beanstalk.
Os ambientes Elastic Beanstalk encerram a conexão HTTPS no Elastic Load Balancer. App Builder o suporte do para proxies reversos permite detectar e lidar com esse cenário. App Builder reconhece três propriedades de ambiente definidas quando a instância do Elastic Beanstalk é implantada. Essas variáveis de ambiente são scriptadas: você não precisará configurá-las você mesmo.
Configurando o Elastic Beanstalk para aceitar solicitações HTTPS
-
Efetue login no Amazon Web Services Console.
-
Em Serviços, escolha Elastic Beanstalk.
-
Selecione o ambiente que você está atualizando.
-
Selecione Configuração no menu à esquerda.
-
Selecione a engrenagem ao lado de Balanceamento de carga.
-
Defina a Porta do ouvinte seguro como 443.
-
Selecione o ID do certificado SSL aplicável (App Builder usa wildcard.zudy.com – outros sites usarão algo diferente)
Nota
Isso pressupõe que seu novo ambiente Elastic Beanstalk será acessível via *.zudy.com.
-
Clique no botão Salvar.
Configuração do Servidor de Aplicativo Não Beanstalk
Se você não estiver usando o AWS Elastic Beanstalk, você estará configurando servidores de aplicativos manualmente.
Você precisará fazer as seguintes alterações em um padrão App Builder configuração – essas configurações devem ser aplicadas a cada instância de App Builder:
O seguinte deve ser configurado em c:\inetpub\wwwroot\Vinyl\Config\AppSettings.config
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="SharedStateProvider" value="Redis"/>
<add key="RedisConnectionString" value="YOUR_SERVER_HERE:6379"/>
<add key="DataEncryptionKeyStorage" value="S3"/>
<add key="DataEncryptionKeyS3BucketEndpoint" value="https://s3.amazonaws.com/YOUR_BUCKET_HERE"/>
<add key="DataEncryptionKeyS3KeyPrefix" value="YOUR_ENVIRONMENT_NAME"/>
</appSettings>
Cada instância de App Builder deve ter o mesmo arquivo connection.xml.
Após fazer as alterações e reiniciar App Builder, verifique os logs para verificar se as configurações estão sendo selecionadas corretamente.