Etapa 1: criar e configurar o grupo do Auto Scaling
Nesta etapa, você criará um grupo do Auto Scaling que contém uma única instância Amazon Linux, RHEL ou Windows Server Amazon EC2. Em uma etapa posterior, você instruirá o Amazon EC2 Auto Scaling a adicionar mais uma instância do Amazon EC2 , e o CodeDeploy implantará sua revisão nessa instância.
Tópicos
Como criar e configurar o grupo do Auto Scaling (CLI)
-
Use o comando create-launch-template para criar um modelo de execução do Amazon EC2.
Antes de chamar esse comando, será preciso o ID de uma AMI que funcione para este tutorial, representado pelo espaço reservado
image-id. Também será preciso o nome de um par de chaves de instância do Amazon EC2 para permitir o acesso à instância do Amazon EC2 representada pelo placeholderkey-name.Para obter o ID de uma AMI que funcione com este tutorial:
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, em Instâncias, escolha Instâncias e, em seguida, escolha Iniciar instância.
-
Na guia Início rápido da página Escolha uma imagem de máquina da Amazon, anote o ID da AMI ao lado do Amazon Linux 2 AMI, Red Hat Enterprise Linux 7.1, Ubuntu Server 14.04 LTS ou Microsoft Windows Server 2012 R2.
nota
Se você tiver uma versão personalizada de uma AMI compatível com o CodeDeploy, selecione-a aqui em vez de navegar pela guia de Início rápido Para obter informações sobre o uso de uma AMI personalizada com o CodeDeploy e o Amazon EC2 Auto Scaling, consulte Uso de uma AMI personalizada com o CodeDeploy e o Amazon EC2 Auto Scaling.
Para o par de chaves da instância do Amazon EC2, use o nome do par de chaves da sua instância do Amazon EC2.
Chame o comando create-launch-template.
Em máquinas Linux, macOS ou Unix locais:
aws ec2 create-launch-template \ --launch-template-name CodeDeployDemo-AS-Launch-Template \ --launch-template-data file://config.jsonVisualize o conteúdo do arquivo
config.json:{ "InstanceType":"t1.micro", "ImageId":"image-id", "IamInstanceProfile":{ "Name":"CodeDeployDemo-EC2-Instance-Profile" }, "KeyName":"key-name" }Em máquinas locais do Windows:
aws ec2 create-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template --launch-template-data file://config.jsonVisualize o conteúdo do arquivo
config.json:{ "InstanceType":"t1.micro", "ImageId":"image-id", "IamInstanceProfile":{ "Name":"CodeDeployDemo-EC2-Instance-Profile" }, "KeyName":"key-name" }Esses comandos, junto com o arquivo de
config.json, criam um modelo de execução do Amazon EC2 chamado CodeDeployDemo-as-Launch-Template para seu grupo do Auto Scaling, que será criado na etapa seguinte com base no tipo de instância t1.micro do Amazon EC2. Com base em sua entrada paraImageId,IamInstanceProfile, eKeyName, o modelo de execução também especifica a ID da AMI, o nome do perfil de instância associado ao perfil do IAM a ser passado para as instâncias na execução e o par de chaves do Amazon EC2 a ser usado ao se conectar às instâncias. -
-
Chame o comando create-auto-scaling-group para criar um grupo do Auto Scaling. Será necessário o nome de uma das zonas de disponibilidade em uma das regiões listadas em Região e endpoints na Referência geral da AWS, representado pelo placeholder
availability-zone.nota
Para ver uma lista de Zonas de disponibilidade em uma região, chame:
aws ec2 describe-availability-zones --regionregion-namePor exemplo, para ver uma lista de Zonas de disponibilidade na região Oeste dos EUA (Oregon), chame:
aws ec2 describe-availability-zones --region us-west-2Para obter uma lista dos identificadores de nome da região, consulte Nomes de bucket do kit de recursos por região.
Em máquinas Linux, macOS ou Unix locais:
aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name CodeDeployDemo-AS-Group \ --launch-template CodeDeployDemo-AS-Launch-Template,Version='$Latest' \ --min-size 1 \ --max-size 1 \ --desired-capacity 1 \ --availability-zonesavailability-zone\ --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=trueEm máquinas locais do Windows:
aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-template LaunchTemplateName=CodeDeployDemo-AS-Launch-Template,Version="$Latest" --min-size 1 --max-size 1 --desired-capacity 1 --availability-zonesavailability-zone--tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=trueEsses comandos criam um grupo do Auto Scaling chamado
CodeDeployDemo-AS-Groupcom base no modelo de execução do Amazon EC2 chamadoCodeDeployDemo-AS-Launch-Template. Esse grupo do Auto Scaling tem apenas uma instância do Amazon EC2 e é criado na Zona de disponibilidade especificada. Cada instância nesse grupo do Auto Scaling terá a tagName=CodeDeployDemo. A tag será usada ao instalar o agente do CodeDeploy posteriormente. -
Chame o comando describe-auto-scaling-groups contra
CodeDeployDemo-AS-Group:aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output textNão prossiga até que os valores retornados mostrem
HealthyeInService. -
As instâncias do grupo do Auto Scaling precisam ter o agente do CodeDeploy instalado para serem usadas nas implantações do CodeDeploy. Instale o agente do CodeDeploy chamando o comando create-association a partir do AWS Systems Manager com as tags que foram adicionadas quando o grupo do Auto Scaling foi criado.
aws ssm create-association \ --name AWS-ConfigureAWSPackage \ --targets Key=tag:Name,Values=CodeDeployDemo \ --parameters action=Install, name=AWSCodeDeployAgent \ --schedule-expression "cron(0 2 ? * SUN *)"Esse comando cria uma associação no gerenciador de estados do Systems Manager que instalará o agente do CodeDeploy em todas as instâncias do grupo do Auto Scaling e, depois, tentará atualizá-lo todo domingo às 2h. Para obter mais informações sobre o agente do CodeDeploy, consulte Trabalhar com o agente do CodeDeploy. Para obter mais informações sobre o Systems Manager, consulte O que é o AWS Systems Manager.
Como criar e configurar o grupo do Auto Scaling (console)
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
Na barra de navegação global, certifique-se de que uma das regiões listadas em Região e endpoints em Referência geral da AWS esteja selecionada. Os recursos do Amazon EC2 Auto Scaling estão vinculados à região que você especifica, e o CodeDeploy tem suporte apenas em regiões selecionadas.
-
Na barra de navegação, escolha Instances e, em seguida, Launch Templates.
-
Escolha Criar modelo de execução.
-
Na caixa de diálogo Nome e descrição do modelo de execução, para Nome do modelo de execução, insira
CodeDeployDemo-AS-Launch-Template. Mantenha os valores padrão em todos os outros campos. -
Na caixa de diálogo Imagem de máquina da Amazon (AMI), clique no menu suspenso em AMI e escolha uma AMI que funcione com este tutorial:
-
Na guia Início rápido do menu suspenso AMI, escolha uma das seguintes opções: Amazon Linux 2 AMI, Red Hat Enterprise Linux 7.1, Ubuntu Server 14.04 LTS ou Microsoft Windows Server 2012 R2.
nota
Se você tiver uma versão personalizada de uma AMI compatível com o CodeDeploy, selecione-a aqui em vez de navegar pela guia de Início rápido Para obter informações sobre o uso de uma AMI personalizada com o CodeDeploy e o Amazon EC2 Auto Scaling, consulte Uso de uma AMI personalizada com o CodeDeploy e o Amazon EC2 Auto Scaling.
-
-
Em Tipo de instância, selecione a lista suspensa e escolha t1.micro. É possível usar a barra de pesquisa para encontrá-la mais rapidamente.
-
Na caixa de diálogo Par de chaves (login), selecione Escolher um par de chaves existente. Na lista suspensa Selecione um par de chaves, selecione o par de chaves de instância do Amazon EC2 criado ou usado nas etapas anteriores.
-
Na caixa de diálogo Configurações de rede, escolha Virtual Public Cloud (VPC).
No menu suspenso Grupos de segurança, escolha o grupo de segurança que você criou na seção de pré-requisitos do tutorial (
CodeDeployDemo-AS-SG). -
Expanda a caixa de diálogo Detalhes avançados. No menu suspenso Perfil de instância do IAM, selecione o perfil do IAM que você criou anteriormente (
CodeDeployDemo-EC2-Instance-Profile) em Perfil de instância do IAM.Deixe o restante dos padrões.
-
Escolha Criar modelo de execução.
-
Na caixa de diálogo Próximas etapas, escolha Criar grupo do Auto Scaling.
-
Na página Escolher modelo ou configuração de execução, para Nome do grupo do Auto Scaling, insira
CodeDeployDemo-AS-Group. -
Na caixa de diálogo Modelo de execução, seu modelo de execução (
CodeDeployDemo-AS-Launch-Template) deve ser preenchido; caso contrário, selecione-o no menu suspenso. Deixe os padrões e escolha Próximo. -
Na página Escolher as opções de execução da instância na seção Rede, para VPC, selecione a VPC padrão. Em seguida, para Zonas de disponibilidade e sub-redes, escolha uma sub-rede padrão. Você deve criar uma VPC se não puder escolher a padrão. Para obter mais informações, consulte Conceitos básicos do Amazon VPC.
-
Na seção Instance type requirements (Requisitos de tipo de instância), use a configuração padrão para simplificar essa etapa. (Não substitua o modelo de execução.) Neste tutorial, você fará o execução apenas das Instâncias sob demanda usando o tipo de instância especificado no modelo de execução.
-
Selecione Next (Próximo) para ir até a página Configure advanced options (Configurar opções avançadas).
-
Mantenha os outros valores padrão e escolha Próximo.
-
Na página Configurar tamanho do grupo e políticas de escalabilidade, mantenha os valores padrão de tamanho do grupo de 1. Escolha Próximo.
-
Ignore a etapa de configuração de notificações e escolha Próximo.
-
Na página Adicionar tags, adicione uma tag a ser usada ao instalar o agente do CodeDeploy posteriormente. Escolha Adicionar Tag.
-
Em Chave, insira
Name. -
Em Valor, informe
CodeDeployDemo.
Escolha Próximo.
-
-
Na página Revisar, reveja as configurações do grupo do Auto Scaling e escolha Criar grupo do Auto Scaling.
-
Na barra de navegação, com a opção Grupos do Auto Scaling selecionada, escolha
CodeDeployDemo-AS-Groupe, em seguida, a guia Gerenciamento de instâncias. Não prossiga até que o valor de InService apareça na coluna Ciclo de vida e o valor de Íntegro apareça na coluna Status de integridade. -
Instale o agente do CodeDeploy seguindo as etapas em Instalar o agente do CodeDeploy e usando as tags de instância de
Name=CodeDeployDemo.