What’s a VPC (Virtual Private Cloud)?
A VPC is your own private data center in the cloud:
- You control the IP range, subnets, routing, firewalls (Security Groups & NACLs).
- You can run Elastic Beanstalk inside your VPC, so your app isn’t publicly exposed (unless you want it to be).
- Useful for private APIs, secure database access (RDS), or hybrid cloud setups.
How to Deploy Elastic Beanstalk into a Custom VPC
Step 1: Create Your VPC
Use VPC wizard or manual setup:
- 1 VPC (e.g., 10.0.0.0/16)
- 2 Public subnets (for load balancer)
- 2 Private subnets (for EC2 instances)
- Internet Gateway (for public access)
- NAT Gateway (for internet from private subnets)
- Route Tables for each
Tip: Keep EC2 instances in private subnets for security, expose only the ALB in public subnet.
Step 2: Tag Your Subnets
Tag your subnets so Beanstalk can find them:
Key: elasticbeanstalk:environment-type
Value: LoadBalanced
Step 3: Create Elastic Beanstalk App in the VPC
eb init -p python-3.8 my-secure-app
eb create my-secure-env \
  --vpc \
  --vpc.id vpc-xxxxxxxx \
  --vpc.publicip \
  --vpc.elbpublic \
  --vpc.ec2subnets subnet-private-a,subnet-private-b \
  --vpc.elbsubnets subnet-public-a,subnet-public-b
- 
--vpc.elbpublic: Makes load balancer public
- 
--vpc.publicip: Assigns public IP to EC2 (optional)
- 
--vpc.ec2subnets: List your private subnets
- 
--vpc.elbsubnets: List your public subnets
Step 4: Confirm Security Group Access
- Your EC2 security group must allow:
- Inbound HTTP/HTTPS from ELB
- Outbound to internet (via NAT)
 
- If using RDS, allow inbound from the Beanstalk SG
  
  
  Sample eb config Output
You can verify your settings:
eb config
Use Case Scenarios
| Use Case | Why VPC Matters? | 
|---|---|
| RDS database | Private subnet access only | 
| Internal APIs | Block external exposure | 
| Custom routing/NAT | Control egress traffic | 
| Hybrid architecture | Connect on-prem to cloud | 
 
 
              

 
    
Top comments (0)