Tengo una aplicación ejecutándose usando docker-compose.
Ahora estoy migrando la aplicación para que se aloje en ECS.
Estoy traduciendo la configuración de docker-compose a los equivalentes de boto3 ECS.
Lamentablemente, no encuentro un equivalente del comando docker-compose en la CLI de AWS .
ECS no contiene un comando docker-compose. En su lugar, especificará un archivo de definición de tareas que contenga todas las definiciones de un servicio y los contenedores que residen en él.
El servicio ECS luego implementará esto en función de la definición de la tarea, simplemente defina parámetros como cuántas de estas tareas están operando a la vez.
Sin embargo, puede usar la herramienta ecs-cli para realizar esta migración por usted, usando el comando ecs-cli compose , puede tomar el archivo docker-compose y realizar esas traducciones.
Eche un vistazo a la página Uso de la sintaxis del archivo Docker Compose para ver qué parámetros son compatibles con un archivo docker-compose.
Puede usar la transformación de contenedor con boto3, que convertirá docker-compose en una definición de tarea de ECS equivalente. esto también se basa en python.
container-transform es una pequeña utilidad para transformar varios formatos de contenedores docker entre sí.
Actualmente, container-transform puede analizar y convertir:
cat docker-compose.yml | container-transform -vTambién herramienta sugerida por la hoja de ruta de AWS ECS.
es poco probable que admitamos el formato docker-compose directamente en nuestras API. Pero, ¿funcionaría para usted una herramienta como container-transform para transformar un archivo docker-compose en una definición de tarea de ECS? Luego puede usar el archivo de definición de tareas de ECS resultante en boto.
También puede usar ECS ComposeX , que le permitirá seguir usando sus definiciones de docker-compose tal como existen para fines locales, ya que no introduce ninguna extensión no compatible para docker-compose, pero también le permitirá definir RDS/DocDB/DynamoDB/ Kinesis y muchas otras opciones que puede vincular automáticamente a sus servicios.
Cuando esté listo, ComposeX transformará todo eso en plantillas CFN, que contienen definiciones de AWS ECS y todos los recursos necesarios, que están vinculados lógicamente para trabajar juntos pero igualmente autosuficientes (para que pueda implementar cosas por separado, como bases de datos, por ejemplo).
Todas las plantillas se analizan y validan automáticamente a través de la API de formación en la nube (en la medida de sus posibilidades). Tiene como objetivo trabajar con los servicios de AWS y seguir todas las prácticas recomendadas, lo que incluye permitirle definir el acceso con privilegios mínimos desde/hacia los servicios y los recursos de AWS.
Admite escalado automático, creación/uso de clústeres de ECS existentes y tiene como objetivo hacer cargas de trabajo principalmente en Fargate pero también en instancias de EC2.