Skip to content

tecmx/mx-aws-deploy-labs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Configuração de implantação automática de código em EC2 com CodeDeploy (AWS Academy)

Passo 1: Preparar uma instância do EC2 para receber o deploy

Criar uma instância EC2

  1. Acessar a console do serviço EC2
  2. Iniciar a criação de VM através do botão Launch Instance / Executar instânica;
  3. 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)
  4. Escolher o sistema operacional Ubuntu Server 22.04 LTS e tipo t2.micro (Free-tier eligible);
  5. Baixar chave de acesso (ou usar uma existente se já tiver a chave em sua máquina local);
  6. Na seção Network settings, configurar um security group para abrir a porta 8080
  7. Na seção Advance configuration, atribuir para a VM o IAM role disponibilizado pelo AWS Academy (com nome LabInstanceProfile);
  8. 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
  1. Verificar se o agente está executando:
sudo service codedeploy-agent status

Passo 2: Preparar a aplicação

  1. Obter o código fonte de https://github.com/mvneves/codedeploy-example
  2. 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).

Passo 3: Configurar o serviço CodeDeploy

Configurar uma nova aplicação no CodeDeploy

  1. Acessar o serviço CodeDeploy
  2. Acessar a opção Applications / Aplicativos no menu lateral e clicar em Create application / Criar aplicativo
  3. Escolher um nome qualquer para a aplicação, escolher a plataforma EC2/On-premises / EC2/local e clicar botão Create application / Criar aplicativo

Configurar um grupo de deploy

  1. Acessar a aplicação récem criada e clicar em Create deployment group / Criar grupo de implantação
  2. Atribuir um nome para o grupo (ex: producao)
  3. Selecionar o service role disponibilizado pelo AWS Educate: LabRole
  4. Selecionar o tipo do deploy como In-place / No local
  5. 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)
  6. Escolher a opção nunca na etapa Instalar o agente do AWS CodeDeploy
  7. Desabilitar a opção Enable load balancing / Habilitar balanceamento de carga
  8. Clicar em Create deployment group

Passo 4: Fazer deploy da aplicação

  1. Navegar novamente para a aplicação criada no serviço CodeDeploy
  2. Na aba Deployments / Implantações, clicar no botão Create deployment / Criar implantação
  3. Escolher o Deployment group / Grupo de implantação criado anteriormente (ex: producao)
  4. Escolher a opção de obter o código fonte do S3
  5. Especificar o caminho do arquivo .zip no S3 (ex: s3://nome-do-bucket/aplicacao.zip)
  6. 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
  7. Clicar em Create deployment / Criar implantação
  8. 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)

Referências:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 72.0%
  • Python 28.0%