Configuração de implantação automática de código em EC2 com CodeDeploy (AWS Academy) - mvneves/codedeploy-example GitHub Wiki
Essa página é destinada aos alunos que estão usando AWS Academy. Se você está usando uma conta privada na AWS, seguir o roteiro alternativo.
- Acessar a console do serviço EC2
- Iniciar a criação de VM através do botão Launch Instance / Executar instânica;
- Especificar um nome para a VM e adicionar a tag que será usada pelo CodeDeploy para selecionar a VM onde o código será implantado (ex: usar chave codedeploy e valor producao)
- Escolher o sistema operacional Ubuntu Server 22.04 LTS e tipo t2.micro (Free-tier eligible);
- Baixar chave de acesso (ou usar uma existente se já tiver a chave em sua máquina local);
- Na seção Network settings, configurar um security group para abrir a porta 8080
- Na seção Advance configuration, atribuir para a VM o IAM role disponibilizado pelo AWS Academy (com nome LabInstanceProfile);
- Conectar via SSH na VM e realizar a instação do agente do CodeDeploy:
sudo apt-get update sudo apt-get install ruby-full ruby-webrick wget -y cd /tmp wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/releases/codedeploy-agent_1.3.2-1902_all.deb mkdir codedeploy-agent_1.3.2-1902_ubuntu22 dpkg-deb -R codedeploy-agent_1.3.2-1902_all.deb codedeploy-agent_1.3.2-1902_ubuntu22 sed 's/Depends:.*/Depends:ruby3.0/' -i ./codedeploy-agent_1.3.2-1902_ubuntu22/DEBIAN/control dpkg-deb -b codedeploy-agent_1.3.2-1902_ubuntu22/ sudo dpkg -i codedeploy-agent_1.3.2-1902_ubuntu22.deb sudo systemctl list-units --type=service | grep codedeploy
- Verificar se o agente está executando:
sudo service codedeploy-agent status
- Obter o código fonte de https://github.com/mvneves/codedeploy-example
- Gerar um arquivo .zip contendo o conteúdo do repositório e fazer upload em um bucket do S3 (Obs: pode usar a opção de Download ZIP do GitHub).
- Acessar o serviço CodeDeploy
- Acessar a opção Applications / Aplicativos no menu lateral e clicar em Create application / Criar aplicativo
- Escolher um nome qualquer para a aplicação, escolher a plataforma EC2/On-premises / EC2/local e clicar botão Create application / Criar aplicativo
- Acessar a aplicação récem criada e clicar em Create deployment group / Criar grupo de implantação
- Atribuir um nome para o grupo (ex: producao)
- Selecionar o service role disponibilizado pelo AWS Educate: LabRole
- Selecionar o tipo do deploy como In-place / No local
- Escolher a configuração do ambiente como Amazon EC2 Instances / Instâncias do Amazon EC2 e escolher a mesma tag atribuída para a VM (ex: chave codedeploy e valor producao)
- Escolher a opção nunca na etapa Instalar o agente do AWS CodeDeploy
- Desabilitar a opção Enable load balancing / Habilitar balanceamento de carga
- Clicar em Create deployment group
- Navegar novamente para a aplicação criada no serviço CodeDeploy
- Na aba Deployments / Implantações, clicar no botão Create deployment / Criar implantação
- Escolher o Deployment group / Grupo de implantação criado anteriormente (ex: producao)
- Escolher a opção de obter o código fonte do S3
- Especificar o caminho do arquivo .zip no S3 (ex: s3://nome-do-bucket/aplicacao.zip)
- Na seção Deployment behavior settings / Configurações adicionais do comportamento de implantação, marcar a opção Don't fail the deployment... / Não causar a falha da implantação... e a Overwrite the content / Substituir o conteúdo
- Clicar em Create deployment / Criar implantação
- Acompanhar o progresso da implantação e, quando concluída, verificar se a aplicação subiu com sucesso (Obs: acessar o IP público da VM usando a porta 8080 pelo browser)
- Create a Service Role for CodeDeploy: https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html
- Create an IAM Instance Profile for Your Amazon EC2 Instances (Console): https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-iam-instance-profile.html