Acceder a las aplicaciones en contenedores de forma privada en Amazon ECS mediante AWS Fargate, AWS PrivateLink y un equilibrador de carga de red - Recomendaciones de AWS

Acceder a las aplicaciones en contenedores de forma privada en Amazon ECS mediante AWS Fargate, AWS PrivateLink y un equilibrador de carga de red

Kirankumar Chandrashekar, Amazon Web Services

Este patrón describe cómo alojar de forma privada una aplicación en un contenedor de Docker en la nube de Amazon Web Services (AWS) mediante Amazon Elastic Container Service (Amazon ECS) con un tipo de lanzamiento de AWS Fargate, detrás de un equilibrador de carga de red, y cómo acceder a la aplicación mediante AWS PrivateLink. Amazon Relational Database Service (Amazon RDS) aloja la base de datos relacional para la aplicación que se ejecuta en Amazon ECS con alta disponibilidad (HA). Puede utilizar Amazon Elastic File System (Amazon EFS) si la aplicación requiere almacenamiento permanente.

Este patrón utiliza un tipo de lanzamiento de Fargate para el servicio de Amazon ECS que ejecuta las aplicaciones de Docker, con un equilibrador de carga de red en el frontend. Después, puede asociarse con un punto de conexión a la nube privada virtual (VPC) para acceso mediante AWS PrivateLink. A continuación, este servicio de punto de conexión de VPC se puede compartir con otras VPC mediante sus puntos de conexión de VPC.

Se puede utilizar la tecnología Fargate con Amazon ECS para ejecutar contenedores sin tener que administrar servidores ni clústeres de instancias de Amazon Elastic Compute Cloud (Amazon EC2). También se puede utilizar el grupo de Amazon EC2 Auto Scaling en lugar de Fargate. Para obtener más información, consulte Acceder a las aplicaciones en contenedores de forma privada en Amazon ECS mediante AWS PrivateLink y un equilibrador de carga de red.

Requisitos previos

Uso de PrivateLink para acceder a las aplicaciones en contenedores en Amazon ECS con un tipo de lanzamiento de AWS Fargate

Pila de tecnología

  • Amazon CloudWatch

  • Amazon Elastic Container Registry (Amazon ECR)

  • Amazon ECS

  • Amazon EFS

  • Amazon RDS

  • Amazon Simple Storage Service (Amazon S3)

  • AWS Fargate

  • AWS PrivateLink

  • AWS Secrets Manager

  • Equilibrador de carga de aplicación

  • Equilibrador de carga de red

  • VPC

Automatización y escala

Servicios de AWS

  • Amazon Elastic Container Registry (Amazon ECR) es un servicio de registro de imágenes de contenedor de AWS administrado que es seguro, escalable y fiable.

  • Amazon Elastic Container Service (Amazon ECS) es un servicio de administración de contenedores altamente escalable y rápido que facilita la tarea de ejecutar, detener y administrar contenedores de Docker en un clúster.

  • Amazon Elastic File System (Amazon EFS) ofrece un sistema de archivos NFS sencillo, escalable, elástico y completamente administrado que se utiliza con servicios de nube de AWS y recursos en las instalaciones.

  • AWS Fargate La tecnología se puede utilizar en Amazon ECS para ejecutar contenedores sin tener que administrar servidores ni clústeres de instancias de Amazon EC2.

  • Amazon Relational Database Service (Amazon RDS) es un servicio web que facilita la configuración, la operación y la escala de una base de datos relacional en Nube de AWS.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento para Internet. Está diseñado para facilitar a los desarrolladores recursos de computación escalables basados en Web.

  • AWS Secrets Manager lo ayuda a reemplazar las credenciales codificadas en su código, incluidas contraseñas, con una llamada a la API de Secrets Manager para recuperar el secreto mediante programación.

  • Amazon Virtual Private Cloud (Amazon VPC) le permite lanzar recursos de AWS en una red virtual que haya definido.

  • Elastic Load Balancing (ELB) distribuye el tráfico entrante de red o de la aplicación entre varios destinos, por ejemplo, instancias EC2, contenedores y direcciones IP en varias zonas de disponibilidad.

Otras herramientas

  • Docker facilita a los desarrolladores el proceso de empaquetar, enviar y ejecutar cualquier aplicación como un contenedor ligero, portátil y autosuficiente.

TareaDescripciónHabilidades requeridas

