Como posso realizar implantações azul/verde para serviços hospedados no Amazon ECS?

6 minuto de leitura
0

Quero realizar a implantação azul/verde para serviços hospedados no Amazon Elastic Container Service (Amazon ECS).

Breve descrição

Antes de seguir as etapas para realizar uma implantação azul/verde, verifique se você tem o seguinte:

Resolução

Crie um perfil de serviço do AWS Identity and Access Management (IAM)

Antes de implantar o tipo azul/verde para o AWS CodeDeploy com o Amazon ECS, primeiro conceda ao serviço CodeDeploy permissões para atualizar o serviço ECS em seu nome.

1.    Abra o console do IAM.

2.    No painel de navegação, selecione Perfis.

3.    Selecione Criar perfil.

4.    Na seção Selecionar tipo de entidade confiável, selecione o serviço da AWS e, em seguida, selecione CodeDeploy.

5.    Na seção Selecionar seu caso de uso, selecione CodeDeploy - ECS e, em seguida, selecione Avançar: permissões.

Observação: mantenha a política padrão AWSCodeDeployforECS. Essa política inclui as permissões que o CodeDeploy exige para interagir corretamente com o Amazon ECS e outros serviços.

6.    Selecione Avançar: etiquetas.

7.    (Opcional) Insira um nome de etiqueta e, em seguida, selecione Avançar: revisão.

8.    Em Nome do perfil, insira ecsCodeDeployRole.

9.    Selecione Criar perfil.

Crie o Application Load Balancer

1.    Abra o console do Amazon EC2.

2.    No painel de navegação, na seção Balanceamento de carga, selecione Balanceadores de carga.

3.    Selecione Criar balanceador de carga.

4.    Na seção Selecionar tipo de balanceador de carga, em Application Load Balancer, escolha Criar.

5.    Em Nome, insira um nome para o balanceador de carga.

6.    Na seção Zonas de disponibilidade, selecione a VPC em que seu cluster do Amazon ECS foi criado. Em seguida, selecione quaisquer duas sub-redes com acesso à Internet.

7.    Selecione Avançar: definir configurações de segurança.

8.    Selecione Criar um novo grupo de segurança.

9.    Em Nome do grupo de segurança, insira Grupo de segurança de exemplo.

10.   Selecione Adicionar regra.

11.    Em Intervalo de portas, insira 8080. Em Origem, insira 0.0.0.0/0.

12.    Selecione Avançar: configurar roteamento.

13.    Em Grupo de destino, insira um nome para seu grupo de destino.

14.    Em Tipo de destino, escolha IP.

15.    Selecione Avançar: registrar destinos e, em seguida, registre seu grupo de destino e defina seu IP.

16.    Selecione Avançar: revisão.

17.    Selecione Criar.

Crie uma definição de tarefa

1.    Abra o console do Amazon ECS.

2.    No painel de navegação, escolha Definições de tarefa.

3.    Selecione Criar uma nova definição de tarefa.

4.    Selecione Fargate e, em seguida, selecione Próxima etapa.

5.   Configure a definição da tarefa com base nas suas necessidades e, em seguida, selecione Criar.

O exemplo de definição de tarefa a seguir usa o tipo de inicialização do AWS Fargate e uma imagem NGINX do Docker Hub:

{<br>  "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole",<br>  "containerDefinitions": [{<br>    "name": "sample-website",<br>    "image": "nginx:latest",<br>    "essential": true,<br>    "portMappings": [{<br>      "hostPort": 80,<br>      "protocol": "tcp",<br>      "containerPort": 80<br>    }]<br>  }],<br>  "requiresCompatibilities": [<br>    "FARGATE"<br>  ],<br>  "networkMode": "awsvpc",<br>  "cpu": "256",<br>  "memory": "512",<br>  "family": "sample-website"<br>}

Crie um serviço do Amazon ECS

1.    Abra o console do Amazon ECS.

2.    Na seção Amazon ECS do painel de navegação, selecione Clusters e, em seguida, selecione o seu cluster.

