Recursos creados mediante los servicios de Amazon ECS Express Mode - Amazon Elastic Container Service

Recursos creados mediante los servicios de Amazon ECS Express Mode

Un servicio de Express Mode reduce la complejidad de implementar aplicaciones en contenedores al proporcionar valores predeterminados razonables y automatizar la configuración de los servicios de AWS de asistencia. En lugar de administrar los parámetros de configuración de cientos de servicios, un servicio de Express Mode solo requiere una imagen de contenedor, un rol de ejecución de tareas y un rol de infraestructura para empezar.

Los servicios de Express Mode cuentan con procedimientos simplificados para el aprovisionamiento y la configuración de un servicio de Amazon ECS que agrupa la infraestructura preferida para poner en marcha una aplicación web de producción. Los servicios de Express Mode incorporan automáticamente las prácticas recomendadas operativas y de configuración. Se crean los recursos siguientes:

  • El clúster predeterminado de ECS (si no existe todavía) con proveedores de capacidad de Fargate

  • Una definición de tarea con configuraciones de contenedor, registro y red

  • Un servicio con implementación canario y escalado automático

  • Equilibrador de carga de aplicación con oyente HTTPS, reglas de oyente y grupos de destino

  • Grupos de seguridad con una entrada mínima requerida

  • Roles vinculados a servicios para el escalado automático y el equilibrio de carga

  • Política de escalado de destinos escalables y seguimiento de destinos de Application Auto Scaling

    La política de escalado amplía o reduce las tareas de servicio en función de las necesidades para mantener la métrica en el valor de destino especificado o en un valor próximo. Además de mantener la métrica próxima al valor de destino, la política de escalado de seguimiento de destino también se ajusta a las fluctuaciones de la métrica producidas por un patrón de carga fluctuante y minimiza las fluctuaciones rápidas en el número de tareas que se ejecutan en su servicio.

  • Grupo de registros específico del servicio

  • Alarma de métricas para detectar implementaciones erróneas

  • Certificado de ACM

Utilice los valores predeterminados para empezar a utilizar los servicios Express Mode o configure la aplicación con un conjunto mínimo de parámetros.

Valores predeterminados del clúster

Los valores predeterminados siguientes se pueden configurar desde Express Mode para el clúster:

  • clusterName: utiliza el clúster default.

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola o especifique create-express-gateway-service --cluster.

Express Mode establece los valores predeterminados siguientes, pero se pueden actualizar en el clúster.

  • capacityProviders: [“FARGATE”]: utiliza Fargate

Valores predeterminados de definición de tareas

Los valores predeterminados siguientes se pueden configurar desde Express Mode para la definición de tareas:

  • cpu: 1024: 1 unidad de vCPU asignada a la tarea

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola, o bien usar create-express-gateway-service --cpu.

  • memoria: 2048: 2 GB de memoria asignados a la tarea

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola, o bien usar create-express-gateway-service --memory.

Express Mode establece los valores predeterminados siguientes, pero se pueden actualizar en la definición de la tarea.

  • networkMode: “awsvpc”: utiliza el modo de redes awsvpc

  • operatingSystemFamily: “LINUX”: se pone en marcha en el sistema operativo de Linux

  • cpuArchitecture: “X86_64”: utiliza la arquitectura de procesadores x86_64

  • requiresCompatibilities: [“FARGATE”]: compatible con el tipo de lanzamiento de Fargate

  • platformVersion: “LATEST”: utiliza la última versión de la plataforma de Fargate

Valores predeterminados de definición de contenedor

Los valores predeterminados siguientes se pueden configurar desde Express Mode para el contenedor:

  • port: 80: puerto predeterminado para el tráfico de contenedores

