The Problem

If you run ng serve without giving the correct port & correct public DNS, you may get the following error:

Provided host xx.xx.xx.xx could NOT be bound. Please provide a different host address or hostname

Context: Hosting on AWS EC2

For any new developer, hosting an Angular application on an AWS EC2 instance can be confusing sometimes. Running ng serve starts the server, but still, your application might not be running or accessible.

EC2 Configuration Checklist

You need to check a few things in your EC2 instance settings:

  • Check Security Groups: First, check that port 4200 (or any port that you want to use for Angular) is added in the Security Group to accept traffic (Inbound Rules).
  • Use Correct Public DNS: After allowing the port, run ng serve with the correct domain name or Public DNS shown in your EC2 Instance.

For example:

ng serve --host ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com

Add-On: Fix for Localhost & Binding to All Interfaces

If you are getting this error with localhost:4200, or if you want the app to be accessible externally without specifying the long DNS name every time, you can try binding to 0.0.0.0.

This tells Angular to listen on all available network interfaces:

ng serve --host 0.0.0.0

To add a specific port along with the host command, you can execute the command as follows:

ng serve --host 0.0.0.0 --port 4200
Ucodice Team

The Ucodice Team is a group of passionate developers, designers, and strategists dedicated to delivering top-tier IT solutions to clients worldwide.