Prácticas recomendadas para los servicios de Amazon ECS Express Mode
Información de las prácticas recomendadas y recomendaciones para utilizar el servicio de Express Mode de manera eficaz en entornos de producción.
Prácticas recomendadas de seguridad
Administración de secretos
-
Utilice Secrets Manager para los secretos: almacene la información confidencial en Secrets Manager (por ejemplo, credenciales de repositorios privados o bases de datos).
Para obtener más información sobre las prácticas recomendadas de Secrets Manager, consulte Prácticas recomendadas de Secrets Manager en la Guía del usuario de Secrets Manager.
-
Habilite el cifrado en reposo: asegúrese de que los secretos estén cifrados cuando se almacenen en los servicios de AWS.
El uso de un servicio como Secrets Manager le permite cifrar mediante una clave administrada por AWS o proporcionada por el cliente.
-
Implemente la rotación secreta: utilice la rotación automática para las contraseñas de las bases de datos y las claves de API.
Con un servicio como Secrets Manager se puede administrar la rotación de secretos para servicios como Amazon Aurora y Amazon RDS.
Ejemplo del uso de secretos en el servicio de Express Mode:
aws ecs update-express-gateway-service \ --primary-container \ ‘{“environment”=[{“name”=“DB_PASSWORD”,”value”=“arn:aws:secretsmanager:us-west-2:123456789012:secret:prod/db/password”}, \ {“name”=“API_KEY”,”value”=“arn:aws:ssm:us-west-2:123456789012:parameter/prod/api-key”}]}’ \
Seguridad de la red
-
Utilice las subredes privadas para aplicaciones confidenciales: implemente aplicaciones que no necesiten acceso directo a Internet en subredes privadas.
Para obtener más información sobre las arquitecturas recomendadas, consulte Connect Amazon ECS application to the internet.
-
Configure los grupos de seguridad para que sean mínimamente permisivos: restrinja el tráfico entrante y saliente solo a los puertos y orígenes necesarios.
Para restringir el tráfico saliente del grupo de seguridad del servicio de Express Mode, puede editarlo en la consola de grupos de seguridad de Amazon EC2. Para ello, modifique las reglas de salida o utilice los comandos siguientes:
aws ec2 authorize-security-group-egress --group-id sg-xxxxxxxx \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0 aws ec2 revoke-security-group-egress --group-id sg-xxxxxxxx \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0 -
Habilite los registros de flujo de Amazon VPC: supervise el tráfico de la red para analizar la seguridad y solucionar problemas.
Puede habilitar esto en cada subred que utilicen las aplicaciones de Express Mode en la consola de subred de VPC, o utilizar
aws ec2 create-flow-logs --resource-ids subnet-xxx -
Utilice AWS WAF para las aplicaciones web: protéjase contra las vulnerabilidades y los ataques web más comunes.
Para habilitarlo, cree una ACL web y, a continuación, asóciela al equilibrador de carga de aplicación que utiliza el servicio de Express Mode. En la consola, cree una ACL web en el servicio WAF & Shield y asóciela al equilibrador de carga de aplicación. O bien, utilice
aws wafv2 create-web-aclyaws wafv2 associate-web-acl --resource-arn <alb>.
Rendimiento y optimización de computación
Dimensionamiento de recursos
-
Tamaño correcto de CPU y memoria: supervise el rendimiento de las aplicaciones y ajuste las asignaciones de CPU y memoria según los patrones de uso reales.
AWS Compute Optimizer genera recomendaciones para los tamaños de tareas y contenedores de Amazon ECS. Para obtener más información, consulte ¿Qué es AWS Compute Optimizer? en la Guía del usuario de AWS Compute Optimizer.
-
Pruebe el rendimiento de la aplicación: para asegurarse de que la aplicación funciona a escala y con los umbrales de escalado y las asignaciones de recursos determinados, haga pruebas de carga.
Configuración de escalado automático
-
Establezca los umbrales de escalado adecuados: configure los umbrales de CPU o memoria que desencadenen el escalado antes de que disminuya el rendimiento.
Puede modificar el valor objetivo de la métrica de servicio en la consola de servicio de Express Mode.
Considere la posibilidad de agregar una política de escalado predictivo, en especial si el tráfico sigue un patrón basado en el tiempo. Consulte Escalado automático predictivo para obtener más información.
-
Utilice varias métricas de escalado: considere la posibilidad de utilizar la CPU y la memoria y el escalado basado en solicitudes para obtener un escalado con mayor capacidad de respuesta.
Puede agregar varias políticas a un servicio. Express Mode agrega una de manera predeterminada, pero puede adjuntar políticas adicionales directamente a su servicio.
-
Configure los límites mínimos y máximos de las tareas: establezca límites razonables para controlar los costos y garantizar la disponibilidad.
En el caso de las cargas de trabajo de producción, una vez finalizadas las pruebas iniciales, recomendamos poner en marcha las en tres zonas de disponibilidad para seguir las prácticas recomendadas de disponibilidad. Puede actualizar el número mínimo de tareas en la consola de Express Mode o mediante
update-express-gateway-service --scaling-target '{“minTaskCount”=3}'.
Comprobaciones de estado
-
Implemente comprobaciones de estado significativas: cree puntos de conexión de comprobaciones de estado que verifiquen las dependencias críticas de las aplicaciones.
Puede actualizar la ruta de comprobación de estado en la consola de Express Mode. O mediante
update-express-gateway-service --health-check-path "/health".Para obtener más información sobre cómo hacer comprobaciones de estado para la aplicación, consulte Implementing Health Checks
-
Haga que las comprobaciones de estado sean livianas: evite operaciones costosas en los puntos de conexión de las comprobaciones de estado.
Algunos ejemplos pueden ser las llamadas a la API externas, las operaciones con un uso intensivo de la CPU o la memoria, o las operaciones de duración larga con la posibilidad de agotar el tiempo de espera.
-
Utilice tiempos de espera adecuados: configure los tiempos de espera de las comprobaciones de estado que permitan tiempos de respuesta normales y, al mismo tiempo, detecten los errores de manera rápida.
Los tiempos de espera de las comprobaciones de estado de Express Mode se pueden configurar en el grupo destino del equilibrador de carga de aplicación. En la consola de Amazon EC2, vaya a la sección Grupos de destino y seleccione su grupo de destino de Express Mode. Seleccione la pestaña Comprobaciones de estado y haga clic en Editar. En Configuración avanzada de comprobaciones de estado, puede ajustar el tiempo de espera. O utilice
aws elbv2 modify-target-group --target-group-arn <targetgroup> --health-check-timeout. -
Devuelva los códigos de estado HTTP adecuados: utilice 200 para los estados correctos y 4xx/5xx para los estados no correctos.
Prácticas operativas recomendadas
Monitoreo y registro
-
Habilite Información de contenedores mejorada: utilice Información de contenedores mejorada de CloudWatch para una supervisión integral de las aplicaciones de servicio Express Mode.
Consulte Configuración de Información de contenedores en Amazon ECS para obtener más información.
-
Configure métricas personalizadas: publique métricas específicas de la aplicación en CloudWatch para supervisar la lógica empresarial.
Consulte Public custom metrics en la Guía del usuario de CloudWatch para obtener más información.
-
Configure la retención de registros: establezca los periodos de retención de registros adecuados para equilibrar los costos y los requisitos de cumplimiento.
Los grupos de registros de CloudWatch creados por Express Mode están configurados para que no venzan nunca y se conservan cuando se elimina el servicio de Express Mode. Puede ajustar esta configuración en el grupo de registro de CloudWatch.
-
Cree paneles y alertas: configure CloudWatch, paneles y alarmas para una supervisión proactiva.
Estrategias de implementación
-
Implemente tiempos de incorporación: Express Mode implementa un tiempo de incorporación canario para garantizar que las implementaciones tengan tiempo de estabilizarse y, al mismo tiempo, reducir el radio de expansión de las implementaciones problemáticas. Si la aplicación necesita más tiempo para estabilizarse, puede configurarlo en la definición de Amazon ECS Service del servicio de Express Mode. Consulte Creating an Amazon ECS canary deployment para obtener más información.
-
Implemente procedimientos de reversión: tenga un plan para volver de manera rápida a las versiones anteriores en caso de que surjan problemas.
Las comprobaciones de estado significativas y las reversiones basadas en alarmas pueden ayudar a la reversión. La estrategia de implementación canario de Express Mode, combinada con las anulaciones basadas en alarmas en el tráfico de 4xx y 5xx, permite que las implementaciones se anulen de manera rápida en caso de que el código o la configuración de la aplicación sean defectuosos.