I am able to create an Elastic Beanstalk environment with a VPC using this command with eb-cli:
eb create --vpc
This asks me to configure several options:
Enter an RDS DB username (default is "ebroot"): ...
Enter an RDS DB master password: ...
Retype password to confirm: ...
Enter the VPC ID: ...
Do you want to associate a public IP address? (Y/n): ...
Enter a comma-separated list of Amazon EC2 subnets: ...
Enter a comma-separated list of Amazon ELB subnets: ...
Do you want the load balancer to be public? (Select no for internal) (Y/n): ...
Enter a comma-separated list of Amazon VPC security groups: ...
Creating application version archive ...
I have created a VPC with subnets and added an RDS instance to it following this thread here and here (thank you @Marcin!). But, there are a few things that I am confused about:
I know these are pretty open ended, but hopefully this helps someone!
Based on the chat discussion and comments.
For single instance EB env, it the EB should be in a public subnet with public IP.
For Load-balanced EB env, your load balancer should be in public subnets, while instances can be in private.
Load balancer must be in public subnets. Without that, you won't be able to connect to your website from the internet.
You can use default ones, but may need to adjust them later if needed.