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
awsvpcoperatingSystemFamily: “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.