¿Cómo puedo proteger mi instancia de contenedor de Amazon ECS con prácticas recomendadas y técnicas de bastionado?

7 minutos de lectura
0

Mis instancias de Amazon Elastic Container Service (Amazon ECS) o las instancias subyacentes de Amazon Elastic Compute Cloud (Amazon EC2) presentan problemas como terminaciones inesperadas, reinicios, problemas de escalamiento o pérdida de datos. Quiero proteger mi instancia de contenedor de Amazon ECS.

Descripción corta

Si utiliza el tipo de inicio de Amazon EC2 en Amazon ECS, los problemas de la instancia de EC2, como las terminaciones, los reinicios o los cuellos de botella en el rendimiento, afectarán al contenedor. Para resolver estos problemas, implemente las prácticas recomendadas para proteger las instancias de contenedor de Amazon ECS y abordar el mantenimiento, el escalamiento y la solución de problemas de Amazon EC2.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas de AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Protección de las instancias de contenedor de Amazon ECS

Limitar el acceso de los usuarios raíz de la cuenta de AWS

No utilice la cuenta raíz a menos que sea necesario, por ejemplo, para cambiar la configuración de la cuenta o modificar la contraseña del usuario raíz. En su lugar, utilice los roles y políticas de AWS Identity and Access Management (IAM) para configurar un acceso que cumpla con la entidad principal de privilegio mínimo. Además, configure la autenticación multifactor (MFA) para la cuenta raíz.

Implementación del bastionado de seguridad

Use grupos de seguridad para restringir el tráfico entrante y saliente solo a las direcciones IP y los puertos necesarios. Aplique parches y actualice periódicamente sus instancias de contenedor de Amazon ECS. También puede usar Amazon Inspector para identificar vulnerabilidades.

Utilice el cifrado para los datos en tránsito confidenciales, como HTTPS, y en reposo, como los volúmenes de Amazon Elastic Block Storage (Amazon EBS). Para obtener más información, consulte Protección de infraestructuras.

Utilice AWS Systems Manager para optimizar la aplicación de parches y el mantenimiento de las instancias de contenedor de Amazon ECS. Utilice AWS Systems Manager Agent (SSM Agent) preinstalado en imágenes de máquina de Amazon (AMI) optimizadas para Amazon ECS para implementar flujos de trabajo de administración de parches automatizados. Esto incluye periodos de mantenimiento programados y estrategias de sustitución de instancias. Para obtener más información, consulte Automatización de la aplicación de parches mediante la sustitución de las instancias de contenedor de Amazon ECS.

Activación del registro y la supervisión

Configure AWS CloudTrail para registrar las actividades de la API. Se recomienda configurar las alarmas de Amazon CloudWatch para que le avisen de los valores elevados de CpuUtilization, DiskReadOps, DiskWriteOps, NetworkIn o NetworkOut.

Para supervisar el rendimiento de las instancias de contenedor y el uso de los recursos, active Información de contenedores.

Configuración de una estrategia de copia de seguridad y restauración

Utilice instantáneas de Amazon EBS o cree AMI como parte de un plan de recuperación ante desastres. Para obtener más información, consulte Copia de seguridad y restauración de Amazon EC2 con AWS Backup.

Importante: Si elimina un volumen de EBS, solo podrá recuperarlo si ha creado una copia de seguridad de AMI o instantánea de Amazon EBS.

Para recopilar y exportar metadatos, registros de instancias y datos de aplicaciones, use SSH para conectarse a su instancia. A continuación, ejecute el siguiente comando describe-instances de la AWS CLI para exportar los metadatos de la instancia:

aws ec2 describe-instances \
--instance-ids i-abcdxyz\
-- query "Reservations[].Instances[]" \
-- output text > file.txt

Para exportar los registros de instancias, ejecute el siguiente comando get-console-output:

aws ec2 get-console-output --instance-id i-abcdxyz --output text

Nota: En los comandos anteriores, sustituya i-abcdxyz por el ID de su instancia.

Solución de problemas de instancias de EC2

Solución de problemas de terminaciones y reinicios inesperados

Utilice el drenaje de instancias administradas de Amazon ECS para asegurarse de que sus cargas de trabajo se detengan correctamente y pasen a instancias estables durante las interrupciones puntuales o eventos similares.

Por motivos de seguridad y rendimiento, Amazon EC2 programa con regularidad eventos de mantenimiento rutinario para sus instancias, como reinicios, paradas e inicios y retiradas. Puede usar el panel de AWS Health para realizar un seguimiento de estos eventos, que pueden tardar varios minutos en completarse. Para obtener información sobre las medidas que puede tomar después de los eventos de mantenimiento rutinarios, consulte Acciones recomendadas para las instancias de Amazon EC2 afectadas por eventos programados.

Si se produce la terminación de una instancia de spot, consulte ¿Por qué Amazon EC2 interrumpió mi instancia de spot?

Amazon EC2 podría terminar su instancia como parte del mantenimiento programado. Para administrar este tipo de terminación de instancias, se recomienda utilizar los enlaces de ciclo de vida de Amazon EC2 Auto Scaling.

Solución de problemas de uso elevado de recursos

Para comprobar si hay un uso elevado de CPU o memoria, revise los registros de la aplicación y las métricas de CloudWatch CpuUtilization, NetworkIn, NetworkOut, DiskReadOps y DiskWriteOps de su instancia. Consulte también la métrica de Información de contenedores MemoryUtilized.

Si la configuración no satisface las necesidades de recursos de las instancias, escale verticalmente las instancias.

O bien, utilice los proveedores de capacidad de Amazon ECS para escalar y optimizar de forma dinámica los recursos informáticos de su clúster. Para crear un proveedor de capacidad, utilice la consola de Amazon ECS. O bien, ejecute un comando create-capacity-provider similar al siguiente ejemplo:

aws ecs create-capacity-provider --name "example-capacity=provider" --auto-scaling-group-provider "autoScalingGroupArn=arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup,managedScaling={status=ENABLED,targetCapacity=100,minimumScalingStepSize=1,maximumScalingStepSize=100},managedTerminationProtection=ENABLED"

Resolución de problemas de espacio insuficiente en disco

El almacenamiento principal de la instancia de EC2 que ejecuta tareas de Amazon ECS puede llenarse por los siguientes motivos:

  • Registros de aplicaciones
  • Almacenamiento excesivo de imágenes de contenedor
  • Archivos temporales creados al ejecutar instancias de contenedor

Tenga en cuenta que cada archivo o directorio usa un inodo independientemente de su tamaño. Por lo tanto, si tiene varios archivos pequeños, es posible que supere la cuota de inodo. Si supera la cuota de inodo, no podrá crear nuevos archivos aunque haya espacio en disco disponible.

Utilice las configuraciones de Amazon ECS para automatizar la limpieza de tareas e imágenes y eliminar las tareas detenidas y las imágenes de Docker no utilizadas. Además, utilice la variable ECS_RESERVED_MEMORY para asegurarse de que las tareas no consuman toda la memoria disponible.

Para limpiar automáticamente las imágenes antiguas o no utilizadas de sus repositorios, utilice las políticas de ciclo de vida de Amazon Elastic Container Registry (Amazon ECR). Para limpiar objetos no utilizados, como imágenes, instancias de contenedor, volúmenes y redes, utilice los comandos prune de Docker. Para obtener más información, consulte Prune unused Docker objects (Cómo eliminar objetos Docker no utilizados) en el sitio web de Docker Docs.

Para ver el espacio en disco que utilizan todos los sistemas de archivos montados, ejecute el siguiente comando:

df -h

Para ver el espacio en disco que usa un sistema de archivos específico, ejecute el siguiente comando:

df -h /

Nota: El comando anterior muestra los datos únicamente del sistema de archivos raíz.

Es posible que se produzcan problemas con los recursos porque tiene pocos inodos disponibles. Para comprobar el uso del inodo, ejecute el siguiente comando:

df -i

Para ver el espacio total en disco que utiliza un directorio específico, ejecute el siguiente comando:

du -sh /path/to/directory

Nota: Sustituya directory por el nombre de su directorio.

Para enumerar los directorios o archivos más grandes de la aplicación, ejecute el siguiente comando:

du -ah /path/to/directory | sort -rh | head -n 10

Nota: El comando anterior muestra los 10 archivos o directorios más grandes. Sustituya 10 por el número de archivos y directorios grandes que desea ver y directory por el nombre de su directorio.

Para comprobar el tamaño de cada subdirectorio de su directorio, ejecute el siguiente comando:

du -h --max-depth=1

Para optimizar la capacidad disponible, utilice flota de spot o proveedores de capacidad para sus instancias de EC2. Para obtener más información, consulte Cómo alimentar los clústeres de Amazon ECS con flota de spot.

Información relacionada

Tolerancia a errores y aislamiento de errores

¿Cómo puedo solucionar los problemas de conexión a mi instancia Linux de Amazon EC2 mediante SSH?

Cifrado de Amazon EBS

Prácticas recomendadas de Amazon EC2

Prácticas recomendadas para Amazon ECS

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un mes