デュアルスタック Elastic Beanstalk ロードバランサーを設定する - AWS Elastic Beanstalk

デュアルスタック Elastic Beanstalk ロードバランサーを設定する

デュアルスタック設定されたロードバランサーを使用して、Elastic Beanstalk 環境が IPv4 プロトコルと IPv6 プロトコルの両方を提供できるようにします。負荷分散された環境を作成すると、インフラストラクチャはデフォルトで IPv4 になります。デュアルスタック設定で新しい環境を作成するか、既存の IPv4 のみの環境をデュアルスタックに更新するかを選択できます。

環境のロードバランサーが IPv6 と IPv4 の両方のネットワークトラフィックを処理できるようにするには、aws:elbv2:loadbalancer 名前空間の IpAddressType オプションをデュアルスタックに設定します。

注記

Elastic Beanstalk は、Application Load Balancer と Network Load Balancer に対してのみデュアルスタックプロトコをサポートします。Classic Load Balancer または単一インスタンス環境を使用する環境では、デュアルスタックはサポートされません。

Amazon VPC の前提条件

Elastic Beanstalk 環境でロードバランサーを設定する前に、まず Amazon VPC でいくつかの設定ステップを完了する必要があります。

  1. IPv6 CIDR ブロックを環境の VPC と関連付けます。

  2. IPv6 CIDR ブロックをすべての VPC のサブネットに関連付けます。

  3. (オプション) 環境がネットワークトラフィックを VPC 外のコンポーネントと交換する場合、VPC が通信できるネットワークを指定するルートテーブルがあります。この場合、VPC ルートテーブルを更新して IPv6 トラフィックを有効にする必要があります。

Amazon VPC コンソールまたは AWS CLI コマンドを使用して、これらの前提条件の設定を完了できます。以下のトピックでは、ユーザーをガイドして、詳細については、Amazon VPC ユーザーガイドAWS CLI コマンドリファレンスに導きます。

注記

VPC 設定が完了したら、ロードバランサーのデュアルスタックを設定する前に、変更が反映されるまで数分待ちます。デュアルスタック設定中に VPC またはサブネット設定エラーが発生した場合は、VPC 設定が伝播されるまで数分待ってから、デュアルスタック設定を再試行します。

コンソールを使用して VPC の前提条件を完了する

Amazon VPC ユーザーガイド」は、これらの前提条件のタスクを完了するための詳細な手順を提供します。

  1. 詳細については、「Amazon VPC ユーザーガイド」の「ステップ 1: IPv6 CIDR ブロックを VPC とサブネットに関連付ける」を参照してください。

    このステップでは、次の 2 つの手順を完了する必要があります。

    • IPv6 CIDR ブロックと VPC の関連付け

    • IPv6 CIDR ブロックを VPC サブネットと関連付けます。

  2. (オプション) 環境がネットワークトラフィックを VPC 外のコンポーネントと交換する場合、VPC が通信できるネットワークを指定するルートテーブルがあります。この場合、VPC ルートテーブルを更新して IPv6 トラフィックを有効にする必要があります。この設定を完了するには、「Amazon VPC ユーザーガイド」の「ステップ 2: ルートテーブルを更新する」を参照してください。

AWS CLI を使用して VPC の前提条件を完了する