Cree una VPC.

  1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon VPC. Seleccione Crear VPC y, a continuación, VPC y más

  2. Especifique un nombre para su VPC y seleccione un rango de bloques CIDR adecuado.

  3. Especifique dos zonas de disponibilidad, dos subredes públicas y cuatro subredes privadas. Dos subredes privadas son para las tareas de Amazon ECS y otras dos subredes privadas son para las bases de datos de Amazon RDS.

  4. Especifique una puerta de enlace NAT para cada zona de disponibilidad.

  5. Seleccione Creación de VPC.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Crear un equilibrador de carga de red.

  1. En la consola de Amazon EC2, seleccione la región de AWS que contiene su VPC. 

  2. En Equilibrio de carga seleccione Equilibradores de carga y Crear equilibrador de carga

  3. Seleccione Equilibrador de carga de red y luego Crear

  4. En la página Configurar el equilibrador de carga, configure el equilibrador de carga de red y el oyente. Importante: Asegúrese de elegir el esquema del equilibrador de carga de red como interno

  5. Seleccione los ajustes de seguridad aplicables, configure un grupo de seguridad y un grupo de destino. Seleccione IP como Target type (Tipo de destino) en la sección Configure routing (Configurar enrutamiento). Asegúrese de no registrar un destino. 

  6. Una vez haya configurado todos los ajustes, seleccione Siguiente: Revisar y, a continuación, seleccione Crear.

Para obtener ayuda con esta y otras explicaciones, consulte la sección Recursos relacionados.

Administrador de la nube

Cree un Equilibrador de carga de aplicación.

  1. En la consola de Amazon EC2, seleccione la región de AWS que contiene su VPC. 

  2. En Equilibrio de carga seleccione Equilibradores de carga y Crear equilibrador de carga

  3. Seleccione Application Load Balancer (Equilibrador de carga de aplicación) y, a continuación, Create

  4. importante

    Configure el equilibrador de carga de aplicación y el oyente. Asegúrese de elegir el esquema del equilibrador de carga de aplicación como interno

  5. Seleccione los ajustes de seguridad aplicables, configure un grupo de seguridad y un grupo de destino. Seleccione IP como Target type (Tipo de destino) en la sección Configure routing (Configurar enrutamiento). Asegúrese de no registrar un destino. 

  6. Una vez haya configurado todos los ajustes, seleccione Siguiente: Revisar y, a continuación, seleccione Crear.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Crear un sistema de archivos de Amazon EFS.

  1. Abra la consola de Amazon EFS y seleccione Crear sistema de archivos

  2. En el cuadro de diálogo Crear sistema de archivos, especifique un nombre para su sistema de archivos y seleccione su VPC. 

  3. Seleccione Crear para crear el sistema de archivos. 

  4. Instale y configure su sistema de archivos de Amazon EFS.

Administrador de la nube

Defina el montaje de los destinos para las subredes.

  1. Regrese a la consola de Amazon EFS y seleccione Sistemas de archivos. La página Sistemas de archivos muestra los sistemas de archivos Amazon EFS de su cuenta. 

  2. Seleccione el sistema de archivos que creó y, a continuación, seleccione Manage (Administrar) para mostrar la zona de disponibilidad

  3. Para añadir un destino de montaje, seleccione Añadir destino de montaje y añada las cuatro subredes privadas que creó.

Administrador de la nube

Compruebe que las subredes estén montadas como destinos.

  1. En la consola de Amazon EFS, seleccione Sistemas de archivos

  2. Para ver la lista de objetivos de montaje existentes, seleccione Red. Asegúrese de que las cuatro subredes que creó estén incluidas.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Cree un bucket de S3.

Si es necesario, abra la consola de Amazon S3 y cree un bucket de S3 para almacenar los activos estáticos de la aplicación.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Para cifrar el secreto de Secrets Manager, cree una clave de AWS KMS.

Abra la consola de AWS Key Management Service (AWS KMS) y cree una clave KMS.

Administrador de la nube

Cree un secreto de Secrets Manager para almacenar la contraseña de Amazon RDS.

  1. Abra la consola de AWS Secrets Manager y cree un secreto nuevo. Para hacerlo, seleccione Almacenar un nuevo secreto

  2. Seleccione la clave de KMS que creó y guarde su nuevo secreto.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Creación de un grupo de subredes de base de datos.

  1. Abra la consola de Amazon RDS y seleccione Subnet groups (Grupos de subred). 

  2. Seleccione Crear un grupo de subred de base de datos, e introduzca un nombre y una descripción para su grupo de subred de base de datos. 

  3. Seleccione la VPC que creó anteriormente y, a continuación, seleccione las zonas de disponibilidad y las subredes. A continuación, seleccione Crear.

Administrador de la nube

Cree una instancia de Amazon RDS.

Cree y configure una instancia de Amazon RDS dentro de las subredes privadas. Asegúrese de que Multi-AZ esté activado, para una alta disponibilidad (HA).

Administrador de la nube

Cargue los datos en la instancia de Amazon RDS.

Cargue los datos relacionales que necesita la aplicación en la instancia de Amazon RDS. Este proceso variará según las necesidades de la aplicación y la forma en que se defina y diseñe el esquema de la base de datos.

Administrador de base de datos
TareaDescripciónHabilidades requeridas

Cree un clúster de ECS.

  1. Abra la consola de Amazon ECS y seleccione Clústeres

  2. Seleccione Crear clústeres y configure un clúster de ECS de acuerdo con las especificaciones requeridas.

Administrador de la nube

Cree las imágenes de Docker.

Cree las imágenes de Docker siguiendo las instrucciones de la documentación de AWS.

Administrador de la nube

Cree un repositorio de Amazon ECR.

  1. Abra la consola de Amazon ECR y seleccione Repositories

  2. Seleccione Create repository (Crear repositorio) y especifique un nombre exclusivo para el repositorio. 

  3. Configure el repositorio de acuerdo con sus especificaciones, incluyendo el cifrado de AWS KMS si es necesario.

Administrador de la nube, ingeniero de DevOps

Pase las imágenes de Docker al repositorio de Amazon ECR.

  1. Identifique la imagen de Docker que desea insertar y ejecute el comando docker images en la AWS CLI. 

  2. Etiquete su imagen con la combinación de registro, repositorio y etiqueta de imagen opcional de Amazon ECR. 

  3. Ejecute el comando docker push para enviar la imagen de Docker. 

  4. Repita estos pasos para todas las imágenes requeridas.

Administrador de la nube

Cree una definición de tarea de Amazon ECS.

Para ejecutar contenedores Docker en Amazon ECS, se requiere una definición de tareas. 

  1. Regrese a la consola de Amazon ECS, seleccione ‭‬Definiciones de tareas‭ y, a continuación, seleccione ‬Crear nueva definición de tarea‬. 

  2. En la página Selección de compatibilidades, seleccione el tipo de lanzamiento que su tarea debe usar y, a continuación, seleccione Siguiente paso.

importante

Para obtener ayuda sobre la configuración de la definición de la tarea, consulte “Creación de una definición de tarea” en la sección Recursos relacionados. Asegúrese de proporcionar las imágenes de Docker que envió a Amazon ECR.

Administrador de la nube

Cree un servicio ECS y seleccione Fargate como tipo de lanzamiento.

  1. Cree un servicio de Amazon ECS mediante el clúster de ECS que creó anteriormente. Asegúrese de seleccionar Fargate como tipo de lanzamiento.

  2. Seleccione la definición de tarea creada en el paso anterior y, a continuación, el grupo objetivo del equilibrador de carga de aplicación.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Configure el punto de conexión de AWS PrivateLink.

  1. Abra la consola de Amazon VPC y cree un punto de conexión de AWS PrivateLink

  2. Asocie este punto de conexión con el equilibrador de carga de red, lo que hará que la aplicación alojada en Amazon ECS esté disponible para los clientes de forma privada. 

Administrador de la nube
TareaDescripciónHabilidades requeridas

Cree un punto de conexión de VPC.

Cree un punto de conexión de VPC para el punto de conexión de AWS PrivateLink que creó anteriormente. El nombre de dominio plenamente cualificado (Fully Qualified Domain Name, FQDN) del punto de conexión de VPC señalará el FQDN del punto de conexión de AWS PrivateLink. Esto crea una interfaz de red elástica para el servicio de punto de conexión de VPC a la que pueden acceder los puntos de conexión del servicio de nombres de dominio.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Agregue el equilibrador de carga de aplicación como destino.

Para agregar el equilibrador de carga de aplicación como destino para el equilibrador de carga de red, siga las instrucciones de la documentación de AWS.

Desarrollador de aplicaciones

Crear los equilibradores de carga:

Crear un sistema de archivos de Amazon EFS:

Crear un secreto en Secrets Manager:

Crear una instancia de Amazon RDS:

Crear los componentes de Amazon ECS

Otros recursos: