回答:
この記事の執筆時点では、EC2インスタンスはネイティブIPv6対応ではありませんが、Amazonは米国東部(バージニア北部)、EU(アイルランド)、アジア太平洋(東京)、およびアジア太平洋(シンガポール)Elastic Load BalancerにIPv6を実装しています。EC2インスタンスとロードバランサーを使用してIPv6コンテンツを利用可能にする方法を示します。
Elastic Load Balancer(ELB)のセットアップ
すでにロードバランサーを使用していると仮定します。(設定する場合は、http: //awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-dg.pdfのElastic Load Balancer開発者ガイドの指示に従ってください)。
ELBエントリの横にチェックを入れて、詳細情報が下部パネルに表示されるようにします。ELBのデュアルスタック名を書き留めます。dualstack.new-balancer-751654286.us-east-1.elb.amazonaws.comのような名前に似ています。
DNSのテスト
digまたはnslookupを使用して、デュアルスタックELB DNS名を使用してA(IPv4)およびAAAA(IPv6)レコードを取得することを確認します。これらのコマンドラインツールに慣れていない場合は、http: //www.kloth.net/services/dig.phpにあるようなWebベースの掘り出しを使用してください。
ドメインのCNAMEを作成します
潜在的な実稼働停止を回避するために、スローアウェイドメインでテストすることをお勧めします。www.example.comのCNAMEは、デュアルスタックELB名を指す必要があります。
検証
IPv6接続ホストからwww.example.comにアクセスします。または、http://ipv6-test.com/validate.phpを使用して、サイトへのIPv6接続をテストできます。
IPv6はEC2では利用できません(2013年9月現在)。ただし、ELBで使用できます。したがって、ELBをIPv4ゲートウェイの一種として使用できますが、まだIPv6アドレスをEC2インスタンスに割り当てることはできません。
これは「近い将来」に変化する可能性があるというおしゃべりがあります(それが何を意味するにせよ)。
Tunnelbrokerから無料のIPv6トンネルを取得できます。EC2でうまく機能します。私はそれをテストしました。
IPv6が一般公開されました
Elastic Load Balancing、AWS IoT、AWS Direct Connect、Amazon Route 53、Amazon CloudFront、AWS WAF、S3 Transfer Accelerationを始めとして、過去数年にわたってAWSのさまざまな部分にIPv6サポートを追加する作業を行ってきました。仮想プライベートクラウドのEC2インスタンスに対するIPv6サポートの先月の発表までのすべてのビルド(当初は米国東部(オハイオ)リージョンで使用可能)。
本日、VPCでのEC2インスタンスのIPv6サポートが合計15の地域で利用可能になり、それらの地域の9つの地域でApplication Load BalancerがIPv6をサポートしたというニュースを共有できてうれしいです。
AWS EC2インスタンスはまだRFC1918 IPv4アドレス空間を受け取るいますが、ELBの背後にあるWebサービスを持っているならば、そこにあるdualstack
とipv6
デュアルIPv4 / IPv6およびIPv6のみのアクセスを提供ELBインスタンスの接頭辞ホスト名。ELBとEC2インスタンス間の通信は引き続きIPv4のままですが、ホストしているWebアプリケーションが特にIPv6アドレスを検索しない限り、IPv6を介して接続するクライアントは何も変わりません。
前回の目標は、Python DjangoアプリケーションをLinodeサーバーからAmazon EC2-VPCに移行することでした。最初は、インターネットでEC2インスタンスに関する多くの情報を読みましたが、現時点ではEC2 VPCはIPv6をサポートしていません。
はい、ELBとEC2-Classicで可能かもしれませんが、EC2-ClassicにAmazonが必要とする新しいアカウントがあるため、EC2-Classicをセットアップすることはできません。AWSインフラストラクチャとRDSデータベーススタイルが好きなので、これは大きな問題でしたが、アプリケーションでIPv6を取得する必要があります。
考えてから、プロキシとしてIPv6をサポートしているLinodeサーバーを作成することにしました。Linodeのnginx構成では、ポート9099でEC2-VPC Djangoアプリケーションへのすべてのトラフィックをプロキシし、EC2-VPCから静的に取得します。
location /static/ {
proxy_pass http://--AWS_IP--/s6/;
}
location /media/ {
proxy_pass http://--AWS_IP--/m6/;
}
location / {
proxy_pass http://--AWS_IP--:9099/;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 4000;
}
EC2-VPCでは、ポート9099でDjangoアプリケーションを作成し、外部からアクセスできるようにします。Amazonコンソールでも、外部からポート9099にアクセスできるようにします。これは、Linode nginxがここにトラフィックを送信できる必要があるためです また、nginxによってEC2-VPCからLinodeに静的およびメディアを送信することを忘れないでください。
location /s6/ {
alias /home/django/static/;
}
location /m6/ {
alias /home/django/media/;
}
最後に、AAAA DNSレコードをLinodeサーバーに、A DNSレコードをEC2-VPCにポイントすると、すべて正常に機能します。すべてのトラフィックは、X2-Real-IPヘッダーに保存されている実IPであるEC2-VPCに到達します。実際、Linodeサーバーは、他のアプリケーションがない場合にプロキシとして使用するには高額になると思います。そのため、もちろんプロキシ機能とIPv6サポートを備えたサーバーを使用できます。