AWS CLI を使用して、前提条件の設定を完了して検証できます。

  1. IPv6 CIDR ブロックを環境の VPC と関連付けます。

    1. associate-vpc-cidr-block コマンドを使用して、CIDR ブロックを VPC に関連付けます。

    2. describe-vpcs コマンドを使用して、VPC 設定を検証します。

    例 commands
    # Associate an Amazon-provided IPv6 CIDR block with your VPC aws ec2 associate-vpc-cidr-block \ --vpc-id vpc-12345678 \ --region us-east-1 \ --amazon-provided-ipv6-cidr-block # Verify the IPv6 CIDR block association aws ec2 describe-vpcs \ --vpc-ids vpc-12345678 \ --region us-east-1 \ --query 'Vpcs[0].Ipv6CidrBlockAssociationSet'
  2. IPv6 CIDR ブロックをすべての VPC のサブネットに関連付けます。

    1. associate-subnet-cidr-block コマンドを使用して、CIDR ブロックをサブネットに関連付けます。

    2. describe-subnets コマンドを使用して、サブネット設定を検証します。

    例 commands
    # List all subnets in your VPC aws ec2 describe-subnets \ --region us-east-1 \ --filters "Name=vpc-id,Values=vpc-12345678" \ --query 'Subnets[].{SubnetId:SubnetId,AvailabilityZone:AvailabilityZone}' # Associate IPv6 CIDR block with each subnet aws ec2 associate-subnet-cidr-block \ --subnet-id subnet-12345678 \ --region us-east-1 \ --ipv6-cidr-block 2001:db8::/64 # Verify IPv6 CIDR block association for all subnets aws ec2 describe-subnets \ --region us-east-1 \ --filters "Name=vpc-id,Values=vpc-12345678" \ --query 'Subnets[].{SubnetId:SubnetId,Ipv6CidrBlock:Ipv6CidrBlockAssociationSet[0].Ipv6CidrBlock}'
  3. (オプション) 環境がネットワークトラフィックを VPC 外のコンポーネントと交換する場合、VPC が通信できるネットワークを指定するルートテーブルがあります。この場合、VPC ルートテーブルを更新して IPv6 トラフィックを有効にする必要があります。

    1. create-route コマンドを使用して、VPC 内のルートテーブルにルートを追加します。

    2. describe-route-tables コマンドを使用して、ルートテーブルを検証します。

    例 commands
    # Add IPv6 route to Internet Gateway for public subnets aws ec2 create-route \ --route-table-id rtb-12345678 \ --destination-ipv6-cidr-block ::/0 \ --gateway-id igw-12345678 \ --region us-east-1 # Add IPv6 route to NAT Gateway for private subnets (if applicable) aws ec2 create-route \ --route-table-id rtb-87654321 \ --destination-ipv6-cidr-block ::/0 \ --nat-gateway-id nat-12345678 \ --region us-east-1 # Verify routes aws ec2 describe-route-tables \ --route-table-ids rtb-12345678 \ --region us-east-1 \ --query 'RouteTables[0].Routes'

Elastic Beanstalk ロードバランサーのデュアルスタックを設定する

環境に VPC の前提条件設定を行ったら、デュアルスタックオプションを使用してロードバランサーを設定し、IPv4 プロトコルと IPv6 プロトコルの両方を提供できます。Elastic Beanstalk コンソール、AWS CLI、.ebextensions の設定ファイル、および AWS SDK を使用して、デュアルスタックトラフィックを処理するようにロードバランサーを設定できます。

コンソールを使用する

Elastic Beanstalk コンソールを使用して、環境のロードバランサーのデュアルスタックを設定できます。

注記

この設定は、いくつかのポイントでのデータ伝播のタイミングによって異なります。ロードバランサーを設定し、変更をテストするときは、次のタイミング要件を考慮してください。

VPC の設定時間。Amazon VPC の前提条件 で説明されている VPC 設定が完了したら、以下の手順に従う前に、変更が反映されるまで数分待ちます。デュアルスタックのセットアップ中に VPC またはサブネットの設定エラーが発生した場合は、数分待ってから設定ステップを再試行します。

DNS 伝搬時間。IpAddressType オプションをデュアルスタックに設定したら、テストする前に変更が反映されるまで数分待ちます。Route 53 DNS の伝播が完了するまでに 1~2 分かかる場合があります。この間、IPv6 プロトコルを使用してリクエストを開始する場合、クライアントからアプリケーションへの通信をテストする際に問題が発生する可能性があります。

