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á.
Implantar microsserviços Java no Amazon ECS usando o Amazon ECR e 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
Este padrão orienta você pelas etapas de implantação de microsserviços Java como aplicações em contêineres no Amazon Elastic Container Service (Amazon ECS). O padrão também usa o Amazon Elastic Container Registry (Amazon ECR) para gerenciar o contêiner e o AWS Fargate para executar o contêiner.
Pré-requisitos e limitações
Pré-requisitos
Um aplicativo de microsserviços Java existente executado on- premises no Docker
Uma conta AWS ativa
Familiaridade com o Amazon ECR, o Amazon ECS, o AWS Fargate e AWS Command Line Interface (AWS CLI)
Familiaridade com os softwares Java e Docker
Versões do produto
AWS CLI versão 1.7 ou mais recente
Arquitetura
Pilha de tecnologia de origem
Microsserviços Java (por exemplo, desenvolvidos usando o Spring Boot) e implantados on-premises
Docker
Arquitetura de origem
![Arquitetura de origem para implantação de microsserviços Java no Amazon ECS](images/pattern-img/a48764de-d310-42dd-bff6-0efd70bc3aed/images/27db76ee-b9e3-45f1-a385-1e51af8415a9.png)
Pilha de tecnologias de destino
Amazon ECR
Amazon ECS
AWS Fargate
Arquitetura de destino
![Arquitetura de destino para implantação de microsserviços Java no Amazon ECS](images/pattern-img/a48764de-d310-42dd-bff6-0efd70bc3aed/images/e85cb42a-9982-4050-96fb-b7886fce4d38.png)
Ferramentas
Ferramentas
O Amazon Elastic Container Registry (Amazon ECR) é um registro de contêiner do Docker totalmente gerenciado que facilita aos desenvolvedores o armazenamento, o gerenciamento e a implantação de imagens de contêiner do Docker. O Amazon ECR é integrado ao Amazon ECS para simplificar seu development-to-production fluxo de trabalho. O Amazon ECR hospeda as imagens em uma arquitetura altamente disponível e escalável, o que permite que você implante contêineres para seus aplicativos. A integração com o AWS Identity and Access Management (IAM) fornece controle em nível de recurso de cada repositório.
O Amazon Elastic Container Service (Amazon ECS) é um serviço de orquestração de contêineres altamente escalável e de alto desempenho que oferece suporte a contêineres Docker e permite que você execute e escale facilmente aplicativos em contêineres na AWS. 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.
AWS Fargate é um mecanismo de computação para o Amazon ECS que permite que você execute contêineres sem precisar gerenciar servidores ou clusters. Com o AWS Fargate, você não precisa mais provisionar, configurar e escalar clusters de máquinas virtuais para executar contêineres. Isso elimina a necessidade de escolher tipos de servidor, decidir quando dimensionar clusters ou otimizar o agrupamento de clusters.
O Docker
é uma plataforma que permite criar, testar e entregar aplicativos em pacotes chamados contêineres.
Código
O seguinte DockerFile especifica a versão do Java Development Kit (JDK) usada, onde existe o arquivo Java archive (JAR), o número da porta exposta e o ponto de entrada do aplicativo.
FROM openjdk:8 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar um repositório. | Faça login no Console de Gerenciamento da AWS e abra o console do Amazon ECR em https://console.aws.amazon.com/ecr/repositories | Desenvolvedor, administrador do sistema |
Faça o upload do projeto. | Abra o repositório e escolha Exibir comandos push. Siga as etapas exibidas para carregar o projeto. (Essas etapas funcionam somente quando você usa a AWS CLI versão 1.7 ou mais recente.) Quando o upload estiver concluído, copie a URL da compilação no repositório. Você verá esse URL é obrigatório quando você cria um contêiner no Amazon ECS. | Desenvolvedor, administrador do sistema |
Tarefa | Descrição | Habilidades 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/ | Desenvolvedor, administrador do sistema |
Escolha o tipo de inicialização. | Escolha Fargate como o tipo de inicialização. | Desenvolvedor, administrador do sistema |
Configure a tarefa. | Defina um nome de tarefa e configure o aplicativo com a quantidade adequada de memória de tarefa e CPU. | Desenvolvedor, administrador do sistema |
Defina o contêiner. | Adicione o contêiner, fornecendo um nome, a URL do repositório Amazon ECR, limites de memória e mapeamento de portas. As portas 8080 e 80 são configuradas para mapeamentos de portas. Defina as configurações restantes com base nos requisitos da sua aplicação. | Desenvolvedor, administrador do sistema |
Crie a tarefa. | Quando as configurações da tarefa e do contêiner estiverem prontas, crie a tarefa. Para obter instruções detalhadas, consulte os links na seção Recursos relacionados. | Desenvolvedor, administrador do sistema |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie ou escolha um cluster. | Um cluster do Amazon ECS oferece um agrupamento lógico de tarefas ou serviços. Você pode optar por usar um cluster existente ou criar um novo cluster. Se você decidir criar um novo cluster, escolha o tipo de cluster com base em seus requisitos. Em nosso exemplo, selecionamos um cluster de rede. Forneça um nome para o cluster e escolha se você deseja criar uma nova nuvem privada virtual (VPC) para usar nas tarefas do Fargate. | Desenvolvedor, administrador do sistema |
Crie um serviço. | Dentro do cluster, escolha Criar serviço. | Desenvolvedor, administrador do sistema |
Escolha o tipo de inicialização. | Escolha Fargate como o tipo de inicialização. | Desenvolvedor, administrador do sistema |
Escolha a definição da tarefa, a revisão e a versão da plataforma. | Escolha a tarefa que você deseja executar, seguida pela revisão da definição da tarefa e da versão da plataforma. | Desenvolvedor, administrador do sistema |
Selecione o cluster. | Selecione o cluster no qual criar seu serviço na lista suspensa. | Desenvolvedor, administrador do sistema |
Forneça um nome de serviço. | Forneça um nome exclusivo para o serviço que você está criando. | Desenvolvedor, administrador do sistema |
Especifique o número de tarefas. | Configure o número de tarefas que devem ser executadas quando o serviço for inicializado. Se você estiver inicializando com duas ou mais tarefas, é necessário um balanceador de carga para balancear as tarefas. O número mínimo de tarefas a serem configuradas é Um. | Desenvolvedor, administrador do sistema |
Defina as porcentagens mínima e máxima de integridade. | Configure as porcentagens mínimas e máximas de integridade da aplicação ou aceite a opção padrão fornecida. | Desenvolvedor, administrador do sistema |
Defina as configurações de implantação. | Escolha o tipo de implantação dependendo dos seus requisitos. É possível escolher uma atualização contínua ou uma implantação azul/verde. | Desenvolvedor, administrador do sistema |
Configure as sub-redes e os grupos de segurança da VPC do cluster. | Configure o cluster VPC, as sub-redes nas quais você deseja implantar o aplicativo e os grupos de segurança (HTTP, HTTPS e porta 8080) para fornecer acesso às conexões de entrada/saída. | Desenvolvedor, administrador do sistema |
Defina as configurações de IP público. | Ative ou desative o IP público, dependendo da sua necessidade em usar um endereço IP público para tarefas do Fargate. | Desenvolvedor, administrador do sistema |
Configure o balanceamento de carga. | Configure o balanceador de carga se você estiver inicializando o serviço com mais de uma tarefa. Você deve criar um balanceador de carga e seu grupo de destino antes de inicializar o serviço. | Desenvolvedor, administrador do sistema |
Configure a escalabilidade automática. | Defina seu serviço para usar o Amazon ECS Service Auto Scaling para aumentar ou diminuir o número desejado de tarefas, dependendo de seus requisitos. | Desenvolvedor, administrador do sistema |
Revise as configurações e crie o serviço. | Revise as configurações do serviço e, em seguida, escolha Criar serviço. | Desenvolvedor, administrador do sistema |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Testar seu aplicativo | Teste o aplicativo usando o DNS público criado quando a tarefa for implantada. Se o aplicativo tiver um balanceador de carga, teste o aplicativo usando-o e, em seguida, faça a substituição. | Desenvolvedor, administrador do sistema |
Recursos relacionados
Noções básicas do Docker para Amazon ECS (documentação do Amazon ECS)
Amazon ECS no AWS Fargate (documentação do Amazon ECS)
Criar um repositório privado (documentação do Amazon ECR)
Criação de uma definição de tarefa (documentação do Amazon ECS)
Definições de contêiner (documentação do Amazon ECS)
Criação de um cluster (documentação do Amazon ECS)
Configurar parâmetros básicos de serviço (documentação do Amazon ECS)
Configurar uma rede (documentação do Amazon ECS)
Configurar o serviço para usar um balanceador de carga (documentação do Amazon ECS)
Configurar o serviço para usar o Auto Scaling do serviço (documentação do Amazon ECS)