

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

# Começando com o Beanstalk Cluster
<a name="beanstalk-cluster-getting-started"></a>

Neste tutorial, você cria um aplicativo Elastic Beanstalk e um ambiente Beanstalk Cluster. Você omite a versão do aplicativo para que o Elastic Beanstalk implante sua imagem de contêiner de amostra pré-criada. Em seguida, você espera que o ambiente fique pronto, recupere seu URL e o encerre. Como alternativa, você pode começar no AWS Management Console, que fornece uma experiência totalmente guiada, ou indicar ao seu agente de IA a [Cluster Beanstalk](beanstalk-cluster.md) documentação.

Duração estimada: ** 15 a 20 minutos **

**Importante**  
Não há cobrança adicional pelo Elastic Beanstalk, mas você paga pelos AWS recursos que o ambiente usa, incluindo o Amazon EKS e sua computação. Para obter mais informações, consulte Preços do [ Elastic Beanstalk. ](https://aws.amazon.com/elasticbeanstalk/pricing/) Conclua as etapas de limpeza ao concluir este tutorial.

## Antes de começar
<a name="beanstalk-cluster-getting-started-prerequisites"></a>

Conclua os seguintes pré-requisitos:
+ Instale e configure a AWS CLI. Para obter instruções, consulte [Get started with the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) no *Guia do usuário da AWS Command Line Interface *.
+ Use um principal do IAM que possa criar e gerenciar aplicativos e ambientes do Elastic Beanstalk e que possa passar pelas funções de cluster, nó e observabilidade ao criar um ambiente. Para obter as permissões exatas, consulte[Permissões para criar o ambiente](beanstalk-cluster-permissions.md#beanstalk-cluster-permissions-caller).
+ Crie a função de cluster que o Amazon EKS assume, a função de nó que os nós do Amazon EC2 do cluster assumem e a função de observabilidade que publica as métricas, registros e rastreamentos do ambiente, conforme descrito em. [Crie as funções do IAM](#beanstalk-cluster-getting-started-roles) Para escolher as sub-redes VPC que o ambiente usa, consulte. [Configurando redes para ambientes Beanstalk Cluster](configuring-cluster-networking.md)
+ Escolha uma AWS região na qual o Beanstalk Cluster esteja disponível. Os comandos usam a Região da sua AWS CLI configuração.

## Crie as funções do IAM
<a name="beanstalk-cluster-getting-started-roles"></a>

Um ambiente Beanstalk Cluster precisa de três funções do IAM fornecidas por você: uma função de cluster, uma função de nó e uma função de observabilidade. O console do Elastic Beanstalk os cria para você, mas este tutorial usa os AWS CLI, então crie-os primeiro. Use esses nomes, pois o console seleciona as funções existentes pelo nome. Para que serve cada função e as permissões de chamador que você precisa passar para elas, consulte[Permissões para o Beanstalk Cluster](beanstalk-cluster-permissions.md).

**Para criar as funções de cluster, nó e observabilidade**

1. Crie um arquivo de política de confiança para cada serviço que assume uma função. A função de cluster confia no Amazon EKS, a função de nó confia no Amazon EC2 e a função de observabilidade confia no Amazon EKS Pod Identity.

   ```
   $ cat > eks-trust.json <<'EOF'
   {
     "Version": "2012-10-17",
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"Service": "eks.amazonaws.com"},
       "Action": ["sts:AssumeRole", "sts:TagSession"]
     }]
   }
   EOF
   ```

   ```
   $ cat > ec2-trust.json <<'EOF'
   {
     "Version": "2012-10-17",
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"Service": "ec2.amazonaws.com"},
       "Action": "sts:AssumeRole"
     }]
   }
   EOF
   ```

   ```
   $ cat > pods-trust.json <<'EOF'
   {
     "Version": "2012-10-17",
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"Service": "pods.eks.amazonaws.com"},
       "Action": ["sts:AssumeRole", "sts:TagSession"]
     }]
   }
   EOF
   ```

1. Crie a função de cluster e anexe suas políticas.

   ```
   $ aws iam create-role \
       --role-name aws-elasticbeanstalk-eks-cluster-role \
       --assume-role-policy-document file://eks-trust.json
   $ for p in AmazonEKSClusterPolicy AmazonEKSNetworkingPolicy AmazonEKSComputePolicy \
            AmazonEKSBlockStoragePolicy AmazonEKSLoadBalancingPolicy AWSElasticBeanstalkEKSTagging; do
       aws iam attach-role-policy \
           --role-name aws-elasticbeanstalk-eks-cluster-role \
           --policy-arn arn:aws:iam::aws:policy/$p
   done
   ```

1. Crie a função do nó e anexe suas políticas.

   ```
   $ aws iam create-role \
       --role-name aws-elasticbeanstalk-eks-node-role \
       --assume-role-policy-document file://ec2-trust.json
   $ for p in AmazonEKSWorkerNodeMinimalPolicy AmazonEC2ContainerRegistryPullOnly \
            AmazonSSMManagedInstanceCore; do
       aws iam attach-role-policy \
           --role-name aws-elasticbeanstalk-eks-node-role \
           --policy-arn arn:aws:iam::aws:policy/$p
   done
   ```

1. Crie a função de observabilidade e anexe suas políticas.

   ```
   $ aws iam create-role \
       --role-name aws-elasticbeanstalk-eks-observability-role \
       --assume-role-policy-document file://pods-trust.json
   $ for p in CloudWatchAgentServerPolicy AWSElasticBeanstalkEKSObservability; do
       aws iam attach-role-policy \
           --role-name aws-elasticbeanstalk-eks-observability-role \
           --policy-arn arn:aws:iam::aws:policy/$p
   done
   ```

1. Registre os três ARNs de função. Você os passa ao criar o ambiente.

   ```
   $ for r in cluster node observability; do
       aws iam get-role --role-name aws-elasticbeanstalk-eks-$r-role \
           --query 'Role.Arn' --output text
   done
   ```

## Escolha uma ferramenta de provisionamento compatível
<a name="beanstalk-cluster-getting-started-tools"></a>

Você pode criar e gerenciar um ambiente de cluster do Beanstalk com o console do Elastic Beanstalk, a API do Elastic Beanstalk ou o. AWS CLI Este tutorial usa o AWS CLI para que cada solicitação seja visível e repetível.

Você também pode implantar com a GitHub Ação oficial e definir seus ambientes como infraestrutura como código com o Terraform por meio do AWS provedor. Para a GitHub Ação, consulte[Usando GitHub ações para implantar no Elastic Beanstalk](deploying-github-actions.md).

## Crie o aplicativo e implante a amostra
<a name="beanstalk-cluster-getting-started-deploy"></a>

1. Crie um aplicativo Elastic Beanstalk para conter o ambiente.

   ```
   $ aws elasticbeanstalk create-application \
       --application-name getting-started-cluster-app
   ```

1. Criar o ambiente O `Cluster` nível seleciona Beanstalk Cluster. Como essa solicitação não tem rótulo de versão, o Elastic Beanstalk implanta o aplicativo de amostra.

   ```
   $ aws elasticbeanstalk create-environment \
       --application-name getting-started-cluster-app \
       --environment-name getting-started-cluster-env \
       --tier Name=Cluster,Type=EKS \
       --option-settings \
           Namespace=aws:elasticbeanstalk:eks,OptionName=cluster-role,Value={{cluster-role-arn}} \
           Namespace=aws:elasticbeanstalk:eks,OptionName=node-role,Value={{node-role-arn}} \
           Namespace=aws:elasticbeanstalk:eks:environment,OptionName=observability-role,Value={{observability-role-arn}}
   ```

   Substitua os espaços reservados do ARN da função pelas funções que você preparou. A solicitação omite `service-port` e. `load-balancer-type` O Elastic Beanstalk resolve essas configurações para seus padrões e. `8080` `ALB` Para escolher valores diferentes, passe-os com`--option-settings`. Para obter a referência completa da opção, consulte[Opções de configuração para ambientes Beanstalk Cluster](command-options-general-eks.md).

1. Aguarde até que o ambiente esteja pronto. Um primeiro ambiente pode levar de 15 a 20 minutos, enquanto o Elastic Beanstalk cria o cluster Amazon EKS e implanta a amostra. O AWS CLI fornece um garçom embutido que pesquisa até que o ambiente informe. `Ready` O garçom pesquisa no máximo 20 vezes em intervalos de 20 segundos, cerca de 6 minutos e 40 segundos; portanto, em um primeiro ambiente, espere que ele informe. `Max attempts exceeded` Execute-o novamente até que ele reporte o sucesso.

   ```
   $ aws elasticbeanstalk wait environment-exists \
       --environment-names getting-started-cluster-env
   ```

   O garçom relata `Max attempts exceeded` quando o ambiente ainda está sendo criado e quando a criação falhou. Se ele não relatar sucesso após algumas execuções, inspecione os eventos recentes do ambiente e resolva o erro relatado antes de continuar.

   ```
   $ aws elasticbeanstalk describe-events \
       --environment-name getting-started-cluster-env \
       --query 'Events[].[EventDate,Severity,Message]' \
       --output table
   ```

1. Inspecione o status do ambiente, a cor da saúde, o status da integridade e o URL.

   ```
   $ aws elasticbeanstalk describe-environments \
       --application-name getting-started-cluster-app \
       --environment-names getting-started-cluster-env \
       --query 'Environments[0].[Status,Health,HealthStatus,CNAME]' \
       --output table
   ```

   Confirme se o ambiente relata `Ready` e retorna um não vazio`CNAME`. Abra `https://` seguido pelo CNAME em um navegador da Web e confirme se o aplicativo de amostra responde. O balanceador de carga responde somente em HTTPS, portanto, uma solicitação de `http://` espera até atingir o tempo limite. Para aceitar solicitações HTTP e fazer com que o Elastic Beanstalk as redirecione para HTTPS, consulte. [Configurando redes para ambientes Beanstalk Cluster](configuring-cluster-networking.md) Um ambiente inativo pode relatar inicialmente `Grey` e `NoData` porque recebeu poucas solicitações para determinar a integridade do aplicativo; os eventos de integridade exibem esse status como`No Data`. Isso não indica uma falha na implantação. Depois que o aplicativo recebe solicitações bem-sucedidas suficientes, a integridade normalmente passa para `Green` `Ok` e. Se o CNAME estiver vazio, o aplicativo não responder ou a integridade relatar uma falha, inspecione os eventos recentes do ambiente antes de continuar:

   ```
   $ aws elasticbeanstalk describe-events \
       --environment-name getting-started-cluster-env \
       --query 'Events[].[EventDate,Severity,Message]' \
       --output table
   ```

   Para o modelo de integridade do cluster, consulte[Monitorando ambientes do Beanstalk Cluster](monitoring-cluster-environments.md).

## Implante sua própria imagem de contêiner
<a name="beanstalk-cluster-getting-started-deploy-own"></a>

O ambiente está executando o aplicativo de amostra porque a solicitação de criação não tinha nenhum rótulo de versão. Para executar seu próprio aplicativo, crie uma versão do * aplicativo * que nomeie sua imagem de contêiner e implante essa versão no ambiente. Esse é o fluxo normal do Elastic Beanstalk: uma versão do aplicativo é o artefato implantável, e a amostra é o que o Elastic Beanstalk implanta quando você não fornece uma.

Antes de começar, você precisa de uma imagem de contêiner que já tenha enviado para um registro, como um repositório Amazon Elastic Container Registry (Amazon ECR) em sua conta, e a imagem deve escutar o ambiente`service-port`, a `8080` menos que você a tenha alterado. A implantação de sua própria versão substitui o aplicativo de amostra. Para que o Elastic Beanstalk crie a imagem a partir de sua fonte e para as opções de construção, consulte. [Criação de imagens de contêiner para ambientes Beanstalk Cluster](beanstalk-cluster-app-versions.md)

1. Crie uma versão do aplicativo que aponte para sua imagem.

   ```
   $ aws elasticbeanstalk create-application-version \
       --application-name getting-started-cluster-app \
       --version-label v1 \
       --image-configuration Source={Uri={{your-image-uri}}}
   ```

   {{your-image-uri}}Substitua pela sua imagem, por exemplo`111122223333.dkr.ecr.us-east-1.amazonaws.com/my-app:v1`. Como a imagem já foi criada, a versão não precisa de nenhuma etapa de construção e está pronta para ser implantada.

1. Implante a versão no ambiente.

   ```
   $ aws elasticbeanstalk update-environment \
       --environment-name getting-started-cluster-env \
       --version-label v1
   ```

1. Confirme se a implantação foi concluída e se o ambiente está servindo seu aplicativo.

   ```
   $ aws elasticbeanstalk describe-events \
       --environment-name getting-started-cluster-env \
       --query 'Events[].[EventDate,Severity,Message]' \
       --output table
   ```

   Abra `https://` seguido pelo CNAME do ambiente em um navegador da Web e confirme se seu aplicativo responde. Se isso não acontecer, verifique se há uma falha de implantação nos eventos e confirme se a imagem escuta a do `service-port` ambiente.

## Limpe os recursos do tutorial
<a name="beanstalk-cluster-getting-started-cleanup"></a>

1. Encerrar o ambiente.

   ```
   $ aws elasticbeanstalk terminate-environment \
       --environment-name getting-started-cluster-env
   ```

1. Aguarde até que o ambiente alcance o `Terminated` status. O AWS CLI fornece um garçom embutido que pesquisa até a conclusão da rescisão. Esse garçom tem o mesmo limite de 20 tentativas, então execute-o novamente até que ele relate o sucesso.

   ```
   $ aws elasticbeanstalk wait environment-terminated \
       --environment-names getting-started-cluster-env
   ```

   O garçom informa `Max attempts exceeded` quando a rescisão ainda está em andamento e quando ela falhou. Se ele não relatar sucesso após algumas execuções, resolva o erro nos eventos do ambiente. Não exclua o aplicativo enquanto o ambiente ainda existir.

1. Exclua o aplicativo e suas versões do aplicativo, incluindo a versão de amostra que o Elastic Beanstalk criou e qualquer versão que você adicionou. Isso não exclui uma imagem de contêiner que você forneceu ou o repositório que a contém; consulte[Criação de imagens de contêiner para ambientes Beanstalk Cluster](beanstalk-cluster-app-versions.md).

   ```
   $ aws elasticbeanstalk delete-application \
       --application-name getting-started-cluster-app
   ```

O Elastic Beanstalk exclui um cluster compartilhado do Amazon EKS somente depois que você encerra o último ambiente que o usa. A exclusão do cluster pode levar até três horas; as cobranças do Amazon EKS e de outros recursos continuam até que a exclusão seja concluída. O encerramento não exclui as funções do IAM de cluster, nó e observabilidade fornecidas pelo cliente. Verifique a exclusão do cluster conforme descrito em[Exclusão de cluster](beanstalk-cluster-concepts.md#beanstalk-cluster-clusters-lifecycle).

## Próximas etapas
<a name="beanstalk-cluster-getting-started-next"></a>
+ Implante sua própria imagem ou fonte de contêiner criando uma versão do aplicativo. Consulte [Criação de imagens de contêiner para ambientes Beanstalk Cluster](beanstalk-cluster-app-versions.md).
+ Configure limites de recursos, escalabilidade, comportamento de implantação, balanceamento de carga e observabilidade. Consulte [Opções de configuração para ambientes Beanstalk Cluster](command-options-general-eks.md).
+ Saiba como atualizar e monitorar o ambiente. Consulte [Gerenciar ambientes do Elastic Beanstalk](using-features.managing.md) e [Monitorando ambientes do Beanstalk Cluster](monitoring-cluster-environments.md).