Acesse aplicativos de contêineres de forma privada na Amazon ECS usando AWS PrivateLink um Network Load Balancer - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Acesse aplicativos de contêineres de forma privada na Amazon ECS usando AWS PrivateLink um Network Load Balancer

Criado por Kirankumar Chandrashekar () AWS

Ambiente: produção

Tecnologias: contêineres e microsserviços; redes; segurança, identidade, conformidade; aplicativos web e móveis

Workload: todas as outras workloads

AWSserviços: AmazonEC2; Amazon EC2 Auto Scaling; Amazon EC2 Container Registry; Amazon; Amazon; EFS AmazonECS; RDS VPC Amazon; Elastic Load Balancing ELB (); Lambda AWS

Esse padrão descreve como hospedar de forma privada um aplicativo de contêiner Docker no Amazon Elastic Container Service ECS (Amazon) por trás de um Network Load Balancer e acessar o aplicativo usando. AWS PrivateLink Em seguida, você pode usar uma rede privada para acessar com segurança os serviços na nuvem da Amazon Web Services (AWS). O Amazon Relational Database Service (RDSAmazon) hospeda o banco de dados relacional para o aplicativo executado na ECS Amazon com alta disponibilidade (HA). O Amazon Elastic File System (AmazonEFS) é usado se o aplicativo exigir armazenamento persistente.

O ECS serviço da Amazon que executa os aplicativos Docker, com um Network Load Balancer no front-end, pode ser associado a um endpoint de nuvem privada virtual VPC () para acesso. AWS PrivateLink Esse serviço de VPC endpoint pode então ser compartilhado com outros VPCs usando seus VPC endpoints. 

Você também pode usar o AWSFargate em vez de um grupo do Amazon Auto EC2 Scaling. Para obter mais informações, consulte Acesse aplicativos de contêineres de forma privada na Amazon ECS usando o AWS Fargate AWS PrivateLink,, e um Network Load Balancer.                          

Pré-requisitos

Usando AWS PrivateLink para acessar um aplicativo de contêiner na Amazon ECS por trás de um Network Load Balancer.

Pilha de tecnologia

  • Amazon CloudWatch

  • Amazon Elastic Compute Cloud (AmazonEC2)

  • Amazon EC2 Auto Scaling

  • Amazon Elastic Container Registry (AmazonECR)

  • Amazon ECS

  • Amazon RDS

  • Amazon Simple Storage Service (Amazon S3)

  • AWSLambda

  • AWS PrivateLink

  • AWS Secrets Manager

  • Application Load Balancer

  • Network Load Balancer

  • VPC

Automação e escala

  • Amazon EC2 — O Amazon Elastic Compute Cloud (AmazonEC2) fornece capacidade de computação escalável na AWS nuvem.

  • Amazon EC2 Auto Scaling — O Amazon EC2 Auto Scaling ajuda você a garantir que você tenha o número correto de instâncias da EC2 Amazon disponíveis para lidar com a carga do seu aplicativo.

  • Amazon ECS — O Amazon Elastic Container Service (AmazonECS) é um serviço de gerenciamento de contêineres altamente escalável e rápido que facilita a execução, a parada e o gerenciamento de contêineres em um cluster.

  • Amazon ECR — O Amazon Elastic Container Registry (AmazonECR) é um serviço gerenciado de registro de imagens de AWS contêineres que é seguro, escalável e confiável.

  • Amazon EFS — O Amazon Elastic File System (AmazonEFS) fornece um sistema de NFS arquivos elástico simples, escalável e totalmente gerenciado para uso com serviços AWS em nuvem e recursos locais.

  • AWSLambda — O Lambda é um serviço de computação para executar código sem provisionar ou gerenciar servidores.

  • Amazon RDS — O Amazon Relational Database Service (RDSAmazon) é um serviço web que facilita a configuração, a operação e a escalabilidade de um banco de dados relacional na AWS nuvem.

  • Amazon S3: o Amazon Simple Storage Service (Amazon S3) serve como armazenamento para a internet. Ele foi projetado para facilitar a computação de escala na web para os desenvolvedores.

  • AWSSecrets Manager — O Secrets Manager ajuda você a substituir credenciais codificadas em seu código, incluindo senhas, fornecendo uma API chamada ao Secrets Manager para recuperar o segredo programaticamente.

  • Amazon VPC — A Amazon Virtual Private Cloud (AmazonVPC) ajuda você a lançar AWS recursos em uma rede virtual que você definiu.

  • Elastic Load Balancing — O Elastic Load Balancing distribui o tráfego de entrada de aplicativos ou de rede em vários destinos, como instâncias, contêineres e endereços IP EC2 da Amazon, em várias zonas de disponibilidade.

  • Docker: o Docker ajuda os desenvolvedores a empacotar, enviar e executar qualquer aplicativo como um contêiner leve, portátil e autossuficiente.