Express Mode establece los valores predeterminados siguientes, pero se pueden actualizar en la definición de tareas - definición de contenedor:

  • essential: true: el contenedor está marcado como esencial para el estado de la tarea

  • protocol: “tcp”: protocolo predeterminado para la comunicación con equilibrador de carga

  • name: “Main”: nombre predeterminado para el contenedor principal

    Cambiar el nombre del contenedor predeterminado puede afectar a la capacidad de Express Mode de hacer actualizaciones posteriores en el servicio. No se recomienda cambiarlo si tiene intención de seguir utilizando la consola o las API de Express Mode

  • versionConsistency: enabled: resuelve las etiquetas de las imágenes para resumir los id. a fin de lograr implementaciones coherentes

  • initProcessEnabled: true: habilita la compatibilidad con el proceso de inicio de Docker.

  • stopTimeout: 30 segundos: tiempo entre las señales SIGTERM y SIGKILL.

Valores predeterminados de registros

Los valores predeterminados siguientes se pueden configurar desde Express Mode para los registros de CloudWatch:

  • awslogs-group: “/aws/ecs/<clúster>/<nombre>-####”: nombre del grupo de registros derivado del nombre del clúster y del servicio

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola, o bien usar create-express-gateway-service --primary-container “awsLogsConfiguration”=[{“logGroup”=“/my/logGroup/”}].

  • awslogs-stream-prefix: “ecs”: prefijo para los nombres de los flujos de registro

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola, o bien usar create-express-gateway-service --primary-container “awsLogsConfiguration”=[{“logStreamPrefix”=“myprefix”}].

Express Mode establece los valores predeterminados siguientes, pero se pueden actualizar en la definición de tareas - configuración de registros:

  • logDriver: “awslogs”: utiliza Registros de CloudWatch

  • awslogs-region: región actual: utiliza la misma región que el servicio de Express Mode

  • mode: “non-blocking”: modo de registro configurado como sin bloqueo

  • max-buffer-size: “25m”: tamaño máximo del búfer para las escrituras de registros

Valores predeterminados

Los valores predeterminados siguientes se pueden configurar desde Express Mode para el servicio de Amazon ECS:

  • serviceName: Express Mode service → Name: nombre del servicio (proporcionado por el cliente o derivado del nombre de la imagen)

    El nombre solo se puede configurar en el momento de la creación y no se puede configurar en las actualizaciones.

  • cluster: Express Mode service → Cluster: clúster de ECS para este servicio (proporcionado por el cliente o predeterminado)

    El Cluster solo se puede configurar en el momento de la creación y no se puede configurar en las actualizaciones.

  • desiredCount: Express Mode service → MinTasks: recuento deseado para el servicio (el valor predeterminado es 1)

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola, o bien usar create-express-gateway-service --scaling-target ‘{“minTaskCount”=3}',.

  • tags: Express Mode service: etiquetas para etiquetado de AWS (proporcionadas por el cliente)

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola, o bien usar create-express-gateway-service --tags. Las etiquetas solo se pueden agregar al crear un recurso nuevo.

Express Mode establece los valores predeterminados siguientes, pero se pueden actualizar en el servicio de Amazon ECS.

  • availabilityZoneRebalancing: true: permite el reequilibrio automático de las AZ

  • CapacityProviderStrategy: {“base”: 1, “capacityProvider”: “FARGATE”, “weight”: 1}: utiliza Fargate para la capacidad de computación

  • deploymentConfiguration: canario de manera predeterminada: el servicio de Express Mode utiliza implementaciones canario

    La estrategia de implementación no se puede actualizar en los servicios de Express Mode.

  • enableECSManagedTags: true: habilita el etiquetado de recursos administrados por ECS

  • healthCheckGracePeriodSeconds: 300: periodo de gracia antes de que Scheduler examine las comprobaciones de estado de ELB o Lattice (se alinea con el periodo de gracia de las comprobaciones de estado de ELB, valor predeterminado)

  • launchType: <no establecido>: utiliza proveedores de capacidad

  • loadBalancers: configuración del equilibrador de carga gestionada por ECS

    Las configuraciones del equilibrador de carga no se pueden actualizar en los servicios de Express Mode.

  • placementStrategy: no establecida: utiliza Fargate en el lanzamiento (siempre debe ser AZ Spread)

  • platformVersion: LATEST: versión de la plataforma de Fargate (con codificación rígida en LATEST)

  • propagateTags: “SERVICE”: propaga las etiquetas del servicio a las tareas

  • schedulingStrategy: “REPLICA”: los servicios de Express Mode son servicios REPLICA

  • taskDefinition: servicio de Express Mode creado: definición de tarea que se va a utilizar (proporcionada por el servicio de Express Mode)

