Implante microsserviços Java na Amazon ECS usando a Amazon ECR e o balanceamento de carga - 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 na Amazon ECS usando a Amazon ECR e o balanceamento de carga

Criado por Durga Prasad Cheepuri () AWS

Ambiente: PoC ou piloto

Origem: Java

Alvo: Amazon ECS

Tipo R: N/A

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

AWSserviços: Amazon ECS

Resumo

Esse padrão descreve as etapas para a implantação de uma arquitetura de microsserviços Java em contêineres no Amazon Elastic Container Service (ECSAmazon) 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 (AmazonECR) para armazenar e gerenciar os contêineres baseados em Docker e um AWS CloudFormation modelo com um script Python para automatizar a configuração da sua infraestrutura. O padrão é baseado na postagem Implantando microsserviços Java no Amazon Elastic Container Service, publicada no blog AWS Compute.

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. 

A Amazon ECS é um serviço de orquestração de contêineres altamente escalável e de alto desempenho. Ele suporta contêineres Docker e permite que você execute e escale aplicativos em contêineres rapidamente. AWS Com a AmazonECS, 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 API chamadas 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 de AWS Identity and Access Management (IAM), grupos de segurança, balanceadores de carga, CloudWatch Amazon Events AWS CloudFormation , modelos e logs. AWS CloudTrail

Pré-requisitos e limitações

Pré-requisitos

  • Uma AWS conta 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

  • AWSInterface de linha de comando (AWSCLI)

  • Java, kit AWS de desenvolvimento de software (SDK) para Python (Boto3) e software Docker

  • Familiaridade com o uso das tecnologias anteriores

  • Familiaridade com AWS serviços como Amazon ECS e Elastic Load Balancing AWS CloudFormation

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 ECS cluster da Amazon que hospeda os contêineres para cada microsserviço.

  • Uma rede Amazon Virtual Private Cloud (AmazonVPC) para hospedar o ECS cluster da Amazon e os grupos de segurança associados.

  • Um repositório Amazon Elastic Container Registry (AmazonECR) 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 da AmazonECS.

Arquitetura de destino

Etapas para implantar uma arquitetura de microsserviços Java em contêineres na Amazon. ECS

Ferramentas

  • Amazon ECS — A Amazon ECS permite que você inicie e interrompa aplicativos baseados em contêineres com API chamadas simples, permite que você obtenha o estado do seu cluster a partir de um serviço centralizado e oferece acesso a muitos recursos familiares do Amazon Elastic Compute Cloud (Amazon). EC2

  • Amazon ECR — O Amazon Elastic Container Registry (AmazonECR) é um registro totalmente gerenciado que facilita para os desenvolvedores armazenar, gerenciar e implantar imagens de contêineres do Docker. A Amazon ECR está integrada ECS à Amazon para simplificar seu development-to-production fluxo de trabalho. A Amazon ECR hospeda suas imagens em uma arquitetura altamente disponível e escalável para que você possa implantar contêineres de forma confiável para seus aplicativos. A integração com AWS Identity and Access Management (IAM) fornece controle em nível de recursos de cada repositório.

Épicos

TarefaDescriçãoHabilidades 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 na AmazonECR.

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 AWS CloudFormation modelo.

Crie um AWS CloudFormation modelo para provisionar a nuvem privada virtual (VPC), o ECS cluster da Amazon e o Amazon Relational Database Service (RDSAmazon).

Ops
TarefaDescriçãoHabilidades necessárias

Crie a AWS infraestrutura 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 AWS CloudFormation modelo que você criou anteriormente. Esse modelo cria a AWS infraestrutura de que você precisa para o ambiente de destino.

Ops

Crie ECR repositórios, tarefas, serviços, o Application Load Balancer e grupos-alvo da Amazon.

O script Python lê as saídas do AWS CloudFormation modelo e usa BOTO3 API chamadas para criar ECR repositórios, tarefas, serviços, o Application Load Balancer e grupos-alvo da Amazon.

Ops

Recursos relacionados