Launch instances via Elastic Beanstalk without Elastic IP configured

Solution 1:

When using the environment type "Single instance", you always get an EIP.

From Beanstalk developer guide, Environment Types:

A single-instance environment contains one Amazon EC2 instance with an Elastic IP address.

Disabling the "Associate Public IP Address" option does not have any effect.

Switch to "Load-balancing, Autoscaling" Environment to get by without an EIP.

Solution 2:

I don't want Elastic IP to be enabled for these apps as they are short lived.

If you're in a VPC's public subnet (which is likely), one is required for that instance to be able to communicate with the Internet. Per http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html:

To enable an instance in your public subnet to communicate with the Internet, it must have a public IP address or an Elastic IP address that's associated with a private IP address on your instance. Your instance is only aware of the private (internal) IP address space defined within the VPC and subnet. The Internet gateway logically provides the one-to-one NAT on behalf of your instance, so that when traffic leaves your VPC subnet and goes to the Internet, the reply address field is set to the public IP address or Elastic IP address of your instance, and not its private IP address. Conversely, traffic that's destined for public IP address or Elastic IP address of your instance has its destination address translated into the instance's private IP address before the traffic is delivered to the VPC.

The automatically-assigned EIPs that come with a new instance don't cost anything, and they automatically go away when the instance is decommissioned.

Solution 3:

After you Disassociate the Elastic IP Address, you have about 10 seconds to 'release' it. If you release it, it will not come back.