Gerencie aplicativos de contêineres on-premises configurando o Amazon ECS Anywhere com o AWS CDK - 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á.

Gerencie aplicativos de contêineres on-premises configurando o Amazon ECS Anywhere com o AWS CDK

Criado pelo Dr. Rahul Sharad Gaikwad (AWS)

Repositório de código: amazon-ecs-anywhere-cdk -samples

Ambiente: PoC ou piloto

Tecnologias: Modernização; Contêineres e microsserviços;; Nuvem híbrida DevOps; Infraestrutura

Workload: todas as outras workloads

Serviços da AWS: AWS CDK; Amazon ECS; AWS Identity and Access Management

Resumo

O Amazon ECS Anywhere é uma extensão do Amazon Elastic Container Service (Amazon ECS). Você pode usar o ECS Anywhere para implantar tarefas nativas do Amazon ECS em um ambiente on-premises ou gerenciado pelo cliente. Esse atributo ajuda a reduzir custos e mitigar operações e orquestrações complexas de contêineres locais. Você pode usar o ECS Anywhere para implantar e executar aplicativos de contêiner em ambientes on-premises e na nuvem. Isso elimina a necessidade de sua equipe aprender vários domínios e conjuntos de habilidades ou gerenciar softwares complexos por conta própria.

Esse padrão demonstra as etapas para configurar o ECS Anywhere usando pilhas do AWS Cloud Development Kit (AWS CDK);

Pré-requisitos e limitações

Pré-requisitos

Limitações

Versões do produto

  • Kit de ferramentas do AWS CDK versão 2

  • npm versão 7.20.3 ou superior

  • Node.js versão 16.6.1 ou superior

Arquitetura

Pilha de tecnologias de destino

  • AWS CloudFormation

  • AWS CDK

  • Amazon ECS Anywhere

  • AWS Identity and Access Management (IAM)

Arquitetura de destino

O diagrama a seguir ilustra uma arquitetura de sistema de alto nível da configuração do ECS Anywhere usando o AWS CDK com TypeScript, conforme implementado por esse padrão.

  1. Quando você implanta a pilha de CDK da AWS, ela cria uma CloudFormation pilha na AWS.

  2. A CloudFormation pilha provisiona um cluster do Amazon ECS e recursos relacionados da AWS.

  3. Para registrar uma instância externa com um cluster do Amazon ECS, você deve instalar o AWS Systems Manager Agent (SSM Agent) na sua máquina virtual (VM) e registrar a VM como uma instância gerenciada do AWS Systems Manager. 

  4. Você deve instalar o agente de contêiner do Amazon ECS e o Docker na sua VM para registrá-la como instância externa com o cluster do Amazon ECS.

  5. Quando a instância externa é registrada e configurada com o cluster Amazon ECS, ela pode executar vários contêineres na sua VM, que é registrada como uma instância externa.

Configuração do ECS Anywhere usando o AWS CDK com. TypeScript

Automação e escala

O GitHub repositório fornecido com esse padrão usa o AWS CDK como uma ferramenta de infraestrutura como código (IaC) para criar a configuração dessa arquitetura. O AWS CDK ajuda você a orquestrar recursos e configurar o ECS Anywhere.

Ferramentas

Código

O código-fonte desse padrão está disponível no GitHub repositório Amazon ECS Anywhere CDK Samples. Para clonar e usar o repositório, siga as instruções na próxima seção.

Épicos

TarefaDescriçãoHabilidades necessárias

Verifique a versão do AWS CDK.

Verifique a versão do AWS CDK Toolkit executando o seguinte comando:

cdk --version

Esse padrão requer a versão 2 do AWS CDK. Se você tiver uma versão anterior do AWS CDK, siga as instruções na documentação do AWS CDK para atualizá-la.

DevOps engenheiro

Configure as credenciais da AWS.

Para configurar as credenciais, execute o comando aws configure e siga as instruções:

