Delegating IDN domain to AWS EC2 instance

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.

You May Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *