Este é o Guia do Desenvolvedor AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.
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á.
Exemplo: Crie um AWS Fargate serviço usando o AWS CDK
Neste exemplo, mostramos como criar um AWS Fargate serviço executado em um cluster do Amazon Elastic Container Service (Amazon ECS) que é liderado por um Application Load Balancer voltado para a Internet a partir de uma imagem no Amazon ECR.
O Amazon ECS é um serviço de gerenciamento de contêineres altamente escalável e rápido que facilita a execução, a parada e o gerenciamento Docker contêineres em um cluster. Você pode hospedar seu cluster em uma infraestrutura sem servidor gerenciada pelo Amazon ECS ao iniciar seus serviços ou tarefas usando o tipo de inicialização Fargate. Para obter mais controle, você pode hospedar suas tarefas em um cluster de instâncias do Amazon Elastic Compute Cloud (Amazon EC2) que você gerencia usando o tipo de EC2 lançamento da Amazon.
Neste exemplo, lançamos alguns serviços usando o tipo de inicialização do Fargate. Se você usou o AWS Management Console para criar um serviço Fargate, sabe que há muitas etapas a serem seguidas para realizar essa tarefa. AWS tem vários tutoriais e tópicos de documentação que orientam você na criação de um serviço Fargate, incluindo:
Este exemplo cria um serviço Fargate semelhante usando o AWS CDK.
A construção do Amazon ECS usada neste exemplo ajuda você a usar AWS serviços fornecendo os seguintes benefícios:
-
Configura automaticamente um balanceador de carga.
-
Abre automaticamente um grupo de segurança para balanceadores de carga. Isso permite que os balanceadores de carga se comuniquem com as instâncias sem precisar criar explicitamente um grupo de segurança.
-
Ordena automaticamente a dependência entre o serviço e o balanceador de carga vinculado a um grupo-alvo, onde o AWS CDK impõe a ordem correta de criação do receptor antes da criação de uma instância.
-
Configura automaticamente os dados do usuário em grupos de escalabilidade automática. Isso cria a configuração correta à qual associar um cluster AMIs.
-
Valida as combinações de parâmetros com antecedência. Isso expõe AWS CloudFormation problemas mais cedo, economizando tempo de implantação. Por exemplo, dependendo da tarefa, é fácil definir incorretamente as configurações de memória. Anteriormente, não encontrávamos nenhum erro até implantarmos nossa aplicação. Mas agora eles AWS CDK podem detectar uma configuração incorreta e emitir um erro quando sintetizamos nosso aplicativo.
-
Adicionar permissões automaticamente para o Amazon Elastic Container Registry (Amazon ECR) se usarmos uma imagem do Amazon ECR.
-
Escalar automaticamente. Ele AWS CDK fornece um método para que possamos escalar instâncias automaticamente quando usamos um EC2 cluster da Amazon. Isso acontece automaticamente quando usamos uma instância em um cluster Fargate.
Além disso, AWS CDK evita que uma instância seja excluída quando o escalonamento automático tenta interromper uma instância, mas uma tarefa está em execução ou está programada nessa instância.
Anteriormente, precisávamos criar uma função do Lambda para ter essa funcionalidade.
-
Fornece suporte de ativos, para que possamos implantar uma fonte de nossa máquina no Amazon ECS em uma única etapa. Anteriormente, para usar uma fonte de aplicativo, precisávamos realizar várias etapas manuais, como fazer o upload para o Amazon ECR e criar um Docker imagem.
Importante
As ApplicationLoadBalancedFargateService
construções que usaremos incluem vários AWS
componentes, alguns dos quais têm custos não triviais se deixados provisionados em nossa AWS conta, mesmo que não os usemos. Certifique-se de limpar (cdk destroy) se você seguir este exemplo.
Criar um projeto de CDK
Começamos criando um projeto CDK. Esse é um diretório que armazena nosso AWS CDK código, incluindo nosso aplicativo CDK.
Em seguida, executamos a aplicação e confirmamos que ele cria uma pilha vazia.
cdk synth
Criar um serviço Fargate
Há duas maneiras diferentes de executar nossas tarefas de contêiner com o Amazon ECS:
-
Usar o tipo de lançamento
Fargate
, em que o Amazon ECS gerencia as máquinas físicas nas quais nossos contêineres estão sendo executados para nós. -
Usar o tipo de lançamento
EC2
, onde fazemos o gerenciamento, como especificar o escalonamento automático.
Neste exemplo, criaremos um serviço Fargate executado em um cluster Amazon ECS, liderado por um Application Load Balancer voltado para a Internet.
Adicionamos as seguintes importações do módulo AWS Construct Library ao nosso arquivo de pilha:
Em nossa pilha, adicionamos o seguinte código:
Em seguida, validamos nosso código executando o seguinte para sintetizar nossa pilha:
cdk synth
A pilha tem centenas de linhas, então não a mostraremos aqui. A pilha deve conter uma instância padrão, uma sub-rede privada e uma sub-rede pública para as três zonas de disponibilidade e um grupo de segurança.
Para implantar a pilha, executamos o seguinte:
cdk deploy
AWS CloudFormation exibe informações sobre as dezenas de etapas necessárias ao implantar nosso aplicativo.
Após a conclusão da implantação, criamos com sucesso um serviço Amazon ECS baseado em Fargate para executar um Docker imagem.
Limpeza
Como prática recomendada de manutenção geral, e para minimizar custos desnecessários, excluímos nossa pilha quando concluída:
cdk destroy