🔌 Common Ports to Know
PortProtocolService
22TCPSSH — remote server access
80TCPHTTP — web traffic
443TCPHTTPS — secure web traffic
3306TCPMySQL / Aurora MySQL
5432TCPPostgreSQL / Aurora PostgreSQL
1433TCPMicrosoft SQL Server
6379TCPRedis (ElastiCache)
11211TCPMemcached (ElastiCache)
27017TCPMongoDB / DocumentDB
2049TCPNFS (EFS file system)
8080TCPHTTP alternate (dev servers)
8443TCPHTTPS alternate
💸 AWS Free Tier Limits
ServiceFree AllowanceDuration
EC2750 hrs/mo t2.micro or t3.micro12 months
S35 GB + 20K GET + 2K PUT requests12 months
RDS750 hrs/mo db.t3.micro (20 GB)12 months
CloudFront1 TB transfer + 10M requests12 months
Lambda1M requests + 400K GB-secondsAlways free
DynamoDB25 GB + 25 WCU + 25 RCUAlways free
SNS1M publishesAlways free
SQS1M requestsAlways free
CloudWatch10 metrics + 5 GB logsAlways free
Cognito50,000 MAUAlways free
API Gateway1M API calls/mo12 months
EBS30 GB SSD (gp2/gp3)12 months
🗺️ AWS Regions — Key Locations
Region CodeLocationAZs
us-east-1N. Virginia (oldest, most services)6
us-east-2Ohio3
us-west-1N. California2
us-west-2Oregon4
eu-west-1Ireland3
eu-west-2London3
eu-central-1Frankfurt3
ap-southeast-1Singapore3
ap-southeast-2Sydney3
ap-northeast-1Tokyo4
ap-south-1Mumbai3
sa-east-1São Paulo3
🔒 IAM Policy Structure
ElementPurposeExample
EffectAllow or DenyAllow
ActionWhat API callss3:GetObject
ResourceWhich resourcesarn:aws:s3:::my-bucket/*
ConditionWhen it appliesIP range, MFA, tag
PrincipalWho gets accessIAM user, role, service
NotActionAll except theseDeny all but billing
* wildcardAll actions/resourcess3:*
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": ["s3:GetObject"],
    "Resource": "arn:aws:s3:::my-bucket/*"
  }]
}
💻 Essential AWS CLI Commands
TaskCommand
Configure credentialsaws configure
List S3 bucketsaws s3 ls
Sync folder to S3aws s3 sync ./dist s3://my-bucket --delete
List EC2 instancesaws ec2 describe-instances --query 'Reservations[*].Instances[*].{ID:InstanceId,State:State.Name}'
Start EC2 instanceaws ec2 start-instances --instance-ids i-1234567890abcdef
SSM into instanceaws ssm start-session --target i-1234567890abcdef
Run SSM commandaws ssm send-command --instance-ids i-xxx --document-name "AWS-RunShellScript" --parameters 'commands=["uptime"]'
List IAM usersaws iam list-users --query 'Users[*].UserName' --output text
Get caller identityaws sts get-caller-identity
Invalidate CloudFrontaws cloudfront create-invalidation --distribution-id EXXX --paths "/*"
Tail CloudWatch logsaws logs tail /aws/lambda/my-function --follow
Put item in DynamoDBaws dynamodb put-item --table-name Users --item '{"id":{"S":"1"},"name":{"S":"Alice"}}'
📖 Key AWS Concepts
TermWhat it means
RegionGeographic area with multiple data centres
AZAvailability Zone — isolated data centre within a region
ARNAmazon Resource Name — unique ID for every AWS resource
IAM RolePermissions that an AWS service or user can assume temporarily
Security GroupVirtual firewall controlling inbound/outbound traffic
CIDRIP range notation — 10.0.0.0/16 = 65,536 IPs
SubnetSegment of a VPC IP range in a single AZ
IGWInternet Gateway — allows VPC traffic to reach the internet
NAT GatewayLets private subnet instances connect out but not in
OACOrigin Access Control — CloudFront-only S3 access
ACMAWS Certificate Manager — free SSL/TLS certs
SLAService Level Agreement — AWS uptime guarantee per service
🤔 Which Service Should I Use?
If you need to…Use this
Run a web serverEC2 or Elastic Beanstalk
Run code without a serverLambda
Store files and imagesS3
Store relational data (SQL)RDS or Aurora
Store flexible JSON dataDynamoDB
Cache database resultsElastiCache (Redis)
Speed up a static website globallyCloudFront + S3
Route a domain nameRoute 53
Balance traffic across serversALB (Application Load Balancer)
Create an HTTP APIAPI Gateway + Lambda
Send emails or SMSSNS or SES
Queue jobs between servicesSQS
Monitor your resourcesCloudWatch
Audit API callsCloudTrail
Define infrastructure as codeCloudFormation or CDK

Ready to put this into practice?

Follow our step-by-step getting started guide and deploy your first AWS workload.