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 Fargate PrivateLink, AWS y 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 |
Servicios de AWS: Registro de contenedores de Amazon EC2; Amazon ECS; Amazon EFS; Amazon RDS; Amazon VPC; Elastic Load Balancing (ELB); AWS Lambda |
Resumen
Este patrón describe cómo alojar de forma privada una aplicación contenedora 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 Network Load Balancer, 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 front-end. Luego, se puede asociar a un punto final de nube privada virtual (VPC) para acceder a través de 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 Acceda a aplicaciones de contenedores de forma privada en Amazon ECS mediante AWS PrivateLink y un Network Load Balancer.
Requisitos previos y limitaciones
Requisitos previos
Una cuenta de AWS activa
Interfaz de la línea de comandos de AWS (AWS CLI) versión 2, instalada y configurada en Linux, macOS o Windows
Docker
, instalado y configurado en Linux, macOS o Windows Una aplicación que se ejecuta en Docker
Arquitectura
![](images/pattern-img/31cca5e2-8d8b-45ec-b872-a06b0dd97007/images/57cc9995-45f4-4039-a0bf-2d2b3d6a05de.png)
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 Lambda
AWS PrivateLink
AWS Secrets Manager
Equilibrador de carga de aplicación
Equilibrador de carga de red
VPC
Automatizar y escalar
Puede usar AWS CloudFormation para crear este patrón mediante Infrastructure as Code.
Herramientas
Amazon ECS: 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 en un clúster.
Amazon ECR: 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 EFS: 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: AWS Fargate es una tecnología que se puede utilizar en Amazon ECS para ejecutar contenedores sin tener que administrar servidores ni clústeres de instancias de Amazon EC2.
AWS Lambda: Lambda es un servicio informático que permite ejecutar código sin aprovisionar ni administrar servidores.
Amazon RDS: Amazon Relational Database Service (Amazon RDS) es un servicio web que facilita la configuración, el funcionamiento y el escalado de una base de datos relacional en la nube de AWS.
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.
AWS Secrets Manager: Secrets Manager le permite reemplazar las credenciales codificadas en el código, incluidas las contraseñas, con una llamada a la API de Secrets Manager para recuperar el secreto mediante programación.
Amazon VPC: Amazon Virtual Private Cloud (Amazon VPC) permite lanzar recursos de AWS en una red virtual previamente definida.
Elastic Load Balancing (ELB): 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.
Docker:
Docker facilita a los desarrolladores empaquetar, enviar y ejecutar cualquier aplicación como un contenedor ligero, portátil y autosuficiente.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree una VPC. |
| Administrador de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crear un equilibrador de carga de red. |
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. |
| Administrador de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crear un sistema de archivos de Amazon EFS. |
| Administrador de la nube |
Defina el montaje de los destinos para las subredes. |
| Administrador de la nube |
Compruebe que las subredes estén montadas como destinos. |
| Administrador de la nube |
Tarea | Descripción | Habilidades 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 |
Tarea | Descripción | Habilidades 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. |
| Administrador de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Creación de un grupo de subredes de base de datos. |
| 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 |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree un clúster de ECS. |
| 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 |
Cree un repositorio de Amazon ECR. |
| Administrador de nube, DevOps ingeniero |
Pase las imágenes de Docker al repositorio de Amazon ECR. |
| 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.
Para obtener ayuda sobre la configuración de la definición de la tarea, consulte la sección «Crear una definición de tarea» en los Recursos relacionados. Importante: 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. |
| Administrador de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configure el PrivateLink punto de conexión de AWS. |
Para obtener más información, consulte la sección Recursos relacionados. | Administrador de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree un punto de conexión de VPC. | Cree un punto de enlace de VPC para el punto de PrivateLink enlace de AWS que creó anteriormente. El nombre de dominio completo (FQDN) del punto final de la VPC apuntará al FQDN del punto final 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 |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crear la función de Lambda. | Abra la consola de Lambda y cree una función de Lambda para actualizar las direcciones IP del equilibrador de carga de aplicación como destinos del equilibrador de carga de red. 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 |
Recursos relacionados
Crear los equilibradores de carga:
Crear un sistema de archivos de Amazon EFS:
Creación de un bucket de S3:
Crear un secreto en Secrets Manager:
Crear una instancia de Amazon RDS:
Crear los componentes de Amazon ECS:
Configure AWS PrivateLink:
Crear un punto de conexión de VPC:
Crear la función de Lambda:
Otros recursos: