Sitemap

Migrating Domains from Namecheap to AWS Route 53

6 min readOct 13, 2025

--

Press enter or click to view image in full size

A few months ago, I joined a company where I was responsible for building several systems. Over time, I also began handling deployment operations. At one point, I decided to migrate our domain from Namecheap to AWS so that all domain routings could be managed and monitored from a single source of truth, AWS Route 53. I decided to document the process both for future reference and to help others who might need to do the same.

Prerequisites

Let’s note a few things to consider before doing this:

  • Confirm the TLD (Top Level Domain) of your domain is supported by AWS
  • Confirm your domain registrant info is accurate, for proper identification by authorities and to ensure you have access to whatever security codes and any other notifications might be sent to your email during this process
  • Backup existing DNS records
  • AWS credits cannot be used for this process
  • If you have DNSSEC enabled, you’d need to turn that off
  • Premium domains could be difficult to transfer so ensure you contact AWS support before you start
  • It’s usually better to create hosted zone before hand before you start the AWS side of things
  • Namecheap provides your domain’s DNS service, so they might disable DNS immediately when you request a transfer. That means: Your website and emails might go offline unless DNS is already handled somewhere else (e.g., Route 53). AWS recommends you transfer DNS hosting to Route 53 first, then transfer the domain.

Now that we’ve covered those considerations, here’s the plan: we’ll first transfer DNS hosting from Namecheap to AWS, then transfer the domain itself.

A. Transfer your DNS hosting to Route 53 first

1. Create a hosted zone in AWS Route 53

  • Go to the AWS Route 53 Console.
  • Click “Create hosted zone.”
  • Under Domain name, enter your domain name (e.g., ceblack.com).
  • Choose Public hosted zone (this is what handles DNS on the internet).
  • Click Create hosted zone.
Press enter or click to view image in full size

✅ AWS will automatically create:

  • An NS record (name servers)
  • An SOA record

You’ll see 4 name servers listed in the NS record — something like:

ns-123.awsdns-45.com
ns-678.awsdns-89.net
ns-234.awsdns-56.org
ns-345.awsdns-12.co.uk

Keep these, you’ll need them soon.

2. Add your existing DNS records

Replicate all your current DNS records from Namecheap (A, CNAME, MX, TXT, etc.) into Route 53.

  • Check Namecheap’s DNS management page.
  • Copy each record into your Route 53 hosted zone.
  • For example:
  • A record → points to your web server or hosting IP
  • MX record → for email routing
  • CNAME → for subdomains like www or blog
  • Add these manually in Route 53 using “Create record.”

This ensures everything keeps working when you switch name servers.

Press enter or click to view image in full size
Namecheap Advanced DNS
Press enter or click to view image in full size
Created Hosted Zone Records in AWS

3. Update your domain’s name servers at Namecheap

Once all DNS records are copied to Route 53:

  1. Go to Namecheap’s domain settings (where you bought ceblack.com).
  2. Go to the Name Servers section, then select “Custom DNS.”
  3. Replace the existing name servers with the 4 Route 53 ones from your hosted zone.
  4. Save the changes.

✅ Now your domain is still registered with your Namecheap, but DNS is fully managed by Route 53.

Press enter or click to view image in full size

4. Wait for DNS propagation

It can take up to 24–48 hours (usually less) for the new name servers to propagate globally.

Get Elijah Soladoye’s stories in your inbox

Join Medium for free to get updates from this writer.

You can check progress using:

dig NS xyz.com

or an online tool like https://dnschecker.org.

Once you’re done with this, we can start with transfering domains.

B. Transfer the Domain from Namecheap

1. Unlock your Domain

  • Sign into Namecheap
  • Go to your list of domains
  • Select the one you want to migrate
  • Then head over to sharing and transfer
  • Under the “Transfer Out” section, turn off Domain lock
Press enter or click to view image in full size

Then select the auth code button, this will send a code to the registrant’s email, you will need this in the AWS side of things

2. Initiate the Transfer

  • Sign into the AWS console
  • Go to Route 53, registered domains specifically
  • Then select “Transfer in” (Single domain)
Press enter or click to view image in full size
  • Check the domain transferability

If you didn’t unlock your domain, you’d see something like this:

Press enter or click to view image in full size

If you did, you should see this:

Press enter or click to view image in full size

Then you’d be able to proceed to the next steps:

Press enter or click to view image in full size

At this phase, you’d need the auth code that was sent to your registrant email earlier.

Press enter or click to view image in full size

You would be asked about your name server configurations, for which you have three options:
1. Continue to use the name servers provided by the current registrar or DNS service (recommended)

  • Keeps your existing DNS records unchanged during the transfer. This prevents downtime or loss of connectivity (e.g., your website and email will keep working).

2. Import name servers from a Route 53 hosted zone that has the same name as the domain

  • If you already set up a Route 53 hosted zone for your domain, AWS can automatically apply those DNS records once the transfer completes. This is useful if you’ve already prepared your DNS configuration in Route 53.

3. Specify new name servers to replace the current registrar’s name servers (not recommended)

  • You can manually define different name servers, but AWS warns against this because it’s easy to break DNS resolution if done incorrectly.

Since we already transferred the DNS hosting to AWS earlier, you can select the default option which is “Continue to use the name servers provided by the current registrar or DNS service”.

If you didn’t follow that part of this article for some reason, you can create a hosted zone, then select then “Import name servers from a Route 53 hosted zone that has the same name as the domain”, but this may result in a momentary downtime.

Initially, when I went through this process ignorantly, I used the first option, but without configuring the DNS hosting to be managed by AWS, this led to a lot of trials and errors as the domain didn’t respond to AWS resources I mapped it to. So I created a hosted zone afterwards, added the required name server records and monitored it till it migrated using dig and nslookup commands.

Anyway, back to the process, following this guide, once you’ve selected the default option, you’ll need to enter your contact information, your billing details, then you can submit. Note that the first bill would be charged at the end of the month, and subsequently, each year. After you’ve gone through all these, you’d get an email from Namecheap in a few minutes, confirming the transfer, if you don’t respond to the email, it will automatically transfer after a given timeframe, usually 5–7 days.

Well, that’s it guys, I hope you found this very helpful, if I missed something, or you have questions, feel free to drop them in the comments below.

--

--

Elijah Soladoye
Elijah Soladoye

Written by Elijah Soladoye

Software engineer with 5+ years of experience building solutions using Typescript, Python and AWS. Learn more about me at: https://www.elijahsoladoye.com