If an AWS account does not have a default subnet in their VPC configuration, then creating instances in that VPC will not automatically provide a public IP/DNS. Boto added this functionality in 2.13.0 (NetworkInterfaceSpecification.associate_public_ip_address).

This change adds assign_pubic_ip as a parameter to the ec2 module, ensuring that it is not set to one of BOOLEANS_TRUE if vpc_subnet_id is not also set, and if Boto is less than 2.13.0.
Merge pull request #4502 from dxsarmit/ansible

New library/cloud/ec2 module parameter (assign_public_ip) for non-default VPC instance launching.