I want to create multiple publicly accesible applications on AWS but I have limited Elastic IPs. Is there a better solution?

Limits are to protect you from accidentally spending too much, and to protect AWS infrastructure from the users. If you have a legitimate need for more resources such as Elastic IPs and have an account in good standing you simply request a limit increase.

To do this go into AWS Support, choose "Create Case", "Service Limit Increase", and choose the resource you would like increased.

Service Limit Increase

I'll also call your attention to "AWS Service Quotas" in the dashboard, which shows you the default and your current limits.

Service Limits

Another Way

It's fine to put EIPs and EC2 instances online. A way that can be better in some circumstances is to create an Application Load Balancer, associate it with an https certificate you created in AWS Certificate Manager, and have it proxy traffic to your EC2 instance private IPs. It costs a little more, but gives your server(s) some extra isolation from the internet. It can help mitigate some types of DDOS attacks as well.


Often used way is to setup a reverse proxy, which sends traffic to different upstream servers.

For example:

https://example.com/api1 -> 10.100.10.1
https://example.com/api2 -> 10.100.10.2

There are different ways to setup such a reverse proxy. One can set up an EC2 instance with nginx configured as a reverse proxy.

AWS also offers different ways to accomplish the same functionality: AWS API Gateway, Application Load Balancer and Cloudfront.