Launch instances via Elastic Beanstalk without Elastic IP configured

amazon-elastic-ipelastic-beanstalk

I'm creating a tool to deploy Docker images to EC2 via ElasticBeanstalk, so the dev team can quickly demo their work without having to merge. I don't want Elastic IP to be enabled for these apps as they are short lived.

The reason I'm asking this is because if my tool builds more than 5 apps (and it has quite quickly) any new app will fail because no Elastic IP can be assigned to the new app. This is because an AWS account typically has a max of 5 Elastic IPs available. I can go to the aws web console and choose 'Disassociate Elastic IP Address' (see below) on an instance, after which the ec2 instance will get a new ip (after a few minutes). This is what I want, but I want to do it programmatically, and would prefer to boot the app without it instead of doing it once the instance is created.

disassociate menu option

Is there a configuration option I can use to use to disable Elastic IP for the new instance?

I'm using the node aws-sdk, but any tips in any language will do.

I'm creating m1.small single instances.

If this isn't possible when launching, I'll have to disassociate the Elastic IP from the instance using the EC2.disassociateAddress function.

Best Answer

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.