Valores predeterminados de configuración de red

Los valores predeterminados siguientes se pueden configurar desde Express Mode para el servicio de Amazon ECS - configuración de red:

  • networkConfiguration.Subnets: si no se proporciona ninguna, Express Mode utilizará las subredes públicas predeterminadas de la VPC.

    La VPC predeterminada debe tener al menos dos subredes públicas, en al menos dos zonas de disponibilidad, con al menos 8 IP libres disponibles, por bloque de CIDR asignado y por subred.

    Si proporciona subredes públicas personalizadas, Express Mode aprovisionará un ALB con acceso a Internet y activará assignPublicIP para las tareas. Si proporciona subredes privadas (subredes sin una puerta de enlace de Internet en su tabla de enrutamiento), Express Mode aprovisionará un ALB interno.

    Si especifica subredes, el primer servicio de Express Mode de una VPC define las subredes asociadas al equilibrador de cargas interno o con acceso a Internet de esa VPC. Los servicios siguientes de Express Mode que se inicien en la misma VPC deben tener subredes que coincidan con las zonas de disponibilidad admitidas por el equilibrador de carga. Por ello, recomendamos crear servicios de Express Mode con subredes de todas las zonas de disponibilidad.

  • networkConfiguration.SecurityGroups: si no se proporciona ninguno, Express Mode crea un grupo de seguridad de servicio y un grupo de seguridad de equilibradores de carga.

    El grupo de seguridad del servicio permite el tráfico saliente hacia la internet pública, pero esto puede estar restringido según otros aspectos de la red, como la configuración de la subred.

    El grupo de seguridad del equilibrador de carga permite el tráfico entrante para la resolución HTTPS y el tráfico saliente hacia el grupo de seguridad del servicio en el puerto del contenedor que especifique (80 de manera predeterminada). Se actualiza de manera automática para que coincida con el puerto del contenedor proporcionado en las llamadas de creación o actualización de Express Mode.

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola, o bien usar create-express-gateway-service --network-configuration '{"securityGroup": ["sg-xxxxxxx"]}'. Al proporcionar un grupo de seguridad, proporciona una ruta de entrada adicional al servicio.

Express Mode establece los valores predeterminados siguientes, pero se pueden actualizar en el servicio de Amazon ECS - configuración de red:

  • assignPublicIp: según el tipo de subred: opción habilitada para las subredes públicas para garantizar que los usuarios de la VPC predeterminada puedan acceder a la internet pública, habilitamos las IP públicas en cada tarea de manera predeterminada. Se inhabilita si proporciona una subred privada y, a continuación, es responsable de configurar una puerta de enlace NAT si las tareas necesitan acceso a internet.

Valores predeterminados del rol de IAM

Los roles de IAM siguientes se pueden configurar para un servicio de Express Mode con la creación automática de roles vinculados al servicio cuando proceda.

  • executionRoleArn: rol de ejecución de tareas (parámetro obligatorio)

    Si bien los permisos necesarios se encuentran en la política administrada, se pueden adjuntar políticas y permisos adicionales. Más detalles sobre AmazonECSTaskExecutionRolePolicy en AWS Managed Policy Reference Guide.

  • infrastructureRoleArn: rol de infraestructura para los servicios de Express Gateway (parámetro obligatorio)

    Si bien los permisos necesarios se encuentran en la política administrada, se pueden adjuntar políticas y permisos adicionales. Más detalles sobre la política administrada AmazonECSInfrastructureRoleforExpressGatewayServices en AWS Managed Policy Reference Guide.

  • taskRoleArn: rol de tarea para las llamadas del código de la aplicación del contenedor (opcional)

    Puede personalizar esta opción mediante la opción Configuraciones adicionales de la consola, o bien usar create-express-gateway-service --task-role-arn.

    Debe crear el rol de IAM nuevo antes de crear o actualizar el servicio de Express Mode.

Express Mode configura automáticamente los roles funciones de IAM siguientes.

  • ecsServiceRoleForECS: permite a Amazon ECS administrar el clúster

  • AWSServiceRoleForElasticLoadBalancing: llama a otros servicios de AWS en su nombre; Elastic Load Balancing los crea de manera automática

  • AWSServiceRoleForApplicationAutoScaling_ECSService: llama a otros servicios de AWS en su nombre, Application Auto Scaling los crea de manera automática

Valores predeterminados de Application Auto Scaling

Los valores de Application Auto Scaling se pueden configurar en Express Mode:

  • autoScalingTargetValue: 60: porcentaje de destino de uso de la CPU para el escalado

  • autoScalingMetric: “CPUUtilization”: métrica utilizada para tomar decisiones de escalado automático

  • desiredMinTaskCount: 1: número mínimo de tareas que se deben mantener

  • desiredMaxTaskCount: 20: número máximo de tareas a las que se puede escalar (se puede aumentar o disminuir)

Los valores siguientes se pueden configurar en Application Auto Scaling:

  • policyType: “TargetTrackingScaling”: utiliza la política de escalado de seguimiento del destino

  • disableScaleIn: false: permite reducir verticalmente cuando la demanda disminuye

Valores predeterminados de destino de escalado de la aplicación

Los destinos de Application Auto Scaling definen los límites de recursos y capacidad escalables para las operaciones de escalado automático. En Express Mode se puede modificar lo siguiente:

  • MaxCapacity: Express Mode service → MaxTasks: número máximo de tareas al que se escalará verticalmente el servicio (el valor predeterminado es CreateLoadBalancedService o lo indica el cliente)

  • MinCapacity: Express Mode service → MinTasks: número mínimo de tareas al que se reducirá verticalmente el servicio (el valor predeterminado es CreateLoadBalancedService o lo indica el cliente)

  • ScalableDimension: ecs:service:DesiredCount: la propiedad que se debe escalar

  • Tags: derivadas de las etiquetas pasadas en CreateLoadBalancedService: etiquetas de recursos para este recurso

Los valores predeterminados siguientes se pueden modificar en el destino escalable de Application Auto Scaling:

  • DynamicScalingInSuspended: false: indica si la reducción horizontal está suspendida

  • DynamicScalingOutSuspended: false: indica si el escalado horizontal está suspendido

  • ScheduledScalingSuspended: false: indica si el escalado programado está suspendido

Valores predeterminados de la política de escalado de aplicaciones

Las políticas de escalado implementan algoritmos de seguimiento de destino que supervisan el uso de la CPU y ajustan el recuento de tareas para mantener un rendimiento óptimo. En Express Mode se puede modificar lo siguiente:

  • TargetValue: 60 %: el valor del destino de la política de seguimiento (Express Mode service → scaling-target-value)

  • PredefinedMetricType: ECSServiceAverageCPUUtilization: nombre y tipo de métrica que se sigue (Express Mode service → scaling-metric)

    Express Mode proporciona métricas de escalado para el uso medio de la CPU, el uso medio de la memoria y el recuento de solicitudes por destino. El recuento de solicitudes por destino proviene del Equilibrador de carga de aplicación y se puede configurar hasta 65536 solicitudes por destino por segundo, que es el servicio de Amazon ECS en el grupo de destinos del Equilibrador de carga de aplicación.

Express Mode establece los valores predeterminados siguientes, pero se pueden cambiar en la política de Application Auto Scaling:

  • PolicyName: <ServiceName><”TargetMetric”>: nombre de esta política de escalado (derivado del nombre del servicio de ECS y la métrica de destino)

  • PolicyType: TargetTrackingScaling: tipo de escalado que se hará (valor predeterminado predefinido)

  • ScalableDimension: “ecs:service:DesiredCount”: la propiedad que se va a escalar (valor predeterminado predefinido)

  • DisableScaleIn: false: indica si la reducción horizontal está desactivada

Valores predeterminados del Equilibrador de carga de aplicación

