詳細検索

Ação EC2 do CodePipeline: Simplifique o pipeline de implantação do seu aplicativo EC2 em 90%!

Avatar
por Jatin Mehrotra
3 min de leitura

Ação EC2 do CodePipeline: Simplifique o pipeline de implantação do seu aplicativo EC2 em 90%!
Traduzido do English • Ver original

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.

Related Articles