AWS Public vs Private Services
Public Services
Definition: Services that can be accessed directly over the internet (public endpoints).
Why: To allow customers, apps, or users worldwide to use AWS services without being inside a private network.
How: They expose publicly routable IP addresses (AWS-managed endpoints), and you secure access using IAM, security groups, and firewalls.
✅ Example:
S3 bucket endpoint (
https://bucket-name.s3.amazonaws.com) is accessible over the internet (unless you restrict it).AWS Lambda API endpoint can be public if exposed through API Gateway.
Private Services
Definition: Services that run inside your VPC (Virtual Private Cloud) and do not have public internet endpoints by default.
Why: To keep sensitive workloads, databases, and applications private and secure inside your isolated AWS network.
How: You connect using private IPs, VPC endpoints, Transit Gateway, Direct Connect, VPN, etc. No exposure to the public internet.
✅ Example:
An RDS database in a private subnet — you can’t connect unless you’re inside the VPC or use a VPN.
Elastic Network Interfaces (ENIs) are private resources.
Why does AWS separate them?
Security: Keep sensitive data off the internet.
Scalability: Public services provide global access; private services provide isolated control.
Flexibility: You decide what stays public (website, CDN) vs. private (databases, backend apps).
Compliance: Some workloads (like banking/healthcare) must stay in private networks.
How does AWS make this work?
Public services → AWS manages internet-facing endpoints, secured by IAM, WAF, Security Groups.
Private services → Run in your VPC with no internet exposure. You access them through VPC endpoints, private IPs, or VPNs.
List of AWS Public vs Private Services
Public-facing AWS services (Internet-accessible endpoints):
Storage & Content Delivery
Amazon S3
Amazon CloudFront (CDN)
Amazon Route 53 (DNS service)
Compute
AWS Lambda (when triggered via API Gateway)
Amazon API Gateway
AWS Amplify (web/mobile hosting)
AWS Elastic Beanstalk (can be public apps)
Networking
AWS Global Accelerator
AWS Direct Connect (public side of connection)
AWS VPN endpoints (customer side connects over public internet)
Other
Amazon SES (email sending)
AWS SNS (if using public endpoints)
AWS Cognito (user authentication APIs)
Private AWS services (Inside VPC only, no public internet):
Databases
Amazon RDS (in private subnet)
Amazon Aurora
Amazon DynamoDB (via VPC Endpoint for private use)
Amazon Redshift
Compute
Amazon EC2 instances (private subnet)
ECS tasks & EKS pods in private subnets
Networking
Elastic Network Interfaces (ENIs)
VPC Peering
Transit Gateway
Storage & Data
EBS volumes
FSx for Windows/Linux
Elastic File System (EFS)
Security & Identity
AWS KMS (via private VPC endpoint)
AWS Secrets Manager (private via VPC endpoint)
Hybrid (Can Be Both Public or Private Depending on Setup)
RDS (can be public or private)
EC2 (can have public IP or private-only)
Lambda (can run in private VPC or public)
API Gateway (can expose public API or private API)
S3 (can allow public access or restrict to VPC endpoint only)
In simple words:
Public = internet-facing (global access, scalable).
Private = VPC-only (secure, isolated, sensitive workloads).
Last updated