Implante microsserviços Java no Amazon ECS usando o AWS Fargate - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implante microsserviços Java no Amazon ECS usando o AWS Fargate

Criado por Vijay Thompson (AWS) e Sandeep Bondugula (AWS)

Ambiente: PoC ou piloto

Origem: contêineres

Destino: Amazon ECS

Tipo R: N/A

Tecnologias: contêineres e microsserviços; aplicativos móveis e da Web

Serviços da AWS: Amazon ECS

Resumo

Esse padrão fornece orientação para implantar microsserviços Java em contêineres no Amazon Elastic Container Service (Amazon ECS) usando o AWS Fargate. O padrão não usa o Amazon Elastic Container Registry (Amazon ECR) para gerenciamento de contêineres; em vez disso, as imagens do Docker são extraídas do hub do Docker.

Pré-requisitos e limitações

Pré-requisitos

  • Um aplicativo de microsserviços Java existente em um hub do Docker

  • Um repositório público do Docker

  • Uma conta AWS ativa

  • Familiaridade com os serviços da AWS, incluindo Amazon ECS e Fargate

  • Estrutura Docker, Java e Spring Boot

  • Amazon Relational Database Service (Amazon RDS) instalado e em execução (opcional)

  • Uma nuvem privada virtual (VPC) se o aplicativo exigir o Amazon RDS (opcional)

Arquitetura

Pilha de tecnologia de origem

  • Microsserviços Java (por exemplo, implementados no Spring Boot) e implantados no Docker

Arquitetura de origem

Arquitetura de origem para microsserviços Java implantados no Docker

Pilha de tecnologias de destino

  • Um cluster do Amazon ECS que hospeda cada microsserviço usando o Fargate

  • Uma rede VPC para hospedar o cluster do Amazon ECS e os grupos de segurança associados 

  • Uma definição de cluster/tarefa para cada microsserviço que gera contêineres usando o Fargate

Arquitetura de destino

Arquitetura de destino em microsserviços Java no Amazon ECS

Ferramentas

Ferramentas

  • O Amazon ECS elimina a necessidade de instalar e operar seu próprio software de orquestração de contêineres, gerenciar e escalar um cluster de máquinas virtuais ou programar contêineres nessas máquinas virtuais. 

  • O AWS Fargate ajuda você a executar contêineres sem precisar gerenciar servidores ou instâncias do Amazon Elastic Compute Cloud (Amazon EC2). É usado em conjunto com o Amazon Elastic Container Service (Amazon ECS).

  • Docker é uma plataforma de software que permite criar, testar e implantar aplicativos rapidamente. O Docker empacota o software em unidades padronizadas chamadas contêineres que têm tudo o que o software precisa para ser executado, incluindo bibliotecas, ferramentas do sistema, código e runtime. 

Código Docker

O Dockerfile a seguir especifica a versão do Java Development Kit (JDK) usada, onde o arquivo Java (JAR) existe, o número da porta exposta e o ponto de entrada do aplicativo.

FROM openjdk:11 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]

Épicos

TarefaDescriçãoHabilidades necessárias

Crie uma definição de tarefa.

É necessária uma definição de tarefa para executar contêineres do Docker no Amazon ECS. Abra o console do Amazon ECS em https://console.aws.amazon.com/ecs/, escolha Definições de tarefas e, em seguida, crie uma nova definição de tarefa. Para mais informações, consulte a documentação do Amazon ECS.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Escolha o tipo de inicialização.

Escolha Fargate como o tipo de lançamento.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Configure a tarefa.

Defina um nome de tarefa e configure o aplicativo com a quantidade adequada de memória de tarefa e CPU.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Defina o contêiner.

Especifique o nome do contêiner. Para a imagem, insira o nome do site do Docker, o nome do repositório e o nome da tag da imagem do Docker (docker.io/sample-repo/sample-application:sample-tag-name). Defina limites de memória para o aplicativo e configure mapeamentos de portas (8080, 80) para as portas permitidas.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Crie a tarefa.

Quando as configurações da tarefa e do contêiner estiverem prontas, crie a tarefa. Para obter instruções, consulte os links na seção Recursos relacionados.

Administrador de sistemas da AWS, desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Criar e configurar um cluster.

Escolha Rede somente como o tipo de cluster, configure o nome e, em seguida, crie o cluster ou use um cluster existente, se disponível. Para mais informações, consulte a documentação do Amazon ECS.

Administrador de sistemas da AWS, desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Crie uma tarefa.

Dentro do cluster, escolha Executar nova tarefa.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Escolha o tipo de inicialização.

Escolha Fargate como o tipo de lançamento.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Escolha a definição da tarefa, a revisão e a versão da plataforma.

Escolha a tarefa que você deseja executar, a revisão da definição da tarefa e a versão da plataforma.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Selecione o cluster.

Escolha o cluster do qual você deseja executar a tarefa.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Especifique o número de tarefas.

Configure o número de tarefas que devem ser executadas. Se você estiver iniciando com duas ou mais tarefas, é necessário um balanceador de carga para distribuir o tráfego entre as tarefas.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Especifique o grupo de tarefas.

(Opcional) Especifique um nome de grupo de tarefas para identificar um conjunto de tarefas relacionadas como um grupo de tarefas.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Configure as sub-redes e os grupos de segurança da VPC do cluster.

Configure a VPC do cluster e as sub-redes nas quais você deseja implantar a aplicação. Crie ou atualize grupos de segurança (HTTP, HTTPS e porta 8080) para fornecer acesso às conexões de entrada e saída.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Defina as configurações de IP público.

Ative ou desative o IP público, dependendo se você deseja usar um endereço IP público para tarefas do Fargate. Por padrão, a opção recomendada é Ativado.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Revise as configurações e crie a tarefa.

Revise as configurações e, em seguida, escolha Concluir.

Administrador de sistemas da AWS, desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Copie o URL do aplicativo.

Quando o status da tarefa for atualizado para Em execução, selecione a tarefa. Na seção Rede, copie o IP público.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Teste seu aplicativo.

No seu navegador, insira o IP público para testar o aplicativo.

Administrador de sistemas da AWS, desenvolvedor de aplicativos

Recursos relacionados