

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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate"></a>

*Vijay Thompson e Sandeep Bondugula, Amazon Web Services*

## Resumo
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-summary"></a>

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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-prereqs"></a>

**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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-architecture"></a>

**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\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/65185957-2b8b-43a6-964c-95ce0a45ba17/images/0a946ca8-fe37-4ede-85cb-a80a1c36105d.png)


**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 cluster/task definição para cada microsserviço que gera contêineres usando o Fargate

**Arquitetura de destino**

![\[Arquitetura de destino em microsserviços Java no Amazon ECS\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/65185957-2b8b-43a6-964c-95ce0a45ba17/images/b21349ea-21fc-4688-b76a-1bde479858aa.png)


## Ferramentas
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-tools"></a>

**Ferramentas**
+ O [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) 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](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) 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](https://www.docker.com/) é 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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-epics"></a>

### Criar novas definições de tarefa
<a name="create-new-task-definitions"></a>


| Tarefa | Description | 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/](https://console.aws.amazon.com/ecs/), escolha **Definições de tarefas** e, em seguida, crie uma nova definição de tarefa. Para obter mais informações, consulte a [documentação do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html). | Administrador de sistemas da AWS, desenvolvedor de aplicativos | 
| Escolha o tipo de inicialização. | Escolha **Fargate** como o tipo de inicialização. | 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 detalhadas, consulte os links na seção *Recursos relacionados*. | Administrador de sistemas da AWS, desenvolvedor de aplicativos | 

### Configurar o cluster
<a name="configure-the-cluster"></a>


| Tarefa | Description | Habilidades 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 obter mais informações, consulte a [documentação do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html). | Administrador de sistemas da AWS, desenvolvedor de aplicativos | 

### Configurar tarefa
<a name="configure-task"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tarefa do . | 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 inicialização. | 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 da sua necessidade em 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 | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades 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 | 
| Testar seu aplicativo | No seu navegador, insira o IP público para testar o aplicativo. | Administrador de sistemas da AWS, desenvolvedor de aplicativos | 

## Recursos relacionados
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-resources"></a>
+ [Noções básicas do Docker para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html) (documentação do Amazon ECS)
+ [Amazon ECS no AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) (documentação do Amazon ECS)
+ [Criação de uma definição de tarefa](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html) (documentação do Amazon ECS)
+ [Criação de um cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) (documentação do Amazon ECS)
+ [Configurando parâmetros básicos de serviço](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/basic-service-params.html) (documentação do Amazon ECS)
+ [Configurando uma rede](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-configure-network.html) (documentação do Amazon ECS)
+ [Implantação de microsserviços Java no Amazon ECS](https://aws.amazon.com/blogs/compute/deploying-java-microservices-on-amazon-ec2-container-service/) (postagem do blog)