Los valores predeterminados siguientes del Equilibrador de carga de aplicación se pueden configurar en Express Mode:

  • scheme: depende de las subredes: crea un equilibrador de carga orientado a Internet con direcciones IP públicas cuando se proporcionan subredes públicas. Crea un equilibrador de cargas interno con direcciones IP privadas cuando se proporcionan subredes privadas.

  • ip-address-type: depende de las subredes: crea un equilibrador de carga de aplicación solo para IPv4 cuando las direcciones son IPv4. Cuando haya subredes habilitadas para IPv6, se creará un equilibrador de carga de aplicación de doble pila. Si tiene subredes habilitadas para IPv6, el primer servicio de Express Mode de una VPC define el equilibrador de carga interno o conectado a Internet para esa VPC. Por este motivo, recomendamos crear primero las subredes de solo IPv6 o en una VPC nueva.

Los valores predeterminados siguientes se establecen en Express Mode y se pueden configurar en Equilibrador de carga de aplicación:

  • desync-mitigation-mode: Off: la mitigación de desincronización de HTTP está inhabilitada

  • access-logs.enabled: false: el registro de acceso está inhabilitado

  • listener-configurations.protocol: https: utiliza el protocolo HTTPS para una comunicación segura

  • listener-configurations.port: 443: escucha en el puerto HTTPS estándar

  • listener-configurations.rule-type: host-header: enruta el tráfico según las reglas del encabezado del host

Valores predeterminados del grupo de destino

Los valores predeterminados siguientes del grupo de destinos de Amazon EC2 se pueden configurar en Express Mode:

  • health-check-path: (default “/”) ruta de comprobación de estado del servicio de Express Mode: ruta URL para las solicitudes de comprobación de estado

  • port: (80 es el valor predeterminado): puerto en el que los destinos reciben tráfico

  • health-check-port: (80 es el valor predeterminado): puerto para las solicitudes de comprobación de estado

Express Mode establece los valores predeterminados siguientes y se pueden configurar en los grupos de objetivos de Amazon EC2:

  • protocol: HTTP: protocolo para enrutar el tráfico a los destinos

  • protocol-version: HTTP1: versión del protocolo HTTP para comunicación

  • vpc-id: el valor predeterminado es la VPC predeterminada: identificador de la nube privada virtual para el grupo de destinos, pero se derivará de las subredes proporcionadas

  • health-check-protocol: igual que el protocolo: protocolo para las solicitudes de comprobación de estado

  • health-check-enabled: siempre activada: las comprobaciones de estado se habilitan automáticamente

  • health-check-interval-seconds: 30: tiempo entre las comprobaciones de estado de los destinos individuales

  • health-check-timeout-seconds: 5: tiempo de espera para las respuestas a las comprobaciones de estado

  • healthy-threshold-count: 5: se requieren comprobaciones de estado correctas consecutivas para comprobar que el estado sea correcto

  • unhealthy-threshold-count: 2: número de comprobaciones de estado erróneas consecutivas necesarias para que se considere que el estado es incorrecto.

  • target-type: ip: los destinos se registran por dirección IP

  • ip-address-type: ipv4: utiliza direcciones IPv4 para el registro del destino

Uso compartido de recursos y optimización de costos

Los servicios de Express Mode comparten de manera automática los recursos cuando es posible para optimizar los costos:

  • Uso compartido del equilibrador de carga: hasta 25 servicios de Express Mode en la misma VPC pueden compartir un equilibrador de carga de aplicación. Express Mode aprovisionará equilibradores de carga de aplicaciones adicionales según sea necesario, según la cantidad de servicios de Express Mode que haya aprovisionado. Además, a medida que reduzca la cantidad de servicios de Express Mode en la VPC, Express Mode también eliminará el aprovisionamiento de los equilibradores de carga de aplicaciones no utilizados. Este uso compartido reduce el costo efectivo por aplicación a medida que implementa más servicios de Express Mode.

  • Uso compartido de clústeres: los servicios de Express Mode se pueden agrupar en clústeres de Amazon ECS. Los servicios de Express Mode también pueden compartir clústeres de Amazon ECS con los servicios de Amazon ECS no administrados por Express Mode.