

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Implementar microservicios de Java en Amazon ECS con AWS Fargate
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate"></a>

*Vijay Thompson y Sandeep Bondugula, Amazon Web Services*

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

Este patrón proporciona orientación para implementar microservicios de Java en contenedores en Amazon Elastic Container Service (Amazon ECS) mediante AWS Fargate. El patrón no utiliza Amazon Elastic Container Registry (Amazon ECR) para la administración de contenedores; en su lugar, las imágenes de Docker se extraen de un hub de Docker. 

## Requisitos previos y limitaciones
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-prereqs"></a>

**Requisitos previos **
+ Una aplicación de microservicios de Java existente en un hub de Docker
+ Un repositorio público de Docker
+ Una cuenta de AWS activa
+ Conocimientos de los servicios de AWS, incluyendo Amazon ECS y Fargate
+ Marco Docker, Java y Spring Boot
+ Amazon Relational Database Service (Amazon RDS) en funcionamiento (opcional)
+ Una nube privada virtual (VPC) si la aplicación requiere Amazon RDS (opcional)

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

**Pila de tecnología de origen**
+ Microservicios de Java (por ejemplo, implementados en Spring Boot) e implementados en Docker

**Arquitectura de origen**

![\[Arquitectura de origen para los microservicios de Java implementados en Docker\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/65185957-2b8b-43a6-964c-95ce0a45ba17/images/0a946ca8-fe37-4ede-85cb-a80a1c36105d.png)


**Pila de tecnología de destino**
+ Un clúster de Amazon ECS que aloja cada microservicio mediante Fargate
+ Una red de VPC para alojar el clúster de Amazon ECS y los grupos de seguridad asociados 
+ Una cluster/task definición para cada microservicio que hace girar contenedores mediante Fargate

**Arquitectura de destino**

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


## Tools (Herramientas)
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-tools"></a>

**Herramientas**
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) elimina la necesidad de instalar y operar su propio software de orquestación de contenedores, administrar y escalar un clúster de máquinas virtuales o programar contenedores en esas máquinas virtuales. 
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) le ayuda a ejecutar contenedores sin necesidad de administrar servidores o instancias de Amazon Elastic Compute Cloud EC2 (Amazon). Se utiliza en conjunto con Amazon Elastic Container Service (Amazon ECS).
+ [Docker](https://www.docker.com/) es una plataforma de software que le permite compilar, probar e implementar aplicaciones de forma rápida. Docker agrupa el software en unidades estandarizadas denominadas *contenedores* que contienen todo lo que el software necesita para ejecutarse, incluyendo las bibliotecas, las herramientas del sistema, el código y el tiempo de ejecución. 

**Código de Docker**

El siguiente Dockerfile especifica la versión del kit de desarrollo de Java (JDK) que se utiliza, dónde se encuentra el archivo de almacenamiento Java (JAR), el número de puerto que está expuesto y el punto de entrada a la aplicación.

```
FROM openjdk:11
ADD target/Spring-docker.jar Spring-docker.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","Spring-docker.jar"]
```

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

### Crear nuevas definiciones de tareas
<a name="create-new-task-definitions"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una definición de tarea. | Para ejecutar contenedores de Docker en Amazon ECS, se requiere una definición de tareas. Abra la consola de Amazon ECS en [https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/), elija **Definiciones de tareas** y, a continuación, cree una nueva definición de tarea. Para obtener más información, consulte la [documentación de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html). | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Seleccione el tipo de lanzamiento. | Seleccione **Fargate** como tipo de lanzamiento. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Configure la tarea. | Defina un nombre de tarea y configure la aplicación con la cantidad adecuada de memoria de tareas y CPU. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Defina el contenedor. | Especifique el nombre del contenedor. Para la imagen, introduzca el nombre del sitio de Docker, el nombre del repositorio y el nombre de la etiqueta de la imagen de Docker (`docker.io/sample-repo/sample-application:sample-tag-name`). Establezca los límites de memoria para la aplicación y establezca las asignaciones de puertos (`8080, 80`) para los puertos permitidos. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Cree la tarea. | Cuando las configuraciones de la tarea y el contenedor se hayan establecido, cree la tarea. Para obtener instrucciones detalladas, consulte los enlaces de la sección *Recursos relacionados*. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 

### Configure el clúster
<a name="configure-the-cluster"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear y configurar un clúster. | Seleccione **Solo redes** como tipo de clúster, configure el nombre y, a continuación, cree el clúster o utilice un clúster existente si está disponible. Para obtener más información, consulte la [documentación de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html). | Administrador de sistemas de AWS, desarrollador de aplicaciones | 

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


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una tarea de . | Dentro del clúster, seleccione **Ejecutar nueva tarea**. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Seleccione el tipo de lanzamiento. | Seleccione **Fargate** como tipo de lanzamiento. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Seleccione la definición de la tarea, la revisión y la versión de la plataforma. | Seleccione la tarea que desee ejecutar, la revisión de la definición de la tarea y la versión de la plataforma. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Seleccione el clúster. | Seleccione el clúster desde el que desea ejecutar la tarea. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Especifique el número de tareas. | Configure el número de tareas que deben ejecutarse. Si lo inicia con dos o más tareas, necesitará un equilibrador de carga para distribuir el tráfico entre las tareas. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Especifique el grupo de tareas. | (Opcional) Especifique un nombre de grupo de tareas para identificar un conjunto de tareas relacionadas como grupo de tareas. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Configure la VPC del clúster, las subredes y los grupos de seguridad. | Configure la VPC del clúster y las subredes en las que desea implementar la aplicación. Cree o actualice grupos de seguridad (HTTP, HTTPS y puerto 8080) para proporcionar acceso a las conexiones entrantes y salientes. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Configure los ajustes de la IP pública. | Active o desactive la IP pública, en función de si desea utilizar una dirección IP pública para las tareas de Fargate. La opción predeterminada recomendada es **Habilitada**. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Revisar la configuración y crear la tarea | Revise la configuración y, a continuación seleccione **Ejecutar tarea**. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 

### Realizar la transición
<a name="cut-over"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Copie la URL de la aplicación. | Cuando el estado de la tarea se haya actualizado a *En ejecución*, seleccione la tarea. En la sección Redes, copie la IP pública. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 
| Pruebe su aplicación. | En su navegador, introduzca la IP pública para probar la aplicación. | Administrador de sistemas de AWS, desarrollador de aplicaciones | 

## Recursos relacionados
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-resources"></a>
+ [Conceptos básicos de Docker para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html) (documentación de Amazon ECS)
+ [Amazon ECS en AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) (documentación de Amazon ECS)
+ [Creación de una definición de tarea](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html) (documentación de Amazon ECS)
+ [Creación de un clúster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) (documentación de Amazon ECS)
+ [Configuración de los parámetros básicos del servicio](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/basic-service-params.html) (documentación de Amazon ECS)
+ [Configuración de una red](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-configure-network.html) (documentación de Amazon ECS)
+ [Implementación de microservicios de Java en Amazon ECS](https://aws.amazon.com/blogs/compute/deploying-java-microservices-on-amazon-ec2-container-service/) (entrada del blog)