

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
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk"></a>

*Dr. Rahul Sharad Gaikwad, Amazon Web Services*

## Resumo
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-summary"></a>

O [Amazon ECS Anywhere](https://aws.amazon.com/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](https://aws.amazon.com/cdk/));

## Pré-requisitos e limitações
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ AWS Command Line Interface (AWS CLI), instalada e configurada. (Consulte [Instalar, atualizar e desinstalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) na documentação da AWS CLI.) 
+ AWS CDK Toolkit, instalado e configurado. (Consulte o [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) na documentação do AWS CDK e siga as instruções para instalar a versão 2 globalmente.)
+ Gerenciador de pacotes Node (npm), instalado e configurado para o AWS CDK em. TypeScript (Consulte [Como baixar e instalar o Node.js e o npm ](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) na documentação do npm.)

**Limitações**
+ Para limitações e considerações, consulte [Instâncias externas (Amazon ECS Anywhere)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations) na documentação do Amazon ECS.

**Versões do produto**
+ AWS CDK Toolkit versão 2
+ npm versão 7.20.3 ou superior
+ Node.js versão 16.6.1 ou superior

## Arquitetura
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-architecture"></a>

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

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

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

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

1. 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\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/3ed63c00-40e7-4831-bb9d-63049c3490aa/images/ff7dc774-830d-4b9f-8262-7314afe7a033.png)


 

**Automação e escala**

O [GitHub repositório](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples/) 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
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-tools"></a>
+ O [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar a infraestrutura da Nuvem AWS em código.
+ A [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.

**Código **

O código-fonte desse padrão está disponível no GitHub repositório [Amazon ECS Anywhere CDK](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples) Samples. Para clonar e usar o repositório, siga as instruções na próxima seção.

## Épicos
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-epics"></a>

### Verifique a configuração do AWS CDK
<a name="verify-aws-cdk-configuration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique a versão do AWS CDK. | Verifique a versão do AWS CDK Toolkit executando o seguinte comando:<pre>cdk --version</pre>Esse padrão requer o AWS CDK versão 2. Se você tiver uma versão anterior do AWS CDK, siga as instruções na [documentação do AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) para atualizá-la. | DevOps engenheiro | 
| Configure as credenciais da AWS. | Para configurar as credenciais, execute o comando `aws configure` e siga as instruções:<pre>$aws configure<br />AWS Access Key ID [None]: <your-access-key-ID><br />AWS Secret Access Key [None]: <your-secret-access-key><br />Default region name [None]: <your-Region-name><br />Default output format [None]:</pre> | DevOps engenheiro | 

### Faça o bootstrap do ambiente do AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o repositório de códigos do AWS CDK. | Clone o repositório de GitHub código desse padrão usando o comando:<pre>git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git</pre> | DevOps engenheiro | 
| Inicialize o ambiente do . | Para implantar o CloudFormation modelo da AWS na conta e na região da AWS que você deseja usar, execute o seguinte comando:<pre>cdk bootstrap <account-number>/<Region></pre>Para obter mais informações, consulte [Inicialização](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) na documentação do AWS CDK. | DevOps engenheiro | 

### Crie e implante o projeto
<a name="build-and-deploy-the-project"></a>


| Tarefa | Description | Habilidades 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:<pre>$cd amazon-ecs-anywhere-cdk-samples<br />$npm install<br />$npm fund </pre>Esses comandos instalam todos os pacotes do repositório de exemplo. Se você receber algum erro sobre pacotes ausentes, use um dos seguintes comandos:<pre>$npm ci   </pre>—ou—<pre>$npm install -g @aws-cdk/<package_name></pre>Para obter mais informações, consulte [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) e  [npm install](https://docs.npmjs.com/cli/v7/commands/npm-install) na documentação do npm. | DevOps engenheiro | 
| Crie o projeto. | Para construir o código do projeto, execute o comando:<pre>npm run build</pre>Para obter mais informações sobre como criar e implantar o projeto, consulte [Seu primeiro aplicativo da AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#:~:text=the%20third%20parameter.-,Synthesize%20an%20AWS%20CloudFormation%20template,-Synthesize%20an%20AWS) na documentação do AWS CDK. | DevOps engenheiro | 
| Implante o projeto. | Para implantar o código do projeto, execute o comando:<pre>cdk deploy</pre> | 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****](https://console.aws.amazon.com/cloudformation/) e escolha a pilha. `EcsAnywhereStack` A guia **Saídas** mostra os comandos a serem executados em sua VM externa. | DevOps engenheiro | 

### Configurar uma máquina on-premises
<a name="set-up-an-on-premises-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure sua VM usando o Vagrant. | Para fins de demonstração, você pode usar o [HashiCorp Vagrant](https://www.vagrantup.com/) 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](https://www.vagrantup.com/docs/cli/up). | 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](https://www.vagrantup.com/docs/cli/ssh).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`: <pre>aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json</pre>3. Exporte a ID de ativação e os valores do código:<pre>export ACTIVATION_ID=<activation-ID><br />export ACTIVATION_CODE=<activation-code></pre>4. No servidor on-premises ou na máquina virtual (VM), baixe o script de instalação:<pre>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</pre>5. No servidor on-premises ou na máquina virtual (VM), execute o script de instalação:<pre>sudo ./ecs-anywhere-install.sh \<br />    --cluster test-ecs-anywhere \<br />     --activation-id $ACTIVATION_ID \<br />     --activation-code $ACTIVATION_CODE \<br />    --region <Region></pre>Para obter mais informações sobre como configurar e registrar sua VM, consulte [Registro de uma instância externa em um cluster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) 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:<pre>aws ssm describe-instance-information<br />aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps engenheiro | 

### Limpeza
<a name="clean-up"></a>


| Tarefa | Description | Habilidades 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:<pre>cdk destroy</pre> | DevOps engenheiro | 

## Recursos relacionados
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-resources"></a>
+ [Documentação do Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) 
+ [Demonstração do Amazon ECS Anywhere](https://www.youtube.com/watch?v=-eud6yUXsJM)
+ [Exemplos de workshops do Amazon ECS Anywhere](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples)