Namecheap is a domain registrar that lives up to its name. It gives you the opportunity to register a new domain name for just a few bucks a year. Even better, you can point that domain name to your Amazon Web Services (AWS) EC2 Linux instance.
It’s especially a good idea to use Namecheap with AWS if you’re starting a small business and don’t have a lot of cash on hand. That’s because AWS offers you a free EC2 instance for an entire year and a domain name registered with Namecheap certainly won’t break the bank. Between AWS and Namecheap, you have an excellent opportunity to prototype a web application for next to nothing in cost.
Here are the simple steps you need to follow to get your Namecheap domain name pointing to your AWS EC2 instance.
Registering your domain name
Registering a new domain name with Namecheap is easy. Just go to the website’s home page and click on the “Domains” menu item at the very top of the page. Select the “Registrations” option from the drop-down menu that appears.
All you have to do on the new page that appears is enter your complete domain name. Namecheap will begin the registration process by checking to make sure that it isn’t taken. If it is, you’ll have to pick another name.
If the name hasn’t been taken, you’ll receive a pleasant message from Namecheap that your domain name is available. You’ll also see pricing options.
Once you’ve gone through the whole shopping cart process and secured your domain name, keep Namecheap open while you begin your work on AWS.
Elastic IP address
You’re going to need an Elastic IP Address to point your domain name to your EC2 instance. If you’ve just created an EC2 instance, it probably isn’t using an Elastic IP Address by default. You’ll have to configure one for your server.
Before you do that, though, check with AWS about pricing options for Elastic IP Addresses. They’re fairly inexpensive, but keep in mind that you get charged for an Elastic IP Address you’ve claimed that isn’t associated with an instance. In other words, you pay when you don’t use the Elastic IP Address.
To set up your Elastic IP Address, login to AWS and select the EC2 option from the front page. Click on the “Running Instances” link towards the top of the page and you should see a list of all your EC2 instances. Click on the instance you want to be the home for your new domain name and view the “Description” tab at the bottom of the page.
On the right-hand side of the “Description” tab, you should see an “Elastic IP” label. If you haven’t associated an Elastic IP Address with that instance, then the field will be blank.
In the far left-hand sidebar of the same page, scroll down a bit until you can see the “Network & Security” options. Underneath that header, you should see a clickable option labeled “Elastic IPs.” Click on that.
In the main part of the page, the table you’re looking at is probably blank. That’s because you haven’t allocated any IP addresses at this point. Begin that process by clicking on “Allocate New Address” at the top.
Once you have an IP address, select “Actions” from the top of the page and then select “Associate Address” from the drop-down menu that appears. When the “Associate Address” dialog box appears, select the instance that you want to associate with your Elastic IP Address and then click on “Associate.”
Congratulations! Your AWS EC2 Linux instance now has its own IP address!
Now, it’s time to associate your new domain name with that address.
To associate your domain name with your new IP address, you’ll have to use another great tool that’s part of AWS: Route 53.
At the very top of your AWS screen select the “Services” menu item. From the (large) menu that appears below, select “Route 53.”
When you get into the Route 53 dashboard, you’ll probably see that you have no hosted zones at this point. That’s okay, because you probably haven’t created any.
Click on “Hosted Zones” on the left-hand sidebar. Then, click on the “Create Hosted Zone” button at the top of the screen.
The form to create a hosted zone will appear on the right-hand side of the screen. Enter the domain name just as you registered it on Namecheap. You can enter any comments you wish in the next field, but that’s optional. Select “Public Hosted Zone” from the drop-down menu below.
Right off the bat, Route 53 will create two record sets for you: an NS record set and an SOA record set. Of particular importance to you right now is the NS record set. That’s because it lists the nameservers that you’ll need to plug into Namecheap in just a little bit. Copy and paste the nameserver entries (there should be four of them) into a text file so that you can use them later.
You’ll also need to create two additional “Type A” record sets. Click on the “Create Record Set” button at the top and you’ll see another form appear on the right-hand side of the screen. Leave the “name” field blank. For “Type,” select “A – IPv4 Address” from the option list. For “Value” enter your Elastic IP Address. Finally, click on the “Create” button.
When you’re done with that record set, repeat the exact same process for the second record set except put “www” in the “Name” field. That way, you’ll have a record set for your domain name in addition to your domain name with “www” in front of it. For example, if your domain name is xyz.com, you’ll be pointing both xyz.com and www.xyz.com to your EC2 instance.
Back to Namecheap
Once you’re done with that, there’s one final step to complete and you’re all set.
Go back to Namecheap. Make sure that you sign in so that you can see the domain you just bought.
In your list of domains on the dashboard (that’s what you should see as soon as you sign in), locate the domain name you want to point to your EC2 instance and click on the “Manage” button on the right-hand side.
Scroll down a bit on the page that appears and you should see a section labeled “Nameservers.” In that section, you have an option to enter custom name servers. That’s where you’ll enter the four servers that you copied from Route 53 in the previous step. Start that process by selecting “Custom DNS” from the drop-down that appears at the top of that section.
There are a couple of points that are important here, though. For starters, you have to enter each server on its own line. If you run out of lines, just click the “Add Nameserver” link at the bottom of the list.
Also, AWS puts periods at the end of each server name. Delete those periods when you copy and paste the name of each server into Namecheap.
Once you’re done, you’re not really done. It will take the Internet a while to “discover” where your domain name is supposed to be pointing, a concept known as DNS propagation. As a rule of thumb, it’s best to give it 24 hours. However, it usually takes much less time.
Wrapping it up
If you’re part of a cash-strapped startup that can’t afford to spend a great deal of money on a hosting solution, then consider using an AWS EC2 Linux instance with Namecheap. Remember: AWS gives you a free trial period that lasts an entire year for one instance and you can buy a Namecheap domain name for just a few dollars per year. Using Namecheap together with an AWS EC2 Linux instance is a great way to bootstrap your way to success if your startup doesn’t have a lot of cash on hand.
Photo credit: ChrisDag