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 balanceamento de carga
Criado por Durga Prasad Cheepuri (AWS)
Resumo
Este padrão descreve as etapas para a implantação de uma arquitetura de microsserviços Java em contêineres no Amazon Elastic Container Service (Amazon ECS) para facilitar a escalabilidade e agilizar o desenvolvimento de seus aplicativos. Isso ajuda a viabilizar a inovação e acelera a time-to-market criação de novos recursos.
O padrão também usa o Amazon Elastic Container Registry (Amazon ECR) para armazenar e gerenciar os contêineres baseados em Docker e um CloudFormation modelo da AWS com um script Python para automatizar a configuração da sua infraestrutura. O padrão é baseado na postagem Deploying Java Microservices on Amazon Elastic Container Service (Implantação de microsserviços Java no Amazon Elastic Container Service
Os microsserviços fornecem uma abordagem arquitetônica e organizacional para o desenvolvimento de software, na qual o software é composto por serviços pequenos e independentes que se comunicam por meio de interfaces de programação de aplicativos bem definidas ()APIs. Equipes pequenas e independentes são proprietárias desses serviços.
O Amazon ECS é um serviço de orquestração de contêineres altamente escalável e de alto desempenho. Ele oferece suporte a contêineres do Docker e permite que você execute e escale aplicativos em contêineres na AWS rapidamente. Com o Amazon ECS, você não precisa mais instalar e operar seu software de orquestração de contêineres, gerenciar e escalar um cluster de máquinas virtuais (VMs) ou programar contêineres nelas. VMs
Com chamadas de API simples, você pode iniciar e interromper aplicativos habilitados para Docker, consultar o estado completo da sua solicitação e acessar muitos recursos naturais, como funções do AWS Identity and Access Management (IAM), grupos de segurança, balanceadores de carga, Amazon CloudWatch Events, modelos da AWS e CloudFormation registros da AWS. CloudTrail
Pré-requisitos e limitações
Pré-requisitos
Uma conta AWS ativa
Código-fonte de microsserviços Java, com o Java Development Kit versão 1.7 ou mais recente
Uma chave de acesso e uma chave de acesso secreta para um usuário na conta
AWS Command Line Interface (AWS CLI)
Java, kit de desenvolvimento de software (SDK) da AWS para Python (Boto3) e software Docker
Familiaridade com o uso das tecnologias anteriores
Familiaridade com os serviços da AWS, como Amazon ECS CloudFormation, AWS e Elastic Load Balancing
Arquitetura
Pilha de tecnologia de origem
Microsserviços implementados em Java e implantados no Apache Tomcat em um ambiente on-premises
Pilha de tecnologias de destino
O Application Load Balancer que inspeciona a solicitação do cliente. Com base nas regras de roteamento, o balanceador de carga direciona a solicitação para uma instância e porta do grupo de destino que corresponda ao estado.
Um grupo de destino para cada microsserviço. Os grupos de destino são usados pelos serviços correspondentes para registrar as instâncias de contêiner disponíveis. Cada grupo de destino tem um caminho, então, quando você chama o caminho para um microsserviço específico, ele mapeia para o grupo de destino correto. Isso permite que você use um Application Load Balancer para atender a todos os microsserviços acessados pelo caminho. Por exemplo, https:///owner/ * mapearia e direcionaria para o microsserviço do proprietário.
Um cluster do Amazon ECS que hospeda os contêineres de cada microsserviço.
Uma rede Amazon Virtual Private Cloud (Amazon VPC) para hospedar o cluster do Amazon ECS e grupos de segurança associados.
Um repositório Amazon Elastic Container Registry (Amazon ECR) para cada microsserviço.
Uma definição de serviço ou tarefa para cada microsserviço, que gera contêineres nas instâncias do cluster Amazon ECS.
Arquitetura de destino

Ferramentas
Amazon ECS — O Amazon ECS permite que você inicie e interrompa aplicativos baseados em contêineres com chamadas de API simples, permite que você obtenha o estado do seu cluster a partir de um serviço centralizado e oferece acesso a muitos recursos familiares da Amazon Elastic Compute Cloud (Amazon). EC2
Amazon ECR: o Amazon Elastic Container Registry (Amazon ECR) é um registro 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.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Provisione uma instância Amazon EC2 Linux, instale o Docker e crie um arquivo Docker para cada microsserviço. | Ops | |
Configure imagens do Docker no Amazon ECR. | Use o um Dockerfile para a imagem a ser enviada, compile a imagem e marque-a para o novo repositório. Faça o mesmo para cada microsserviço. Envie a imagem recentemente marcada ao repositório. | Ops |
Crie um CloudFormation modelo da AWS. | Crie um CloudFormation modelo da AWS para provisionar a nuvem privada virtual (VPC), o cluster Amazon ECS e o Amazon Relational Database Service (Amazon RDS). | Ops |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie a infraestrutura da AWS usando o CloudFormation modelo que você criou anteriormente. | Use o script Python em https://github.com/awslabs/ amazon-ecs-java-microservices blob/master/2_ECS_Java_Spring_PetClinic_Microservices/setup /.py para invocar o modelo da CloudFormation AWS que você criou anteriormente. Esse modelo cria a infraestrutura da AWS de que você precisa para o ambiente de destino. | Ops |
Crie repositórios, tarefas, serviços, o Application Load Balancer e grupos de destino do Amazon ECR. | O script Python lê as saídas do CloudFormation modelo da AWS e usa chamadas de BOTO3 API para criar repositórios, tarefas, serviços, o Application Load Balancer e grupos-alvo do Amazon ECR. | Ops |
Recursos relacionados
Deploying Java Microservices on Amazon Elastic Container Service (Implantação de microsserviços Java no Amazon Elastic Container Service)
(publicação no blog do AWS Compute)