This runs on top of Amazon Elastic Compute Cloud (Amazon EC2) and the steps below follow the AWS GUI (graphical user interface). I learnt most of the content below by following Arthur Ulfeldt‘s tutorial Deploying Docker to AWS.
This demo will simply write the current datetime to a volume using the busybox image, the container is called data-source. Another container running nginx will then display this data, this container is called data-server.

Calling data-server on its public IP will then display as follows:

Setup
Create your account at https://aws.amazon.com/ login and under AWS Management Console type or look for ECS, this will take you to the ECS Dashboard
Cluster
Create cluster type of launch type FARGATE, it may be called something like Networking only and mention Powered by AWS Fagate - things in IT change daily :)
- Cluster name:
simple-demo2 - Check
Create VPC - Tag: Description|simple-demo2 (this is the key|value)
- Check
Enable container insightsfor CloudWatch - From the CLI you can view all clusters:
Task Definition
Select Task Definitions -> Create new Task Definition
- Select the
FARGATEtemplate - Task Definition Name: task-definition-data-server
- Requires Compatibilities: FARGATE
- Task Role: escTaskExecutionRole
- Network Mode: awsvpc
- Task execution role: ecsTaskExecutionRole
- Task memory (GB): 0.5GB
- Task CPU (vCPU): 0.25 vCPU
Volumes:
- create one called
shared-data
CONTAINER 1
- Container name:
data-source - Image: busybox
- Memory Limits (MiB): 128
- Entry point:
sh, -c, while true; do echo $(date) > /shared-data/index.html; sleep 5; done - Mount points: select source volume, and set the path
/shared-datato match the shell script - Log configuration: check Auto-configure CloudWatch Logs
CONTAINER 2
- Container name:
data-server - Image: nginx
- Memory Limits (MiB): 128
- Port mappings: 0 -> 80
- Mount points: select source volume, and set the path
/usr/share/nginx/html
Run Task
Now manually run the above task definition from Tasks tab, Run new Task.
Once it starts up select the running task, copy its Public IP into a browsers and you should see the current time update every 5 seconds. Per the image above this IP was 3.104.47.134