Migrating Domains from Namecheap to AWS Route 53
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.
✅ 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.ukKeep 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
wwworblog - Add these manually in Route 53 using “Create record.”
This ensures everything keeps working when you switch name servers.
3. Update your domain’s name servers at Namecheap
Once all DNS records are copied to Route 53:
- Go to Namecheap’s domain settings (where you bought
ceblack.com). - Go to the Name Servers section, then select “Custom DNS.”
- Replace the existing name servers with the 4 Route 53 ones from your hosted zone.
- Save the changes.
✅ Now your domain is still registered with your Namecheap, but DNS is fully managed by Route 53.
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.comor 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
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)
- Check the domain transferability
If you didn’t unlock your domain, you’d see something like this:
If you did, you should see this:
Then you’d be able to proceed to the next steps:
At this phase, you’d need the auth code that was sent to your registrant email earlier.
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.








