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.
Implemente una aplicación agrupada en Amazon ECS mediante Copilot AWS
Creada por Jean-Baptiste Guillois (AWS), Mathew George () y Thomas Scott () AWS AWS
Repositorio de código: demostración de una aplicación de muestra agrupada | Entorno: producción | Tecnologías: contenedores y microservicios; productividad empresarial; CloudNative DevelopmentAndTesting |
AWSservicios: AmazonECS; AWS Fargate; Amazon ECR |
Resumen
Este patrón muestra cómo implementar contenedores en un clúster de Amazon Elastic Container Service (AmazonECS) de dos maneras: mediante la consola de administración de Amazon Web Services (AWS) y mediante AWS Copilot, para demostrar cómo Copilot simplifica las tareas de implementación. AWS
Amazon ECS 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. Los contenedores se definen en una definición de tareas que se utiliza para ejecutar tareas individuales o tareas dentro de un servicio. Puede ejecutar sus tareas y servicios en una infraestructura sin servidor gestionada por AWS Fargate. Como alternativa, para tener más control sobre su infraestructura, puede ejecutar sus tareas y servicios en un clúster de instancias de Amazon Elastic Compute Cloud (AmazonEC2) que administre.
Los comandos de la interfaz de línea de comandos (CLI) de AWS Copilot simplifican la creación, el lanzamiento y el funcionamiento de aplicaciones contenerizadas listas para la producción en ECS Amazon desde un entorno de desarrollo local. El AWS Copilot CLI se adapta a los flujos de trabajo de los desarrolladores que respaldan las mejores prácticas de aplicaciones modernas: desde el uso de la infraestructura como código hasta la creación de una canalización de integración y entrega continuas (CI/CD) aprovisionada en nombre de un usuario. Puede utilizar el AWS Copilot CLI como parte de su ciclo diario de desarrollo y pruebas como alternativa a la consola de administración. AWS
Requisitos previos y limitaciones
Requisitos previos
Una cuenta activa AWS
AWSInterfaz de línea de comandos (AWSCLI) instalada y configurada localmente para usar su AWS cuenta (consulte las instrucciones de instalación y configuración en la AWS CLI documentación)
AWSCopilot instalado localmente (consulta las instrucciones de instalación en la ECS documentación de Amazon)
Docker instalado en su máquina local (consulte la documentación de Docker
)
Limitaciones
En el plan gratuito, Docker impone un límite de extracción de 100 imágenes de contenedor por cada 6 horas por dirección IP.
Arquitectura
Pila de tecnología de destino
AWSentorno configurado con una nube privada virtual (VPC), subredes públicas y privadas y grupos de seguridad
ECSClúster de Amazon
Definición ECS de servicios y tareas de Amazon
Amazon Elastic Container Registry (AmazonECR)
Amazon DynamoDB
Equilibrador de carga de aplicación
AWS Fargate
Amazon Identity and Access Management (IAM)
Amazon CloudWatch
AWS CloudTrail
Arquitectura de destino
Al implementar la aplicación de muestra para este patrón, se crean e implementan varias tareas en zonas de disponibilidad independientes. Cada tarea almacena datos en Amazon DynamoDB. Al acceder a la página web de una tarea, puede ver los datos de todas las demás tareas.
Herramientas
AWSservicios
Amazon ECR: Amazon Elastic Container Registry (AmazonECR) es un servicio AWS gestionado de registro de imágenes de contenedores seguro, escalable y fiable. Amazon ECR admite repositorios privados con permisos basados en recursos mediante. IAM
Amazon ECS: Amazon Elastic Container Service (AmazonECS) es un servicio de administración de contenedores rápido y altamente escalable para ejecutar, detener y administrar contenedores en un clúster. Puede ejecutar sus tareas y servicios en una infraestructura sin servidor gestionada por AWS Fargate. Como alternativa, para tener más control sobre su infraestructura, puede ejecutar sus tareas y servicios en un clúster de instancias de Amazon Elastic Compute Cloud (AmazonEC2) que administre.
AWSCopilot: AWS Copilot proporciona una interfaz de línea de comandos que le ayuda a lanzar y administrar aplicaciones en contenedoresAWS, lo que incluye introducirlas en un registro, crear una definición de tarea y crear un clúster.
AWSFargate: AWS Fargate es un motor de cómputo portátil y sin servidor que le permite centrarse en crear aplicaciones sin administrar servidores. pay-as-you AWSFargate es compatible con Amazon ECS y Amazon Elastic Kubernetes Service (Amazon). EKS Cuando ejecuta sus ECS tareas y servicios de Amazon con el tipo de lanzamiento de Fargate o un proveedor de capacidad de Fargate, empaqueta la aplicación en contenedores, especifica los requisitos de memoria CPU y los requisitos de red, y lanza IAM la aplicación. Cada tarea de Fargate tiene su propio límite de aislamiento y no comparte el núcleo, los CPU recursos, los recursos de memoria o la interface de red elástica subyacentes con otra tarea.
Amazon DynamoDB: Amazon DynamoDB es un servicio SQL sin base de datos totalmente administrado que proporciona un rendimiento rápido y predecible con una escalabilidad perfecta.
Elastic Load Balancing (ELB): Elastic Load Balancing distribuye automáticamente el tráfico entrante entre varios destinos, como EC2 instancias, contenedores y direcciones IP, en una o más zonas de disponibilidad. Monitorea el estado de los destinos registrados y enruta el tráfico solamente a destinos en buen estado. Elastic Load Balancing escala el equilibrador de carga a medida que el tráfico entrante va cambiando con el tiempo. Puede escalarse automáticamente para adaptarse a la mayoría de las cargas de trabajo.
Herramientas
Código
El código de la aplicación de muestra utilizada en este patrón está disponible en el GitHub repositorio de aplicaciones de muestra de clúster
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Clona el GitHub repositorio. | Clone el repositorio de código de muestra mediante el comando:
| Desarrollador de aplicaciones, AWS DevOps |
Crea tu ECR repositorio de Amazon. |
Para obtener más información, consulta Cómo crear un repositorio privado en la ECR documentación de Amazon. | Desarrollador de aplicaciones, AWS DevOps |
Crea, etiqueta y envía tu imagen de Docker a tu ECR repositorio de Amazon. |
Para autenticar su cliente de Docker en el registro:
Para compilar su imagen de Docker:
Para etiquetar su imagen de Docker:
Para enviar su imagen de Docker a su repositorio:
| Desarrollador de aplicaciones, AWS DevOps |
Implementar la pila de aplicaciones. |
Para obtener más información sobre la implementación de CloudFormation plantillas, consulte Crear una pila en la AWS CloudFormation documentación. | AWS DevOps, desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Clona el GitHub repositorio. | Clone el repositorio de código de muestra mediante el comando:
| Desarrollador de aplicaciones, AWS DevOps |
Implemente la imagen de su contenedor AWS mediante el AWS CopilotCLI. | Implemente la aplicación en un solo paso mediante el siguiente comando en el directorio raíz de su proyecto:
A continuación, debería poder acceder a la aplicación utilizando el DNS nombre proporcionado como resultado. | Desarrollador de aplicaciones, AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Elimine los recursos creados a través de la consola AWS de administración. | Si utilizó la opción 1 (la consola de AWS administración) para implementar la pila de aplicaciones, siga estos pasos cuando esté listo para eliminar los recursos que creó:
| Desarrollador de aplicaciones, AWS DevOps |
Elimine los recursos creados por AWS Copilot. | Si utilizó la opción 2 (el AWS CopilotoCLI) para implementar la pila de aplicaciones, ejecute el siguiente comando desde el directorio raíz de su proyecto cuando esté listo para eliminar los recursos que creó:
| Desarrollador de aplicaciones, AWS DevOps |
Recursos relacionados
Instalar o actualizar la última versión de la AWS CLI (AWSCLIdocumentación)
Uso de la interfaz de línea de comandos de AWS Copilot (ECSdocumentación de Amazon)
Amazon ECS en AWS Fargate (documentación de AmazonECR)
Docker Desktop
(documentación de Docker)