新しい環境の作成: デュアルスタックのサポート用にロードバランサーを設定するには
  1. Elastic Beanstalk コンソールを起動し、新しい環境を作成する手順を開始します。[サービスアクセスを設定する] ページで [サービスロール][EC2 インスタンスプロファイル] の必須フィールドを設定したら、この手順のステップに進み、ロードバランサーをデュアルスタック設定に設定します。開始方法の詳細については、「Elastic Beanstalk 環境の作成」を参照してください。

  2. [サービスアクセスを設定する] から [次へ] を選択します。

  3. [ネットワーク、データベース、タグをセットアップする] ページが表示されます。

    前のセクションで説明された Amazon VPC の前提条件 を完了した場合、必要な VPC とサブネットを既にセットアップしています。この場合、このステップとそのサブステップをスキップして、VPC を選択します。

    1. VPC とサブネットを設定するには、[VPC を作成する] を選択して VPC コンソールに移動します。「コンソールを使用して VPC の前提条件を完了する」のステップを実行してください。

    2. VPC 更新が伝播されるまで数分待ってから、Elastic Beanstalk コンソールに戻り、更新を選択して次のステップに進みます。

      残りのステップで VPC またはサブネット設定エラーが発生した場合は、VPC 設定が伝播されるまで数分待ってから、ステップを再試行してください。

  4. ネットワーク、データベース、タグの設定ページで、VPC ドロップダウンから IPv6 CIDR ブロックが関連付けられている値を選択します。

    VPC を選択すると、[インスタンスサブネット] に VPC サブネットが入力されます。

  5. 1 つ以上の [インスタンスサブネット] を選択し、[次へ] を選択します。

  6. インスタンストラフィックとスケーリングの設定ページの表示。

    ロードバランサーのネットワーク設定で、デュアルスタック (IPv4 と IPv6) に対して [有効にする] を選択します。

  7. ロードバランサータイプを選択します。Application Load BalancerNetwork Load Balancer は、いずれもデュアルスタックをサポートします。

  8. 現在のコンソールページで、他のロードバランサーオプションを引き続き設定できます。ロードバランサーのオプションと設定の詳細については、この章の他のトピックを参照してください。

  9. 環境の設定と作成を完了する手順に進みます。詳細については、「Elastic Beanstalk 環境の作成」を参照してください。

既存の環境: デュアルスタックのサポート用にロードバランサーを設定するには
  1. Elastic Beanstalk コンソールを開き、[Regions] (リージョン) リストで AWS リージョンを選択します。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [ネットワークとデータベース] 設定カテゴリで、[編集] を選択します。

  5. 前のセクションで説明された Amazon VPC の前提条件 を完了した場合、必要な VPC とサブネットを既にセットアップしています。この場合、このステップとそのサブステップをスキップして、VPC を選択します。

    1. VPC とサブネットを設定するには、[VPC を作成する] を選択して VPC コンソールに移動します。「コンソールを使用して VPC の前提条件を完了する」のステップを実行してください。

    2. VPC 更新が伝播されるまで数分待ってから、Elastic Beanstalk コンソールに戻り、更新を選択して次のステップに進みます。

      残りのステップで VPC またはサブネット設定エラーが発生した場合は、VPC 設定が伝播されるまで数分待ってから、ステップを再試行してください。

  6. [ネットワークとデータベース] ページで、VPC ドロップダウンから IPv6 CIDR ブロックが関連付けられている値を選択します。

    VPC を選択すると、[インスタンスサブネット] に VPC サブネットが入力されます。

  7. 1 つ以上の [インスタンスサブネット] を選択します。

  8. ページの最下部で [適用] を選択し変更を保存します。

  9. [Instance traffic and scaling] (インスタンスのトラフィックおよびスケーリング) 設定カテゴリで、[Edit] (編集) を選択します。

  10. ロードバランサーのネットワーク設定で、デュアルスタック (IPv4 と IPv6) に対して有効にするを選択します。

  11. ページの最下部で [適用] を選択し変更を保存します。

