Some time ago I have published a post about delegating a domain to Route 53 service and then pointing it to an EC2 instance. You can find this post here. However, that post does not cover one particular type of domain – IDN. That’s why I decided to create this brief post as a supplement. I will not repeat all steps, only focus on differences.
IDN
IDN stands for Internationalized Domain Name is a type of web domain that contains non-ASCII characters like diacritic marks, letters from Arabic or Cyrillic alphabets, and so on.
As an example, I am going to use karoldąbrowski.pl domain (with Polish letter ą) that belongs to me.
Hosted zone
First, you need to create your EC2 instance and assign an Elastic IP to it. If you don’t know how to do that, just follow the steps in my previous post. Then create a hosted zone in Route 53 service. Here is the difference between ordinary domains and IDN ones. If you try to enter your domain name literally, you will receive an error as below.
The hosted zone could not be saved because: Domain Name contains invalid characters or is in an invalid format.
To create a hosted zone for an IDN domain, you have to convert its name to Punycode representation (more about Punycode here). You can use e.g. this, this or this converter, or any other you find on the internet. For example, the representation of karoldąbrowski.pl in Punycode is xn--karoldbrowski-nsb.pl. Use this converted name instead of the literal name of your domain to create a hosted zone. All following steps like configuration of A record are identical as in the case of an ordinary domain.
Final configuration of a hosted zone for IDN domain should look like this.
Summary
Using IDN domains is not highly popular, however this topic, in my opinion, deserved a separate post. If you find any step unclear, be sure to read the previous post about delegating domains to AWS. All steps are thoroughly explained there.
HI Karol – quick question. I’m trying to resolve a bulgarian domain using lightsail/route 53. It’s in cyrilic with a .бг domain. when i get the punycode for it, i get similar to what you had but at the end after .xn there is the following appended ‘–90ae’ . when i put the full punycode into the dns zone for the domain, i get an error from aWS which says: domains must be at least 2 characters long’. any idea how i’m supposed what i’m doing wrong or how to do this?
Could you post the entire domain address you try to delegate? Because I just checked out random domain name with this extension, test.бг (test.xn--90ae in punycode) and it works perfectly fine.
Great post! That’s exactly what I was looking for. Most of articles about Route53 skips IDN topic
Thank you Jackie. That’s very motivating!
I also spent some time to figure it out so I decided to write a post about it 🙂