TarefaDescriçãoHabilidades necessárias

Crie umVPC.

  1. Faça login no AWS Management Console e abra o VPC console da Amazon. Escolha Criar VPC, escolher VPCe muito mais

  2. Insira um nome para o seu VPC e escolha um intervalo de CIDR blocos apropriado. 

  3. Especifique duas zonas de disponibilidade, duas sub-redes públicas e quatro sub-redes privadas. Duas sub-redes privadas são para ECS tarefas da Amazon e duas sub-redes privadas são para bancos de dados da Amazon. RDS

  4. Especifique um NAT gateway para cada zona de disponibilidade. 

  5. Escolha Criar VPC.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Criar um Network Load Balancer.

  1. Abra o EC2 console da Amazon e escolha a AWS região que contém seuVPC. 

  2. Em Balanceamento de carga, escolha Balanceadores de carga e escolha Criar balanceador de carga

  3. Escolha Network Load Balancer e, em seguida, Criar

  4. Na página Configurar balanceador de carga, configure seu Network Load Balancer e seu receptor. Importante: certifique-se de escolher o esquema do seu Network Load Balancer como Interno

  5. Escolha as configurações de segurança aplicáveis, configure um grupo de segurança e um grupo-alvo. Escolha Instância ou IP como o Tipo de destino na seção Configurar roteamento. Certifique-se de não registrar um alvo. 

  6. Depois de definir todas as configurações, escolha Avançar: Revisão e, em seguida, escolha Criar.

Administrador de nuvem

Criar um Application Load Balancer.

  1. No EC2 console da Amazon, escolha a mesma região que contém seuVPC.

  2. Em Balanceamento de carga, escolha Balanceadores de carga e escolha Criar balanceador de carga.

  3. Selecione Application Load Balancer e clique em Criar

  4. Configure seu Application Load Balancer e seu receptor. Importante: certifique-se de escolher o esquema do Application Load Balancer como Interno

  5. Escolha as configurações de segurança aplicáveis, configure um grupo de segurança e um grupo-alvo. Escolha Instância ou IP como o Tipo de destino na seção Configurar roteamento. Certifique-se de não registrar um alvo. 

  6. Depois de definir todas as configurações, escolha Avançar: Revisão e, em seguida, escolha Criar.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Crie um sistema de EFS arquivos da Amazon.

  1. Abra o EFS console da Amazon e escolha Criar sistema de arquivos

  2. Na caixa de diálogo Criar sistema de arquivos, insira um nome para seu sistema de arquivos e escolha seuVPC. 

  3. Escolha Criar para criar o sistema de arquivos. 

  4. Configure e configure seu sistema de EFS arquivos da Amazon.

Administrador de nuvem

Monte destinos para as sub-redes.

  1. Volte para o EFS console da Amazon e escolha Sistemas de arquivos. A página Sistemas de arquivos mostra os sistemas de EFS arquivos da Amazon em sua conta. 

  2. Escolha o sistema de arquivos que você criou e escolha Gerenciar para exibir as Zonas de Disponibilidade. Para adicionar um destino de montagem, escolha Adicionar destino de montagem e adicione as quatro sub-redes privadas que você criou.

Administrador de nuvem

Verifique se as sub-redes estão montadas como destinos.

  1. No EFS console da Amazon, escolha Sistemas de arquivos

  2. Escolha Rede para exibir a lista de destinos de montagem existentes. Certifique-se de que elas incluam as quatro sub-redes que você criou.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Criar um bucket do S3.

Abra o console do Amazon S3 e crie um bucket do S3 para armazenar os ativos estáticos do seu aplicativo, se necessário.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Crie uma AWS KMS chave para criptografar o segredo do Secrets Manager.

Abra o console AWS Key Management Service (AWSKMS) e crie uma KMS chave.

Administrador de nuvem

Crie um segredo do Secrets Manager para armazenar a RDS senha da Amazon.

  1. Abra o console do AWS Secrets Manager e crie um novo segredo escolhendo Armazenar um novo segredo

  2. Escolha a KMS chave que você criou e armazene seu novo segredo.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Criar um grupo de sub-redes de banco de dados.

  1. Abra o RDS console da Amazon e escolha Grupos de sub-rede

  2. Escolha Criar grupo de sub-redes de banco de dados e insira um nome e uma descrição para seu grupo de sub-redes de banco de dados. 

  3. Escolha o VPC que você criou anteriormente e escolha as zonas de disponibilidade e sub-redes. Em seguida, selecione Criar.

Administrador de nuvem

Crie uma RDS instância da Amazon.

Crie e configure uma RDS instância da Amazon dentro das sub-redes privadas. Certifique-se de que o Multi-AZ esteja ativado para HA.

Administrador de nuvem