の使用AWS CLI

AWS コマンドラインインターフェイス (AWS CLI) を使用して、IPv6 と IPv4 の両方のネットワークトラフィックを処理するように環境のロードバランサーを設定できます。このセクションでは、aws:elbv2:loadbalancer 名前空間がある create-environment および update-environment コマンドの例を提供します。

注記

この設定は、いくつかのポイントでのデータ伝播のタイミングによって異なります。ロードバランサーを設定し、変更をテストするときは、次のタイミング要件を考慮してください。

VPC の設定時間。Amazon VPC の前提条件 で説明されている VPC 設定が完了したら、これらのコマンドを実行してロードバランサーをデュアルスタックに設定する前に、変更が反映されるまで数分待ちます。デュアルスタックのセットアップ中に VPC またはサブネットの設定エラーが発生した場合は、数分待ってからコマンドを再試行します。

DNS 伝搬時間。IpAddressType オプションをデュアルスタックに設定したら、テストする前に変更が反映されるまで数分待ちます。Route 53 DNS の伝播が完了するまでに 1~2 分かかる場合があります。この間、IPv6 プロトコルを使用してリクエストを開始する場合、クライアントからアプリケーションへの通信をテストする際に問題が発生する可能性があります。

例 デュアルスタック設定 (インラインの名前空間オプション) を使用した create-environment のもの
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.0 running Python 3.8" \ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \ Namespace=aws:elbv2:loadbalancer,OptionName=IpAddressType,Value=dualstack

別の方法として、options.jsonファイルを使用して、インラインで名前空間オプションを含めるのではなく、名前空間オプションを指定します。次のコマンド例は、update-environment コマンドを示しています。

例 デュアルスタック設定 (options.json ファイルの名前空間オプション) を使用した update-environment のもの
aws elasticbeanstalk update-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.0 running Python 3.8" \ --option-settings \ file://options.json
### example options.json ### [ { "Namespace": "aws:elbv2:loadbalancer", "OptionName": "IpAddressType", "Value": "dualstack" } ]

次の例では、既存の環境を更新して、IpAddressType オプションを IPv4 に設定します。

注記

この update-environment コマンド例は、環境設定をデュアルスタックから IPv4 にロールバックする必要がある場合に役立ちます。

例 IpAddressType を IPv4 に設定するための update-environment のもの
aws elasticbeanstalk update-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.0 running Python 3.8" \ --option-settings \ Namespace=aws:elbv2:loadbalancer,OptionName=IpAddressType,Value=ipv4

.ebextensions 設定ファイルを使用する

Elastic Beanstalk 設定ファイルを使用して、環境のロードバランサーが IPv6 と IPv4 の両方のネットワークトラフィックを処理できるようにします。aws:elbv2:loadbalancer 名前空間の IpAddressType オプションをデュアルスタックに設定します。

注記

この設定は、いくつかのポイントでのデータ伝播のタイミングによって異なります。ロードバランサーを設定し、変更をテストするときは、次のタイミング要件を考慮してください。

VPC の設定時間。Amazon VPC の前提条件 で説明されている VPC 設定が完了したら、.ebextensions 設定を適用する前に VPC の変更が反映されるまで数分待ってください。この設定中に VPC またはサブネットの設定エラーが発生した場合は、数分待ってから再試行します。

DNS 伝搬時間。IpAddressType オプションをデュアルスタックに設定したら、テストする前に変更が反映されるまで数分待ちます。Route 53 DNS の伝播が完了するまでに 1~2 分かかる場合があります。この間、IPv6 プロトコルを使用してリクエストを開始する場合、クライアントからアプリケーションへの通信をテストする際に問題が発生する可能性があります。

例 ロードバランサーデュアルスタック設定用の .ebextensions/options.config (短縮構文)
option_settings: aws:elbv2:loadbalancer: IpAddressType: dualstack
例 ロードバランサーデュアルスタック設定用の .ebextensions/options.config (標準構文)
option_settings: - namespace: aws:elbv2:loadbalancer option_name: IpAddressType value: dualstack

AWS SDK の使用

AWS SDK を使用してデュアルスタックを設定できます。前のセクションで説明した update-environment および create-environment AWS CLI コマンドと同様に、CreateEnvironment および UpdateEnvironment API アクションを使用できます。OptionSettings リクエストパラメータを使用して、aws:elbv2:loadbalancer 名前空間のオプションを指定します。

注記

この設定は、いくつかのポイントでのデータ伝播のタイミングによって異なります。ロードバランサーを設定し、変更をテストするときは、次のタイミング要件を考慮してください。

VPC の設定時間。Amazon VPC の前提条件 で説明されている VPC 設定が完了したら、プログラムを実行してロードバランサーをデュアルスタック用に設定する前に、変更が反映されるまで数分待ちます。デュアルスタック設定中に VPC またはサブネット設定エラーが発生した場合は、数分待ってから、デュアルスタック設定のプログラムの実行を再度試行してください。

DNS 伝搬時間。IpAddressType オプションをデュアルスタックに設定したら、テストする前に変更が反映されるまで数分待ちます。Route 53 DNS の伝播が完了するまでに 1~2 分かかる場合があります。この間、IPv6 プロトコルを使用してリクエストを開始する場合、クライアントからアプリケーションへの通信をテストする際に問題が発生する可能性があります。

トラブルシューティング

AI アシストによるトラブルシューティングのために Amazon Q Developer CLI を試す

Amazon Q Developer CLI は、環境の問題を迅速にトラブルシューティングするのに役立ちます。Q CLI は、環境ステータスのチェック、イベントの確認、ログの分析、および明確化のための質問を行うことでソリューションを提供します。詳細な情報と詳細なチュートリアルについては、「AWS ブログ」の「Amazon Q Developer CLI を使用した Elastic Beanstalk 環境のトラブルシューティング」を参照してください。

このセクションでは、ロードバランサーのデュアルスタック設定に関する問題をトラブルシューティングするためのガイダンスを提供します。

イベント: VPC vpc_id には IPv6 CIDR ブロックが設定されていません。デュアルスタックロードバランサーには IPv6 CIDR ブロックが必要です。デュアルスタックモードを使用する前に、IPv6 CIDR ブロックを VPC に関連付けてください。

VPC とすべてのサブネットには IPv6 CIDR ブロックが関連付けられている必要があります。これは、デュアルスタックのサポート用にロードバランサーを設定する前に完了する必要がある VPC 前提条件の 1 つです。このタスクを完了するための詳細については、このトピックで前述した「Amazon VPC の前提条件」を参照してください。

イベント: VPC vpc_id の 1 つ以上のサブネットに IPv6 CIDR ブロックが設定されていません。デュアルスタックロードバランサーとともに使用されるサブネットには、IPv6 CIDR ブロックが必要です。デュアルスタックモードを使用する前に、IPv6 CIDR ブロックをすべての必要なサブネットに関連付けてください。

VPC のすべてのサブネットには、IPv6 CIDR ブロックが関連付けられている必要があります。これは、デュアルスタックのサポート用にロードバランサーを設定する前に完了する必要がある VPC 前提条件の 1 つです。このタスクを完了するための詳細については、このトピックで前述した「Amazon VPC の前提条件」を参照してください。

エラー: IpAddressType オプションは、Application Load Balancer または Network Load Balancer を使用して設定された Elastic Beanstalk 環境にのみ適用されます。

このメッセージは、Elastic Beanstalk 環境が単一のインスタンス環境であるか、Classic Load Balancer を使用している可能性があることを示しています。Application Load Balancer または Network Load Balancer を使用して設定された環境のみが IpAddressType を設定できます。