3.    Na guia Serviços, selecione Criar para criar um serviço.

4.    Na seção Configurar serviço, em Tipo de inicialização, selecione FARGATE.

5.    Em Definição de tarefa, selecione a definição de tarefa criada na seção anterior.

6.    Em Nome do serviço, insira um nome para o serviço. Por exemplo: Site-de-Exemplo

7.    Em Número de tarefas, insira o número de tarefas que você deseja que seu serviço execute.

8.    Na seção Implantações, selecione Implantação azul/verde (desenvolvida pelo AWS CodeDeploy).

9.    Em Perfil de serviço do CodeDeploy, selecione ecsCodeDeployRole.

Observação: você criou o perfil de serviço ecsCodeDeployRole anteriormente.

10.    Selecione Próxima etapa.

11.    Na seção VPC e grupos de segurança, escolha a VPC e sub-redes do seu cluster.

12.    Na seção Balanceamento de carga, em tipo de Balanceador de carga, selecione Application Load Balancer.

13.    Em Nome do balanceador de carga, selecione o balanceador de carga criado anteriormente.

14.    Na seção Contêiner a balanceador de carga, selecione Adicionar ao balanceador de carga.

15.    Na seção Contêiner a balanceamento de carga, em Porta do receptor de produção, selecione 80:HTTP.

16.    Marque a caixa de seleção Testar receptor.

17.    Em Testar porta do receptor, selecione criar nova e, em seguida, digite 8080 como porta do receptor.

18.    Na seção Configuração adicional, em Nome do grupo de destino 1, selecione o grupo de destino que você criou ao criar o balanceador de carga.

19.    Para o Nome do grupo de destino 2, crie um novo grupo de destino no console do Amazon ECS com o nome site-de-exemplo-tg-2.

20.    Ignore a página Definir ajuste de escala automático (opcional) e selecione Próxima etapa.

21.    Selecione Criar serviço.

Agora, você pode ver o novo serviço criado com uma tarefa em execução.

Verifique se a implantação azul/verde do Amazon ECS está funcionando

Depois de criar o serviço azul/verde do Amazon ECS, crie uma nova revisão de definição de tarefa com as alterações e, em seguida, atualize o serviço do Amazon ECS. Isso cria uma implantação no console do CodeDeploy.

1.    Abra o console do Amazon ECS.

2.    No painel de navegação, selecione Definições de tarefa.

3.    Selecione sua definição de tarefa, selecione Criar nova revisão e, em seguida, selecione Criar.

Observação: no exemplo a seguir, a propriedade da imagem é atualizada para usar httpd:2.4:

{<br>  "executionRoleArn": "arn:aws:iam::account_ID:role/ecsTaskExecutionRole",<br>  "containerDefinitions": [{<br>    "name": "sample-website",<br>    "image": "httpd:2.4",<br>    "essential": true,<br>    "portMappings": [{<br>      "hostPort": 80,<br>      "protocol": "tcp",<br>      "containerPort": 80<br>    }]<br>  }],<br>  "requiresCompatibilities": [<br>    "FARGATE"<br>  ],<br>  "networkMode": "awsvpc",<br>  "cpu": "256",<br>  "memory": "512",<br>  "family": "sample-website"<br>}

4.    No painel de navegação, selecione Clusters e, em seguida, selecione o cluster em que você implantou seu serviço do Amazon ECS.

5.    Na guia Serviços, selecione seu serviço do Amazon ECS e, em seguida, selecione Atualizar.

6.    Na seção Configurar serviço, em Definição de tarefa, escolha a revisão mais recente, criada na etapa 3.

7.    Selecione Próxima etapa para ignorar todas as páginas restantes do assistente e, em seguida, escolha Atualizar serviço.

8.    Selecione Exibir serviço.

9.    Na guia Implantações, na coluna ID de implantação, selecione o ID de implantação para visualizar a implantação do CodeDeploy.


AWS OFICIAL
AWS OFICIALAtualizada há um ano