

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 例: Amazon RDS を使用して VPC で Elastic Beanstalk を起動する
<a name="vpc-rds"></a>

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

インフラストラクチャは次の図と似ています。

![\[Amazon RDS を含む Elastic Beanstalk と VPC トポロジの図。\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vpc-rds-topo-ngw.png)


**注記**  
これまでアプリケーションで DB インスタンスを使用したことがない場合は、[テスト環境に DB インスタンスを追加](using-features.managing.db.md)し、両方に VPC 設定を追加する前に、[外部 DB インスタンスへの接続](AWSHowTo.RDS.md)を試みます。

## パブリックサブネットとプライベートサブネットでの VPC の作成
<a name="vpc-rds-create"></a>

[Amazon VPC コンソール](https://console.aws.amazon.com/vpc/)を使用して VPC を作成します。

**VPC を作成するには**

1. [Amazon VPC コンソール](https://console.aws.amazon.com/vpc/)にサインインします。

1. ナビゲーションペインで、[**VPC ダッシュボード**] を選択します。続いて、[**VPC の作成**] を選択します。

1. [**VPC with Public and Private Subnets(パブリックサブネットとプライベートサブネットを持つ VPC)**]、[**選択**] の順に選択します。  
![\[[パブリックとプライベート サブネットを持つ VPC]、[選択] の順に選択します。\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/Case2_Wizard_Page2.png)

1. Elastic Load Balancing ロードバランサーと Amazon EC2 インスタンスが通信できるようにするには、これらが同じアベイラビリティーゾーンにある必要があります。各 [**アベイラビリティーゾーン**] リストから同じアベイラビリティーゾーンを選択します。  
![\[プライベートおよびパブリックサブネットと同じアベイラビリティーゾーンを選択します。\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/Case2_Wizard_Confirmation2.png)

1. NAT ゲートウェイの Elastic IP アドレスを選択します。

1. **[Create VPC（VPC の作成）]** を選択します。

   ウィザードが、VPC、サブネット、インターネットゲートウェイの作成を開始します。また、メインルートテーブルを更新して、カスタムルートテーブルを作成します。最後に、ウィザードはパブリックサブネットで NAT ゲートウェイを作成します。
**注記**  
NAT ゲートウェイの代わりにパブリックサブネットで NATインスタンスを起動することを選択できます。詳細については、「Amazon VPC ユーザーガイド」の「[シナリオ 2: パブリックサブネットとプライベートサブネットを使用する VPC (NAT)](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html)」を参照してください。

1. VPC が正しく作成されると、VPC ID が発行されます。この値は次のステップで必要になります。VPC ID を表示するには、[Amazon VPC コンソール](https://console.aws.amazon.com/vpc/)の左ペインで **[VPC]** を選択します。  
![\[Amazon VPC コンソールに VPC ID が表示されます。\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vpc-id.png)

## DB サブネットグループを作成する
<a name="vpc-rds-subnet"></a>

VPC の DB サブネットグループは、バックエンド RDS DB インスタンス用に指定できるサブネットのコレクション (通常はプライベート) です。各 DB サブネットグループには、特定の AWS リージョンの各アベイラビリティーゾーンに少なくとも 1 つのサブネットが必要です。詳細については、「[VPC でサブネットを作成する](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)」を参照してください。

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

1. [Amazon RDS コンソール](https://console.aws.amazon.com/rds/)を開きます。

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

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

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

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

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

1. [**Add subnets (サブネットの追加)**] で、[**Add all the subnets related to this VPC (この VPC に関連するすべてのサブネットを追加)**] を選択します。  
![\[VPC に関連するすべてのサブネットを追加します。\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vpc-rds-addsubnets.png)

1. 完了したら、[**Create**] を選択します。

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

## Elastic Beanstalk にデプロイします
<a name="vpc-rds-create-env"></a>

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

### Elastic Beanstalk コンソールでデプロイする
<a name="vpc-rds-new-console"></a>

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 コンソール](https://console.aws.amazon.com/vpc/)で **[サブネット]** を選択します。

![\[VPC のサブネット ID\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vpc-subnets.png)


### AWS ツールキット、EB CLI AWS CLI、または API を使用したデプロイ
<a name="vpc-rds-new-options"></a>

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

オプション設定を更新するときに、少なくとも次を指定する必要があります。
+ **VPCId** – VPC の ID が含まれます。
+ **Subnets** – Auto Scaling グループサブネットの ID が含まれます。この例では、これはプライベートサブネットの ID です。
+ **ELBSubnets** – ロードバランサーのサブネットの ID が含まれます。この例では、これはパブリックサブネットの ID です。
+ **SecurityGroups** – セキュリティグループの ID が含まれます。
+ **DBSubnets** – DB サブネットの ID が含まれます。
**注記**  
DB サブネットを使用する場合は、VPC に追加のサブネットを作成して、 AWS リージョン内のすべてのアベイラビリティーゾーンをカバーする必要があります。

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

VPC 内で Elastic Beanstalk アプリケーションをデプロイするときに使用可能なオプション設定の例を次に示します。VPC オプション設定の詳細 (オプション設定の指定方法の例、デフォルト値、有効な値など) については、「[設定オプション](command-options.md)」に記載されている **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 サブネットを使用する場合は、 AWS VPC にリージョン内のすべてのアベイラビリティーゾーンをカバーするサブネットがあることを確認してください。