AWS ECS/Fargate Cheat Sheet
Task definitions, services, CLI commands, and networking modes for running containers on ECS with the Fargate launch type.
3 PagesIntermediateJan 22, 2026
Fargate Task Definition
Minimal task definition requiring awsvpc networking and explicit CPU/memory.
json
{ "family": "web-app", "requiresCompatibilities": ["FARGATE"], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "web", "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/web-app:latest", "portMappings": [{ "containerPort": 8080, "protocol": "tcp" }], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/web-app", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "web" } } } ]}
Register Task & Create Service (CLI)
Register a task definition, then run it as a load-balanced service.
bash
aws ecs register-task-definition --cli-input-json file://task-def.jsonaws ecs create-service \ --cluster prod-cluster \ --service-name web-app \ --task-definition web-app \ --desired-count 3 \ --launch-type FARGATE \ --network-configuration "awsvpcConfiguration={subnets=[subnet-abc,subnet-def],securityGroups=[sg-123],assignPublicIp=DISABLED}" \ --load-balancers "targetGroupArn=arn:aws:elasticloadbalancing:...,containerName=web,containerPort=8080"
ECS Exec into a Running Container
Debug a live task with an interactive shell (requires enableExecuteCommand).
bash
# Enable exec when creating/updating the serviceaws ecs update-service --cluster prod-cluster --service web-app --enable-execute-command# Open a shell in the running taskaws ecs execute-command \ --cluster prod-cluster \ --task arn:aws:ecs:us-east-1:123456789012:task/prod-cluster/abc123 \ --container web \ --command "/bin/sh" \ --interactive
Fargate Sizing & Networking
Key constraints to know before writing a task definition.
- CPU/memory pairs- fixed combos, e.g. 256 CPU units requires 512/1024/2048 MB memory
- awsvpc mode- required for Fargate; each task gets its own ENI and private IP
- Execution role- pulls images and writes logs (ecsTaskExecutionRole)
- Task role- grants the app itself permissions to call other AWS services
- assignPublicIp- ENABLED needed for public subnets without a NAT gateway
- Fargate Spot- up to 70% cheaper, interruptible; mix with capacityProviderStrategy
Pro Tip
Set a capacityProviderStrategy that blends FARGATE and FARGATE_SPOT (e.g. weight 1/3) instead of an all-or-nothing launch type — ECS will automatically replace interrupted Spot tasks while keeping a stable baseline on standard Fargate.
Was this cheat sheet helpful?
Explore Topics
#AWSECSFargate#AWSECSFargateCheatSheet#CloudComputing#Intermediate#FargateTaskDefinition#Register#Task#Create#Networking#Docker#CommandLine#CheatSheet#SkillVeris
Advertisement
Sri Hayavadhana Info-Tech
Professional Web Designing Services
- Responsive Websites
- E-commerce Solutions
- SEO Friendly Design
- Fast & Secure
- Support & Maintenance