Carregue dados na RDS instância da Amazon.

Carregue os dados relacionais exigidos pelo seu aplicativo na sua RDS instância da Amazon. Esse processo irá variar dependendo das necessidades do seu aplicativo, bem como de como o esquema do banco de dados é definido e projetado.

Administrador de nuvem, DBA
TarefaDescriçãoHabilidades necessárias

Crie um ECS cluster.

  1. Abra o ECS console da Amazon e escolha Clusters.

  2. Escolha Criar clusters e configure um ECS cluster de acordo com as especificações necessárias.

Administrador de nuvem

Criar as imagens do Docker.

Crie as imagens do Docker seguindo as instruções na seção Recursos relacionados.

Administrador de nuvem

Crie ECR repositórios da Amazon.

  1. No ECR console da Amazon, escolha Repositórios. 

  2. Escolha Criar repositório e insira um nome exclusivo para o seu repositório. 

  3. Configure o repositório de acordo com suas especificações, incluindo AWS KMS criptografia, se necessário.

Administrador de nuvem, DevOps engenheiro

Autentique seu cliente Docker para o repositório da AmazonECR.

Para autenticar seu cliente Docker para o ECR repositório da Amazon, execute o aws ecr get-login-password comando “no. AWS CLI

Administrador de nuvem

Envie as imagens do Docker para o ECR repositório da Amazon.

  1. Identifique a imagem do Docker que você deseja enviar e execute o docker images comando no AWSCLI. 

  2. Marque sua imagem com o ECR registro, o repositório e a combinação opcional do nome da tag de imagem da Amazon. 

  3. Envie a imagem do Docker executando o comandodocker push

  4. Repita essas etapas para todas as imagens necessárias.

Administrador de nuvem

Crie uma definição de ECS tarefa da Amazon.

É necessária uma definição de tarefa para executar contêineres Docker na AmazonECS. 

  1. Retorne ao ECS console da Amazon, escolha Definições de tarefas e, em seguida, escolha Criar nova definição de tarefa

  2. Na página Select compatibilities, selecione o tipo de inicialização que sua tarefa deve usar e escolha Next step.

Para obter ajuda na configuração da definição da tarefa, consulte “Criar uma definição de tarefa” na seção Recursos relacionados. Importante: certifique-se de fornecer as imagens do Docker que você enviou para a AmazonECR.

Administrador de nuvem

Crie um ECS serviço da Amazon.

Crie um ECS serviço da Amazon usando o ECS cluster que você criou anteriormente. Certifique-se de escolher Amazon EC2 como o tipo de lançamento e escolher a definição de tarefa criada na etapa anterior, bem como o grupo-alvo do Application Load Balancer.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Crie uma configuração de ativação.

Abra o EC2 console da Amazon e crie uma configuração de lançamento. Certifique-se de que os dados do usuário tenham o código para permitir que as EC2 instâncias se juntem ao ECS cluster desejado. Para ver um exemplo do código necessário, consulte a seção Recursos relacionados.

Administrador de nuvem

Crie um grupo Amazon EC2 Auto Scaling.

Volte para o EC2 console da Amazon e, em Auto Scaling, escolha grupos de Auto Scaling. Configure um grupo do Amazon EC2 Auto Scaling. Certifique-se de escolher as sub-redes privadas e a configuração de inicialização que você criou anteriormente.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Configure o AWS PrivateLink endpoint.

  1. No VPC console da Amazon, crie um AWS PrivateLink endpoint. 

  2. Associe esse endpoint ao Network Load Balancer, que disponibiliza o aplicativo hospedado na ECS Amazon de forma privada para os clientes. 

Para obter mais informações, consulte a seção Recursos relacionados.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Crie um VPC endpoint.

Crie um VPC endpoint para o AWS PrivateLink endpoint que você criou anteriormente. O nome de domínio totalmente qualificado do VPC endpoint (FQDN) apontará para o AWS PrivateLink FQDN endpoint. Isso cria uma interface de rede elástica para o serviço de VPC endpoint que os DNS endpoints podem acessar.

Administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Criar a função do Lambda.

No console AWS Lambda, crie uma função Lambda para atualizar os endereços IP do Application Load Balancer como destinos para o Network Load Balancer. Para obter mais informações sobre isso, consulte a postagem do blog “Usando endereços IP estáticos para Application Load Balancers” na seção Recursos relacionados.

Desenvolvedor de aplicativos

Criar os balanceadores de carga:

Crie um sistema de EFS arquivos da Amazon:

Criar um bucket do S3

Criar um segredo do Secrets Manager:

Crie uma RDS instância da Amazon:

Crie os ECS componentes da Amazon:

Crie um grupo do Amazon EC2 Auto Scaling:

Configurar AWS PrivateLink:

Crie um VPC endpoint:

Criar a função do Lambda:

Outros recursos: