Acceda a las aplicaciones de contenedores de forma privada en Amazon ECS mediante AWS PrivateLink un Network Load Balancer - Recomendaciones de AWS

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.

Acceda a las aplicaciones de contenedores de forma privada en Amazon ECS mediante AWS PrivateLink un Network Load Balancer

Creado por Kirankumar Chandrashekar () AWS

Entorno: producción

Tecnologías: contenedores y microservicios; redes; seguridad, identidad y conformidad; aplicaciones web y móviles

Carga de trabajo: todas las demás cargas de trabajo

AWSservicios: AmazonEC2; Amazon EC2 Auto Scaling; Amazon EC2 Container Registry; AmazonEFS; AmazonRDS; AmazonVPC; AmazonECS; Elastic Load Balancing (ELB); AWS Lambda

Este patrón describe cómo alojar de forma privada una aplicación contenedora de Docker en Amazon Elastic Container Service (AmazonECS) detrás de un Network Load Balancer y cómo acceder a la aplicación mediante. AWS PrivateLink A continuación, puede utilizar una red privada para acceder de forma segura a los servicios de la nube de Amazon Web Services (AWS). Amazon Relational Database Service (RDSAmazon) aloja la base de datos relacional de la aplicación que se ejecuta en ECS Amazon con alta disponibilidad (HA). Se utiliza Amazon Elastic File System (AmazonEFS) si la aplicación requiere un almacenamiento persistente.

El ECS servicio de Amazon que ejecuta las aplicaciones de Docker, con un Network Load Balancer en la interfaz, se puede asociar a un punto final de nube privada virtual VPC () para acceder a él. AWS PrivateLink A continuación, este servicio de VPC punto final se puede compartir con otros usuarios VPCs mediante sus VPC puntos de enlace. 

También puede usar AWSFargate en lugar de un grupo de Amazon EC2 Auto Scaling. Para obtener más información, consulte Acceder a aplicaciones contenedoras de forma privada en Amazon ECS mediante AWS Fargate y un Network Load Balancer. AWS PrivateLink                          

Requisitos previos 

Se usa AWS PrivateLink para acceder a una aplicación contenedora en Amazon ECS detrás de un Network Load Balancer.

Pila de tecnología

  • Amazon CloudWatch

  • Amazon Elastic Compute Cloud (AmazonEC2)

  • Amazon EC2 Auto Scaling

  • Amazon Elastic Container Registry (AmazonECR)

  • Amazon ECS

  • Amazon RDS

  • Amazon Simple Storage Service (Amazon S3)

  • AWSLambda

  • AWS PrivateLink

  • AWS Secrets Manager

  • Equilibrador de carga de aplicación

  • Equilibrador de carga de red

  • VPC

Automatizar y escalar

  • Amazon EC2: Amazon Elastic Compute Cloud (AmazonEC2) proporciona capacidad informática escalable en la AWS nube.

  • Amazon EC2 Auto Scaling: Amazon EC2 Auto Scaling le ayuda a garantizar que dispone del número correcto de EC2 instancias de Amazon disponibles para gestionar la carga de su aplicación.

  • Amazon ECS: Amazon Elastic Container Service (AmazonECS) es un servicio de administración de contenedores rápido y altamente escalable que facilita la ejecución, la detención y la administración de contenedores en un clúster.

  • Amazon ECR: Amazon Elastic Container Registry (AmazonECR) es un servicio gestionado de registro de imágenes de AWS contenedores seguro, escalable y fiable.

  • Amazon EFS: Amazon Elastic File System (AmazonEFS) proporciona un sistema de NFS archivos elástico simple, escalable y totalmente gestionado para su uso con servicios AWS en la nube y recursos locales.

  • AWSLambda: Lambda es un servicio de procesamiento para ejecutar código sin aprovisionar ni administrar servidores.

  • Amazon RDS: Amazon Relational Database Service (RDSAmazon) es un servicio web que facilita la configuración, el funcionamiento y el escalado de una base de datos relacional en AWS la nube.

  • Amazon S3: 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.

  • AWSSecrets Manager: Secrets Manager le ayuda a reemplazar las credenciales codificadas en su código, incluidas las contraseñas, mediante una API llamada a Secrets Manager para recuperar el secreto mediante programación.

  • Amazon VPC: Amazon Virtual Private Cloud (AmazonVPC) le ayuda a lanzar AWS recursos en una red virtual que haya definido.

  • Elastic Load Balancing: Elastic Load Balancing distribuye el tráfico entrante de aplicaciones o redes entre varios destinos, como EC2 instancias de Amazon, contenedores y direcciones IP, en varias zonas de disponibilidad.

  • Docker: Docker ayuda a los desarrolladores a empaquetar, enviar y ejecutar cualquier aplicación como un contenedor ligero, portátil y autosuficiente.

TareaDescripciónHabilidades requeridas

Crea unVPC.

  1. Inicie sesión en la consola AWS de administración y abra la VPC consola de Amazon. Selecciona Crear VPC, elige VPCy mucho más

  2. Introduce un nombre para el VPC tuyo y elige un rango de CIDR bloques adecuado. 

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

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

  5. Elija Crear VPC.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Crear un equilibrador de carga de red.

  1. Abre la EC2 consola de Amazon y elige la AWS región que contiene la tuyaVPC. 

  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 Instancia o IP como Tipo de destino en la sección 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

Cree un Equilibrador de carga de aplicación.

  1. En la EC2 consola de Amazon, elige la misma región que contiene tuVPC.

  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. Configure su equilibrador de carga de aplicación y su oyente. Importante: Asegúrese de elegir el esquema de su equilibrador de carga de aplicaciones como Interno

  5. Seleccione los ajustes de seguridad aplicables, configure un grupo de seguridad y un grupo de destino. Seleccione Instancia o IP como Tipo de destino en la sección 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

Crea un sistema de EFS archivos de Amazon.

  1. Abre la EFS consola de Amazon y selecciona Crear sistema de archivos

  2. En el cuadro de diálogo Crear sistema de archivos, introduce un nombre para tu sistema de archivos y elige el tuyoVPC. 

  3. Seleccione Crear para crear el sistema de archivos. 

  4. Instala y configura tu sistema de EFS archivos de Amazon.

Administrador de la nube

Defina el montaje de los destinos para las subredes.

  1. Vuelve a la EFS consola de Amazon y selecciona Sistemas de archivos. La página Sistemas de archivos muestra los sistemas de EFS archivos de Amazon de tu cuenta. 

  2. Seleccione el sistema de archivos que creó y seleccione Administrar para mostrar las Zonas de disponibilidad. 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 EFS consola de Amazon, selecciona 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

Crea una AWS KMS clave para cifrar el secreto de Secrets Manager.

Abra la consola del Servicio de administración de AWS claves (AWSKMS) y cree una KMS clave.

Administrador de la nube

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

  1. Abre la consola AWS Secrets Manager y crea un secreto nuevo seleccionando Guardar un secreto nuevo

  2. Elige la KMS clave que has creado y guarda tu nuevo secreto.

Administrador de la nube
TareaDescripciónHabilidades requeridas

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

  1. Abre la RDS consola de Amazon y selecciona Grupos de subredes

  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. Elija el VPC que creó anteriormente y elija las zonas de disponibilidad y las subredes. A continuación, seleccione Crear.

Administrador de la nube

Crea una RDS instancia de Amazon.

Crea y configura una RDS instancia de Amazon dentro de las subredes privadas. Asegúrese de que Multi-AZ esté activado para una alta disponibilidad.

Administrador de la nube

Carga los datos en la RDS instancia de Amazon.

Carga los datos relacionales que necesita tu aplicación en tu RDS instancia de Amazon. 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 la nube, DBA
TareaDescripciónHabilidades requeridas

Crea un ECS clúster.

  1. Abre la ECS consola de Amazon y selecciona Clusters.

  2. Selecciona Crear clústeres y configura un ECS clúster según las especificaciones requeridas.

Administrador de la nube

Cree las imágenes de Docker.

Cree las imágenes de Docker según las instrucciones de la sección Recursos relacionados.

Administrador de la nube

Crea ECR repositorios de Amazon.

  1. En la ECR consola de Amazon, selecciona Repositorios

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

  3. Configure el repositorio según sus especificaciones, incluido el AWS KMS cifrado si es necesario.

Administrador de la nube, DevOps ingeniero

Autentica tu cliente de Docker para el repositorio de AmazonECR.

Para autenticar tu cliente de Docker para el ECR repositorio de Amazon, ejecuta el aws ecr get-login-password comando «en. AWS CLI

Administrador de la nube

Envía las imágenes de Docker al ECR repositorio de Amazon.

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

  2. Etiqueta tu imagen con la combinación de ECR registro, repositorio y nombre de etiqueta de imagen opcional de Amazon. 

  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

Crea una definición de ECS tarea de Amazon.

Se necesita una definición de tarea para ejecutar contenedores Docker en AmazonECS. 

  1. Vuelva a la ECS consola de Amazon, elija Definiciones de tareas y, a continuación, elija 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.

Si necesitas ayuda para configurar la definición de tu tarea, consulta la sección «Crear una definición de tarea» en la sección Recursos relacionados. Importante: asegúrate de proporcionar las imágenes de Docker que enviaste a AmazonECR.

Administrador de la nube

Crea un ECS servicio de Amazon.

Crea un ECS servicio de Amazon con el ECS clúster que creaste anteriormente. Asegúrese de elegir Amazon EC2 como tipo de lanzamiento y de elegir la definición de tarea creada en el paso anterior, así como el grupo objetivo del Application Load Balancer.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Cree una configuración de lanzamiento.

Abre la EC2 consola de Amazon y crea una configuración de lanzamiento. Asegúrese de que los datos del usuario tengan el código que permita que las EC2 instancias se unan al ECS clúster deseado. Para ver un ejemplo del código necesario, consulte la sección Recursos relacionados.

Administrador de la nube

Cree un grupo de Amazon EC2 Auto Scaling.

Regrese a la EC2 consola de Amazon y, en Auto Scaling, elija grupos de Auto Scaling. Configure un grupo de Amazon EC2 Auto Scaling. Asegúrese de elegir las subredes privadas y la configuración de lanzamiento que creó anteriormente.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Configure el AWS PrivateLink punto final.

  1. En la VPC consola de Amazon, crea un AWS PrivateLink punto final. 

  2. Asocia este punto final con el Network Load Balancer, que hace que la aplicación alojada en Amazon ECS esté disponible de forma privada para los clientes. 

Para obtener más información, consulte la sección Recursos relacionados.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Cree un VPC punto final.

Cree un VPC punto final para el AWS PrivateLink punto final que creó anteriormente. El nombre de dominio completo del punto VPC final (FQDN) apuntará al AWS PrivateLink punto finalFQDN. Esto crea una interfaz de red elástica para el servicio de VPC punto final al que pueden acceder DNS los puntos finales.

Administrador de la nube
TareaDescripciónHabilidades requeridas

Crear la función de Lambda.

En la consola AWS Lambda, cree una función Lambda para actualizar las direcciones IP del Application Load Balancer como destinos del Network Load Balancer. Para obtener más información, consulte la entrada del blog «Using static IP addresses for Application Load Balancers (Uso de direcciones IP estáticas para los equilibradores de carga de aplicación)» en la sección Recursos relacionados.

Desarrollador de aplicaciones

Crear los equilibradores de carga:

Crea un sistema de EFS archivos de Amazon:

Creación de un bucket de S3:

Crear un secreto en Secrets Manager:

Crea una RDS instancia de Amazon:

Crea los ECS componentes de Amazon:

Cree un grupo de Amazon EC2 Auto Scaling:

Configurar AWS PrivateLink:

Cree un VPC punto final:

Crear la función de Lambda:

Otros recursos: