Ya sabes como hacer docker a tu aplicación y tienes un Dockerfile en la carpeta de tu proyecto. Instale docker compatible con su sistema operativo aquí
Tiene una cuenta con AWS.
Configurar
- Crea una clave de credencial de usuario aquí
- Haz clic en "Claves de acceso (ID de la clave de acceso y clave de acceso secreta).
- Crea una nueva clave de acceso.
- Descarga o guarda tanto la clave de acceso como la clave secreta en el portapapeles.

AWS CLI:
$ brew install awscli$ aws configureAWS Access Key ID [None]: <YOUR_ACCESS_KEY_HERE>AWS Secret Access Key [None]: <YOUR_SECRET_KEY_HERE> Default region name [None]: us-west-2Default output format [None]: json
Recuerda que si tu quieres aprender aws, te dejo el siguiente video
Amazon Elastic Cluster Service
Va aquí para crear un clúster

- Haz clic en Crear clúster en lugar de empezar. Esto también creará una instancia EC2 para que ejecutes tu imagen docker.


Elije una plantilla que se ajuste a lo que necesita. Quiero que mi EC2 simule mi sistema operativo Linux.
Hay 2 cosas que cambio son:
- Tipo de instancia EC2: cambiar a t2.micro porque es una capa gratuita a menos que quieras pagar.
- Par de claves: esto me permitirá acceder por SSH a la instancia desde mi portátil.
P/S: Ahora mismo, la instancia EC2 sólo puede acceder de forma privada, actualizaremos la seguridad más adelante.
- Crea y espera. Luego haz click en Ver Cluster
Ahora debería ver el panel de control de su clúster:

AWS Elastic Container Register (ECR)
Similar al hub Docker, Amazon tiene una característica llamada Elastic Container Register, que te permite desplegar tu contenedor Docker en AWS.
- Haz clic en Repositorios en la barra de la izquierda
- Crear repositorio
- Verás tu docker en el dashboard.
- Haz clic en tu repositorio docker

Haz clic en View Push Commands y sigue las instrucciones para desplegar tu aplicación.
Nota: Asegúrese de que usted necesita para volver a construir su aplicación de nuevo.

Felicidades, ya tienes tu imagen URI lista para desplegar en la instancia EC2. Ahora, copia la imagen URI, y volvamos a Amazon ECS

Definición de tareas
En la misma ventana, haga clic en "Task Definition" en la barra de la izquierda.
1. Crear nueva definición de tarea.
2. Elegir EC2

3. Configura tu Task Definition: en este paso, le diremos a nuestra instancia EC2 que ejecute el contenedor docker que acabas de crear.

Nombre: Dale un nombre a tu tarea (ej: run-server)
Tamaño de la tarea: elija 512 para ambos porque nuestra tarea es pequeña y simple supongo.
4. Add Container: ahora, se te pedirá que introduzcas el URI de la imagen de Docker. Si lo olvidaste, haz click aquí

Configura el número de puerto para su EC2 a PORT 80
el puerto del contenedor: El puerto en el que se está ejecutando tu contenedor (en mi caso, mi contenedor se ejecuta en 8080).
Deja el resto como predeterminado > haz clic en "Añadir"
5. Haz click en Crear
6. Después de recibir la notificación con éxito, haga clic en acciones > Crear Servicio.

Un servicio le permite especificar cuántas copias de su definición de tarea ejecutar y mantener en un clúster....Amazon ECS mantiene ese número de tareas y coordina la programación de tareas con el equilibrador de carga.
Configure tu servicioen aws
Paso 1

Tipo de lanzamiento: EC2
Número de tareas: 1
Paso 2

Paso 3
Dejarlo por defecto
Paso 4
Revisar > Crear Servicio
Despues de eso, deberías ver tu servicio que tiene "running count: 1" que significa:
a. Su tarea está ejecutando su contenedor docker
b. Su servicio está ejecutando la tarea en su instancia EC2

Comprobación de la instancia EC2
Abre tu EC2 aquí
Haz clic en su EC2, y busque DNS Público (IPv4):

Abre el navegador e introduce ese DNS público
Si lo has conseguido, enhorabuena, ahora tu aplicación está online. Si no, continúa con estos pasos:
Haz clic en el enlace junto a Grupo de seguridad > haz clic en el ID del grupo de seguridad

Añade reglas de entrada como las siguientes:

Añadir salida:

Esto permitirá a cualquiera acceder a su enlace público.