Ir para o conteúdo

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).

anexo

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.

anexo

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:

anexo

Selecione "Criar servidor web"

anexo

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".

b99af9bd51cfb07763abfab284721db0

Selecione a versão apropriada do aplicativo.

anexo

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.

anexo

Marque "Criar este ambiente dentro de uma VPC".

f851116a775fa616900ca9e4036d81f9

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.

anexo

Configure as configurações de VPC conforme apropriado. A visibilidade do ELB deve ser Externa

29c91dae1ee0892d3a888e5af6b42537

Revise o resumo:

anexo

Permissões

anexo

ad3cada27cee8a2422dcd4cdcf4f52c1

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:

  1. Configuração... Configuração do software... Definir

    1. ConnectionInfo para uma string que corresponda às informações de conexão do seu banco de dados

    2. DataEncryption:S3BucketEndpoint para o bucket que você configurou na Etapa 1

    3. DataEncryption:S3KeyPrefix para o nome do ambiente do Elastic Beanstalk.

    4. Criptografia de Dados:S3KeyPrefix

    5. SharedState:RedisConnectionString para a string de conexão apropriada para redis (ex: 10.0.2.139:16016)

    6. 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

  1. Efetue login no Amazon Web Services Console.

  2. Em Serviços, escolha Elastic Beanstalk.

  3. Selecione o ambiente que você está atualizando.

  4. Selecione Configuração no menu à esquerda.

  5. Selecione a engrenagem ao lado de Balanceamento de carga.

  6. Defina a Porta do ouvinte seguro como 443.

  7. 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.

  8. Clique no botão Salvar.

anexo

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.