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
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
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
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 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 |
Tarefa | Descrição | Habilidades 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 |