$aws configure AWS Access Key ID [None]: <your-access-key-ID> AWS Secret Access Key [None]: <your-secret-access-key> Default region name [None]: <your-Region-name> Default output format [None]:
DevOps engenheiro
TarefaDescriçãoHabilidades necessárias

Clone o repositório de códigos do AWS CDK.

Clone o repositório de GitHub código para esse padrão usando o comando:

git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git
DevOps engenheiro

Faça o bootstrap do ambiente.

Para implantar o CloudFormation modelo da AWS na conta e na região da AWS que você deseja usar, execute o seguinte comando:

cdk bootstrap <account-number>/<Region>

Para obter mais informações, consulte Inicialização na documentação do AWS CDK.

DevOps engenheiro
TarefaDescriçãoHabilidades necessárias

Instale as dependências do pacote e compile TypeScript os arquivos.

Instale as dependências do pacote e compile os TypeScript arquivos executando os seguintes comandos:

$cd amazon-ecs-anywhere-cdk-samples $npm install $npm fund

Esses comandos instalam todos os pacotes do repositório de exemplo. 

Importante: se você receber algum erro sobre pacotes ausentes, use um dos comandos a seguir:

$npm ci

—ou—

$npm install -g @aws-cdk/<package_name>

Para obter mais informações, consulte npm ci e  npm install na documentação do npm.

DevOps engenheiro

Crie o projeto.

Para construir o código do projeto, execute o comando:

npm run build

Para obter mais informações sobre como criar e implantar o projeto, consulte Seu primeiro aplicativo da AWS CDK na documentação do AWS CDK.

DevOps engenheiro

Implante o projeto.

Para implantar o código do projeto, execute o comando:

cdk deploy
DevOps engenheiro

Verifique a criação e a saída da pilha.

Abra o CloudFormation console da AWS em https://console.aws.amazon.com/cloudformation e escolha a EcsAnywhereStack pilha. A guia Saídas mostra os comandos a serem executados em sua VM externa.

DevOps engenheiro
TarefaDescriçãoHabilidades necessárias

Configure sua VM usando o Vagrant.

Para fins de demonstração, você pode usar o HashiCorp Vagrant para criar uma VM. O Vagrant é um utilitário de código aberto para criar e manter ambientes portáteis de desenvolvimento de software virtual. Crie uma VM Vagrant executando o comando vagrant up a partir do diretório raiz em que o Vagrantfile está colocado. Para obter mais informações, consulte a documentação do Vagrant.

DevOps engenheiro

Registre sua VM como uma instância externa.

1. Faça login na VM Vagrant usando o comando vagrant ssh. Para obter mais informações, consulte a documentação do Vagrant.

2. Crie um código de ativação e um ID que você possa usar para registrar sua VM no AWS Systems Manager e ativar sua instância externa. A saída desse comando inclui os valores ActivationId e ActivationCode

aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json

3. Exporte a ID de ativação e os valores do código:

export ACTIVATION_ID=<activation-ID> export ACTIVATION_CODE=<activation-code>

4. No servidor on-premises ou na máquina virtual (VM), baixe o script de instalação:

curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh" && sudo chmod +x ecs-anywhere-install.sh

5. No servidor on-premises ou na máquina virtual (VM), execute o script de instalação:

sudo ./ecs-anywhere-install.sh \ --cluster test-ecs-anywhere \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE \ --region <Region>

Para obter mais informações sobre como configurar e registrar sua VM, consulte Registro de uma instância externa em um cluster na documentação do Amazon ECS.

DevOps engenheiro

Verifique o status do ECS Anywhere e da VM externa.

Para verificar se sua caixa virtual está conectada ao ambiente de gerenciamento do Amazon ECS e em execução, use os seguintes comandos:

aws ssm describe-instance-information aws ecs list-container-instances --cluster $CLUSTER_NAME
DevOps engenheiro
TarefaDescriçãoHabilidades necessárias

Limpe e exclua recursos.

Depois de percorrer esse padrão, você deve remover os recursos criados para evitar cobranças adicionais. Para limpar, execute o comando:

cdk destroy
DevOps engenheiro

Recursos relacionados