How can I make my web server reachable via IPv6 on the AWS platform?

Although EC2 instances are not native IPv6-capable as of this writing, Amazon has implemented IPv6 for its US East (Northern Virginia), EU (Ireland), Asia Pacific (Tokyo), and Asia Pacific (Singapore) Elastic Load Balancers. I’ll demonstrate how to make IPv6 content available using EC2 instances and a load balancer.

Elastic Load Balancer (ELB) Set-up

I'll assume that you are already using a load balancer. (If you want to set one up, follow the directions in the Elastic Load Balancer Developer's Guide at http://awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-dg.pdf).

Place a check next the ELB entry so that detailed information appears in the bottom panel. Write down your dual stack name for your ELB. It will resemble a name like dualstack.new-balancer-751654286.us-east-1.elb.amazonaws.com.

Testing DNS

Use dig or nslookup to verify that you get A (IPv4) and AAAA (IPv6) records using the dual stack ELB DNS name. If you are not comfortable with these command-line tools, use a web-based dig such as the one at http://www.kloth.net/services/dig.php.

Create CNAMEs for your domain

I recommend testing on a throw-away domain to avoid potential production outages. The CNAME for www.example.com should point to the dual stack ELB name.

Verification

Visit www.example.com from an IPv6 connected host. Alternatively, you can use http://ipv6-test.com/validate.php to test IPv6 connectivity to your site.


IPv6 is not available (as of Sep 2013) for EC2; however it is available for ELB. So you can use ELB as a sort of IPv4 gateway, but you can not yet assign IPv6 addresses to EC2 instances.

There is chatter that this may change in the "near future" (whatever that means).