Amazon Web Services ブログ
IPv6 サポートの更新 – CloudFront、WAF、S3 Transfer Acceleration
先日のブログ「Amazon S3 で IPv6 をサポート」の続報として、今回は Amazon CloudFront、Amazon S3 Transfer Acceleration、AWS WAF と 50 か所以上に渡るすべての CloudFront エッジロケーションでも IPv6 サポートが利用可能になったことをお知らせします。AWS では、すべての自律システムネットワーク (ASN) で IPv6 を有効にするための段階的な移行プロセスを本日より開始し、今後数週間に渡りすべてのネットワークで拡張する予定です。
CloudFront IPv6 のサポート
各 Amazon CloudFront ディストリビューションごとに IPv6 サポートを有効にすることができます。IPv6 を使用して CloudFront エッジロケーションに接続する閲覧者とネットワークは自動的に IPv6 でコンテンツを取得します。IPv4 を使用して接続する場合は以前のように機能します。オリジンサーバーへの接続には IPv4 を使用します。
新たに作成したディストリビューションでは自動的に IPv6 が有効になります。既存のディストリビューションを変更するには [Enable IPv6] を有効にします。これはコンソールまたは CloudFront API から設定できます。
この新機能の重要事項については次をご覧ください。
- エイリアスレコード – ディストリビューションで IPv6 サポートを有効にすると、ディストリビューションの DNS エントリは AAAA レコードを含むものに更新されます。Amazon Route 53 とエイリアスレコードを使用してディストリビューションのドメインすべてまたは一部をマップしている場合、そのドメインに AAAA エイリアスを追加する必要があります。
- ログファイル – CloudFront アクセスログを有効にしている場合、IPv6 アドレスが c-ip フィールドで表示されるので、ログ処理システムがそれに対処できるようにしておいてください。
- 信頼された署名者 – 信頼された署名者と IP アドレスのホワイトリストを併せて使用している場合は、IP ホワイトリストと実際のコンテンツの IPv4/IPv6 ディストリビューションを備える、信頼された署名者 URL の IPv4 に限られたディストリビューションの使用を強くお勧めします。このモデルでは、IPv4 アドレスを使用して送信した署名リクエストにサインしたことで、コンテンツのリクエストがホワイトリストに載っていない別の IPv6 アドレスから届くといった問題を回避することができます。
- CloudFormation – CloudFormation サポートを準備中今回のリリースでは、CloudFormation テンプレートから作成したディストリビューションで IPv6 は有効になりません。既存のスタックを更新する場合、スタックで参照したディストリビューションの設定に変更はありません。
- AWS WAF – AWS WAF と CloudFront を併せて使用している場合は、IPv6 アドレスのホワイトリストまたはブラックリストで適切となるように WebACL と IP ルールセットを必ず更新してください。
- Forwarded ヘッダー – ディストリビューションで IPv6 を有効にする場合は、オリジンに渡した X-Forwarded-For ヘッダーに IPv6 アドレスが含まれているようにしてください。オリジンがこの形式のヘッダーを処理できるか確認してください。
詳しくは「Amazon CloudFront で IPv6 をサポート」をご覧ください。
AWS WAF IPv6 サポート
AWS WAF はアプリケーションレイヤーで発生する攻撃からアプリケーションを保護します (詳しくは「新機能 – AWS WAF」をご覧ください)。
AWS WAF が IPv4 アドレスまたは IPv6 アドレス経由で届くリクエストを調べられるようになりました。IPv6 と一致するウェブ ACL を作成することができます。詳しくは「IP Match Conditions の使用」をご覧ください。
既存の WAF 機能はすべて IPv6 に対応、そのパフォーマンスで目に見える変化はありません。IPv6 は WAF が収集し表示したサンプルリクエストで表示されます。
S3 Transfer Acceleration IPv6 サポート
この重要で新しい S3 機能が IPv6 をサポートするようになりました (詳しくは「AWS ストレージの更新 – Amazon S3 Transfer Acceleration + より多くのリージョンでさらに大きくなった Snowballs」をご覧ください)。アップロードに使用できるデュアルスタックのエンドポイントに簡単に切り替えることができます。次のように変更するだけです。
https://BUCKET.s3-accelerate.amazonaws.com
を
https://BUCKET.s3-accelerate.dualstack.amazonaws.com
クライアントオブジェクトの作成とデュアルスタック転送の有効を可能にする AWS SDK for Java 使用コードは次の通りです。
AmazonS3Client s3 = new AmazonS3Client();
s3.setS3ClientOptions(S3ClientOptions.builder().enableDualstack().setAccelerateModeEnabled(true).build());
大半のアプリケーションとネットワークスタックは自動的に IPv6 の使用を好む傾向があるので、これ以上の設定は必要ありません。IPv6 アドレスと併せて使用する上で機能動作に問題がないことを確認するため、パケットの IAM ポリシーを見直すことをお勧めします。詳しくは「IPv6 を使用して Amazon S3 にリクエストを送信」をご覧ください。
テストを忘れずに
AWS リージョンへの IPv6 接続に制限があったり存在しない場合は、代わりに IPv4 が使用されます。以前公開したブログでも触れましたが、IPv6 をサポートするようにクライアントシステムを設定することができます。ただし、その場合は IPv6 パケットをインターネットにルートするように設定していないネットワークに接続する必要があります。こうした理由から、IPv6 に切り替える前に何らかのアプリケーションレベルで行うエンドツーエンド接続のテストを行うことをお勧めします。
— Jeff;