Esta es la guía para AWS CDK desarrolladores de la versión 2. La CDK versión anterior entró en mantenimiento el 1 de junio de 2022 y finalizó el soporte el 1 de junio de 2023.
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.
Ejemplo: crear un AWS Fargate servicio mediante el AWS CDK
En este ejemplo, le mostramos cómo crear un AWS Fargate (Fargate) servicio que se ejecute en un clúster de Amazon Elastic Container Service (AmazonECS) encabezado por un Application Load Balancer con acceso a Internet a partir de una imagen de Amazon. ECR
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 Docker contenedores en un clúster. Puedes alojar tu clúster en una infraestructura sin servidor gestionada por Amazon ECS lanzando tus servicios o tareas mediante el tipo de lanzamiento Fargate. Para tener más control, puede alojar sus tareas en un clúster de instancias de Amazon Elastic Compute Cloud (AmazonEC2) que administra mediante el tipo de EC2 lanzamiento de Amazon.
En este ejemplo, lanzamos algunos servicios mediante el tipo de lanzamiento Fargate. Si ha utilizado el AWS Management Console para crear un servicio Fargate, sabrá que hay muchos pasos a seguir para realizar esa tarea. AWS tiene varios tutoriales y temas de documentación que le guiarán a través de la creación de un servicio Fargate, entre los que se incluyen:
En este ejemplo, se crea un servicio Fargate similar mediante. AWS CDK
La ECS construcción de Amazon utilizada en este ejemplo le ayuda a utilizar AWS los servicios al ofrecer las siguientes ventajas:
-
Configura automáticamente un balanceador de carga.
-
Abre automáticamente un grupo de seguridad para los balanceadores de carga. Esto permite que los balanceadores de carga se comuniquen con las instancias sin tener que crear un grupo de seguridad de forma explícita.
-
Ordena automáticamente la dependencia entre el servicio y el balanceador de cargas asociado a un grupo objetivo, donde se AWS CDK impone el orden correcto de creación del listener antes de que se cree una instancia.
-
Configura automáticamente los datos de usuario en grupos que escalan automáticamente. Esto crea la configuración correcta a la que asociar un clúster. AMIs
-
Valida anticipadamente las combinaciones de parámetros. Esto expone los AWS CloudFormation problemas antes, lo que ahorra tiempo de implementación. Por ejemplo, en función de la tarea, es fácil configurar incorrectamente los ajustes de memoria. Anteriormente, no se producía ningún error hasta que implementábamos nuestra aplicación. Pero ahora AWS CDK pueden detectar un error de configuración y emitir un error cuando sintetizamos nuestra aplicación.
-
Añade automáticamente permisos para Amazon Elastic Container Registry (AmazonECR) si utilizamos una imagen de AmazonECR.
-
Se escala automáticamente. AWS CDK Proporciona un método para que podamos escalar automáticamente las instancias cuando usamos un EC2 clúster de Amazon. Esto ocurre automáticamente cuando utilizamos una instancia en un clúster de Fargate.
Además, AWS CDK evita que se elimine una instancia cuando el escalado automático intenta detener una instancia, pero una tarea se está ejecutando o está programada en esa instancia.
Anteriormente, teníamos que crear una función Lambda para disponer de esta funcionalidad.
-
Proporciona soporte de activos para que podamos implementar una fuente desde nuestra máquina ECS en Amazon en un solo paso. Anteriormente, para utilizar una fuente de aplicación, teníamos que realizar varios pasos manuales, como subirla a Amazon ECR y crear una Docker imagen.
importante
Las ApplicationLoadBalancedFargateService
construcciones que utilizaremos incluyen numerosos AWS
componentes, algunos de los cuales tienen costes nada despreciables si se dejan aprovisionados en nuestra AWS cuenta, incluso si no los utilizamos. Asegúrate de limpiar (cdk destroy) si sigues este ejemplo.
Crea un CDK proyecto
Empezamos por crear un CDK proyecto. Este es un directorio que almacena nuestro AWS CDK código, incluida nuestra CDK aplicación.
A continuación, ejecutamos la aplicación y confirmamos que crea una pila vacía.
cdk synth
Cree un servicio Fargate
Hay dos formas diferentes de ejecutar nuestras tareas de contenedores con AmazonECS:
-
Usa el tipo de
Fargate
lanzamiento, en el que Amazon ECS administra por nosotros las máquinas físicas en las que se ejecutan nuestros contenedores. -
Utilice el tipo de
EC2
lanzamiento, en el que nosotros nos encargamos de la gestión, por ejemplo, especificando el escalado automático.
Para este ejemplo, crearemos un servicio Fargate que se ejecute en un ECS clúster de Amazon, encabezado por un Application Load Balancer con acceso a Internet.
Añadimos las siguientes importaciones del módulo AWS Construct Library a nuestro archivo de pila:
Dentro de nuestra pila, añadimos el siguiente código:
A continuación, validamos nuestro código ejecutando lo siguiente para sintetizar nuestra pila:
cdk synth
La pila consta de cientos de líneas, por lo que no la mostraremos aquí. La pila debe contener una instancia predeterminada, una subred privada y una subred pública para las tres zonas de disponibilidad y un grupo de seguridad.
Para implementar la pila, ejecutamos lo siguiente:
cdk deploy
AWS CloudFormation muestra información sobre las docenas de pasos que debe realizar para implementar nuestra aplicación.
Una vez completada la implementación, hemos creado correctamente un ECS servicio de Amazon con tecnología Fargate para ejecutar una Docker imagen.
Limpieza
Como práctica recomendada de mantenimiento general y para minimizar los costes innecesarios, eliminamos nuestra pila una vez finalizada:
cdk destroy