equipe de CodePipeline da Amazon Web Services (AWS) simplificou a sobrecarga operacional dos desenvolvedores e engenheiros DevOps e agilizou o processo de implantação para o EC2 ao introduzir uma ação CodePipeline para implantar diretamente nas suas instâncias EC2.
*Por que isso importa para você? *
Anteriormente, se você quisesse implantar para instâncias EC2, era preciso usar o CodeDeploy com um arquivo AppSpec para configurar a implantação. Após essa atualização, NÃO É NECESSÁRIO GERENCIAR O RECURSO CODEDEPLOY E O ARQUIVO APPSPEC.
*Eu testei isso hoje, então deixe-me mostrar como você pode simplificar seu pipeline de implantação em 90% e eliminar todos os processos e scripts complexos!! *
Arquitetura

Pré-requisitos
- suporta apenas tipos de instância Linux
- O tamanho máximo da frota suportada é de 500 instâncias.
- Pipeline V2 somente suportado
- O agente SSM deve ser instalado
Nos Bastidores
Essa ação executa um comando de envio usando SSM para executar o script na instância.
Crie uma instância EC2 com Apache
Nota: Se você está criando uma instância, precisa criar um papel com 'AmazonSSMManagedInstanceCore', 'AmazonS3ReadOnlyAccess' e anexar à instância ec2.
- Adicionar o agente ssm manualmente à instância, seja usando 'dados do usuário' ou fazendo login na instância existente e então executando os comandos.
- Se você está usando uma instância existente, então precisa reiniciar a instância após adicionar o agente SSM.
Criei o EC2 com o servidor web Apache para a brevidade do blog.

Sudo Su
Atualização da delícia -y
yum install httpd -y
Início do serviço httpD
chkconfig httpd ligado
Echo "Ação de Implantação EC2 do CodePipeline" > /var/www/html/index.html

Criar pipeline com ação de implantação do EC2
- Aqui precisamos selecionar a instância usando tags; Eu usei a etiqueta de nome para identificar minha instância.
- Então você precisa fornecer o diretório de destino na instância EC2 onde deseja implantar.
- Finalmente, caminho para o arquivo de script executável que roda APÓS a fase de Deploy.
Nota: Uma vez que o pipeline for criado, você precisa editar o papel do serviço do pipeline e adicionar as seguintes permissões para evitar erros.
{
"Efeito": "Permitir",
"Ação": [
"ssm:CancelCommand",
"ssm:DescribeInstanceInformation",
"ssm:ListCommandInvocations",
"ssm:SendCommand"
],
"Resource": "*"
}
Execute o oleoduto
Estou usando o código-fonte como GitHub usando code start connection e o código reside nesse repositório.
Nota: O guia da AWS mencionou sobre adicionar 'AWSSystemsManagerDefaultEC2InstanceManagementRoleeployAction' ao papel de instância ec2, mas no meu ambiente eu não precisava dessa permissão


Algumas opções avançadas para essa ação
- Você pode especificar o número de instâncias em número ou porcentagens para implantar em paralelo.
- Você pode especificar o número de instâncias em número ou porcentagens para parar a tarefa após a falha.
- Você pode especificar um balanceador de carga, que bloqueará o tráfego para a instância em que a implantação estiver ocupando para essa instância.
Do ponto de vista do desenvolvedor, DevOps
- Com essa atualização, posso ter uma implantação contínua nativa AWS de ponta a ponta no EC2 sem gerenciar os recursos do CodeDeploy.
- Isso certamente é um divisor de águas para desenvolvedores e engenheiros devops que querem focar em problemas de negócios, suas aplicações, e não em seu complexo processo de implantação.
- Claro que essa experiência de simplificação pode ser ampliada ainda mais para 100% se a AWS conseguir adicionar as permissões necessárias para o cargo.
Depois de ler isto, você deseja migrar para essa ação e simplificar seu processo de implantação?
Eu compartilho atualizações incríveis da AWS sobre DevOps, Kubernetes e GenAI diariamente em Linkedin, X. Me siga por lá para que eu possa facilitar sua vida.