AWS Elastic Beanstalk
開発者ガイド

例: Amazon RDS を使用して VPC で Elastic Beanstalk を起動する

このセクションでは、NAT ゲートウェイを使用して VPC で Amazon RDS によって Elastic Beanstalk アプリケーションをデプロイするタスクについて説明します。インフラストラクチャは次の図と似ています。

 Amazon RDS での Elastic Beanstalk と VPC トポロジ

注記

これまでアプリケーションで DB インスタンスを使用したことがない場合は、テスト環境に DB インスタンスを追加し、両方に VPC 設定を追加する前に、外部 DB インスタンスへの接続を試みます。

パブリックサブネットとプライベートサブネットでの VPC の作成

Amazon VPC コンソールを使用して VPC を作成します。

VPC を作成するには

  1. [Amazon VPC console] にサインインします。

  2. ナビゲーションペインで、[VPC Dashboard] を選択します。続いて、[Create VPC] を選択します。

  3. [VPC with Public and Private Subnets(パブリックサブネットとプライベートサブネットを持つ VPC)]、[選択] の順に選択します。

     [パブリックとプライベート サブネットを持つ VPC]、[選択] の順に選択します。
  4. Elastic Load Balancing ロードバランサーと Amazon EC2 インスタンスが通信できるようにするには、これらが同じアベイラビリティーゾーンにある必要があります。各 [Availability Zone] リストから同じアベイラビリティーゾーンを選択します。

     プライベートおよびパブリックサブネットと同じアベイラビリティーゾーンを選択します。
  5. NAT ゲートウェイの Elastic IP アドレスを選択します。

  6. [VPC の作成] を選択します。

    ウィザードが、VPC、サブネット、インターネットゲートウェイの作成を開始します。また、メインルートテーブルを更新して、カスタムルートテーブルを作成します。最後に、ウィザードはパブリックサブネットで NAT ゲートウェイを作成します。

    注記

    NAT ゲートウェイの代わりにパブリックサブネットで NATインスタンスを起動することを選択できます。 詳細については、Amazon VPC ユーザーガイドの「シナリオ 2: パブリックサブネットとプライベートサブネットを持つ VPC (NAT) 」を参照してください。

  7. VPC が正しく作成されると、VPC ID が発行されます。この値は次のステップで必要になります。VPC ID を表示するには、[Amazon VPC console] の左ペインで [Your VPCs] を選択します。

     Amazon VPC コンソールに VPC ID が表示されます。

DB サブネットグループを作成する

VPC の DB サブネットグループは、バックエンド RDS DB インスタンス用に指定できるサブネットのコレクション (通常はプライベート) です。各 DB サブネットグループには、特定の AWS リージョン内のアベイラビリティーゾーンごとに 1 つ以上のサブネットを指定する必要があります。詳細については、「VPC でサブネットを作成する」を参照してください。

DB サブネットグループを作成する

  1. Amazon RDS コンソールを開きます。

  2. [Navigation] ペインで、[Subnet groups] を選択します。

  3. [Create DB Subnet Group] を選択します。

  4. [Name (名前)] を選択し、DB サブネットグループの名前を入力します。

  5. [Description (説明)] を選択して、DB サブネットグループの説明を入力します。

  6. [VPC] で、作成した VPC の ID を選択します。

  7. [Add subnets (サブネットの追加)] で、[Add all the subnets related to this VPC (この VPC に関連するすべてのサブネットを追加)] を選択します。

     VPC に関連するすべてのサブネットを追加します。
  8. 完了したら、[Create] を選択します。

    Amazon RDS コンソールの DB サブネットグループのリストに新しい DB サブネットグループが表示されます。その DB サブネットグループを選択すると、そのグループに関連付けられているすべてのサブネットなどの詳細情報が、ページの下部にある詳細ペインに表示されます。

Elastic Beanstalk へのデプロイ

VPC を設定したら、VPC 内部に環境を作成して、アプリケーションを Elastic Beanstalk にデプロイできます。これを行うには、Elastic Beanstalk コンソール を使用するか、AWS ツールキット、AWS CLI、EB CLI、または Elastic Beanstalk API を使用できます。Elastic Beanstalk コンソール を使用すると、.war ファイルまたは .zip ファイルをアップロードして、ウィザード内で VPC 設定を選択するだけで済みます。その後、Elastic Beanstalk は VPC 内に環境を作成し、アプリケーションをデプロイします。または、AWS ツールキット、AWS CLI EB CLI、Elastic Beanstalk API を使用してアプリケーションをデプロイできます。その場合は、設定ファイルで VPC オプション設定を定義して、このファイルをソースバンドルと共にデプロイする必要があります。このトピックでは、両方の方法の手順を説明します。

Elastic Beanstalk コンソールでデプロイする

Elastic Beanstalk コンソール コンソールに、VPC 内に新しい環境を作成する手順が表示されます。.war ファイル (Java アプリケーション)、または .zip ファイル (その他すべてのアプリケーション) を提供する必要があります。Elastic Beanstalk 環境ウィザードの [VPC 設定] ページで、次の選択を行う必要があります。

VPC

VPC を選択します。

VPC セキュリティグループ

上の手順で作成したインスタンスセキュリティグループを選択します。

ELB の可視性

ロードバランサーを公開する場合は External を選択し、ロードバランサーを VPC 内でのみ使用できるようにする場合は Internal を選択します。

ロードバランサーと EC2 インスタンスのサブネットを選択します。必ず、ロードバランサーのパブリックサブネットと Amazon EC2 インスタンスのプライベートサブネットを選択します。デフォルトでは、VPC 作成ウィザードにより 10.0.0.0/24 にパブリックサブネットが、10.0.1.0/24 にプライベートサブネットが作成されます。

サブネット ID を表示するには、[Amazon VPC console] で [Subnets] を選択します。

 VPC のサブネット ID

AWS ツールキット、EB CLI、AWS CLI、または API でデプロイする

AWS ツールキット、EB CLI、AWS CLI、または API を使用してアプリケーションを Elastic Beanstalk にデプロイする場合は、ファイルで VPC オプション設定を指定して、ソースバンドルと一緒にデプロイできます。詳細については、「設定ファイル (.ebextensions) による高度な環境のカスタマイズ」を参照してください。

オプション設定を更新するときに、少なくとも次を指定する必要があります。

  • VPCId – VPC の ID が含まれます。

  • [サブネット] – Auto Scaling グループのサブネット ID が含まれます。この例では、これはプライベートサブネットの ID です。

  • ELBSubnets – Load Balancing のサブネットの ID が含まれます。この例では、これはパブリックサブネットの ID です。

  • [SecurityGroups] – セキュリティグループの ID が含まれます。

  • DBSubnets – DB サブネットの ID が含まれます。

    注記

    DB サブネットを使用する場合は、VPC で追加のサブネットを作成し、AWS リージョン内のすべてのアベイラビリティーゾーンを対象にする必要があります。

オプションで、次の情報を指定することもできます。

  • ELBScheme – VPC 外部から Elastic Beanstalk アプリケーションにアクセスできないようにするために VPC 内に内部ロードバランサーを作成する場合は、internal を指定します。

VPC 内で Elastic Beanstalk アプリケーションをデプロイするときに使用可能なオプション設定の例を次に示します。VPC オプション設定の詳細(オプション設定の指定方法の例、デフォルト値、有効な値など)については、「設定オプション」に記載されている aws:ec2:vpc 名前空間の表を参照してください。

option_settings: - namespace: aws:autoscaling:launchconfiguration option_name: EC2KeyName value: ec2keypair - namespace: aws:ec2:vpc option_name: VPCId value: vpc-170647c - namespace: aws:ec2:vpc option_name: Subnets value: subnet-4f195024 - namespace: aws:ec2:vpc option_name: ELBSubnets value: subnet-fe064f95 - namespace: aws:ec2:vpc option_name: DBSubnets value: subnet-fg148g78 - namespace: aws:autoscaling:launchconfiguration option_name: InstanceType value: m1.small - namespace: aws:autoscaling:launchconfiguration option_name: SecurityGroups value: sg-7f1ef110

注記

DB サブネットを使用する場合は、VPC にサブネットが含まれ、AWS リージョン内のすべてのアベイラビリティーゾーンがそのサブネットの対象になっていることを確認してください。