

# チュートリアル: DB インスタンスで使用する VPC を作成する (IPv4 専用)
<a name="CHAP_Tutorials.WebServerDB.CreateVPC"></a>

一般的なシナリオには、Amazon VPC サービスに基づく仮想プライベートクラウド (VPC) 内の DB インスタンスが含まれます。この VPC は、同じ VPC で実行しているウェブサーバーとデータを共有します。このチュートリアルでは、このシナリオの VPC を作成します。

以下の図に、このシナリオを示しています。その他のシナリオについては、[VPC の DB インスタンスにアクセスするシナリオ](USER_VPC.Scenarios.md) を参照してください。

![\[単一の VPC のシナリオ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png)


DB インスタンスは、ウェブサーバーからのみ使用可能で、パブリックインターネットからは使用できないようにする必要があります。したがって、パブリックサブネットとプライベートサブネットを持つ VPC を作成します。ウェブサーバーはパブリックサブネットでホストされることで、パブリックインターネットにアクセスできます。DB インスタンスはプライベートサブネットでホストされます。ウェブサーバーは、同じ VPC 内でホストされているため、DB インスタンスに接続できます。ただし、DB インスタンスはパブリックインターネットからは使用できないため、セキュリティが向上します。

このチュートリアルでは、別のアベイラビリティーゾーンに追加のパブリックサブネットとプライベートサブネットを設定します。これらのサブネットはチュートリアルでは使用されません。RDS DB サブネットグループは、少なくとも 2 つのアベイラビリティーゾーン内のサブネットを必要とします。サブネットが追加されたことで、将来的にマルチ AZ DB インスタンス配置に簡単に切り替えることができるようになります。

このチュートリアルでは、Amazon RDS DB インスタンス 用に VPC を設定する方法について説明します。この VPC シナリオ用のウェブサーバーを作成する方法を示すチュートリアルについては、「[チュートリアル: ウェブサーバーと Amazon RDS DB インスタンスを作成する](TUT_WebAppWithRDS.md)」を参照してください。Amazon VPC の詳細については、[Amazon VPC 入門ガイド](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/)および[Amazon VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/)を参照してください。

**ヒント**  
DB インスタンスを作成すると自動的に、Amazon EC2 インスタンスと DB インスタンス間のネットワーク接続を設定できるようになります。ネットワーク構成は、このチュートリアルで説明したものと似ています。詳細については、「[EC2 インスタンスとの自動ネットワーク接続を設定する](USER_CreateDBInstance.md#USER_CreateDBInstance.Prerequisites.VPC.Automatic)」を参照してください。

## プライベートサブネットおよびパブリックサブネットを持つ VPC を作成する
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.VPCAndSubnets"></a>

以下の手順で、パブリックサブネットとプライベートサブネットを持つ VPC を作成します。

**VPC とサブネットを作成するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

1. AWS マネジメントコンソール の右上隅で、VPC を作成するリージョンを選択します。この例では、米国西部 (オレゴン) リージョンを使用します。

1. 左上隅の **[VPC dashboard]** (VPC ダッシュボード) を選択します。VPC の作成を開始するには、**[Create VPC]** (VPC の作成) を選択します。

1. **[VPC Settings]** (VPC 設定) の **[Resources to create]** (作成するリソース) で、**[VPC and more]** (VPC など) を選択します。

1. **[VPC settings]** (VPC 設定) で、これらの値を設定します。
   + **[Name tag auto-generation]** (ネームタグ自動生成) – **tutorial**
   + **[IPv4 CIDR block]** (IPv4 CIDR ブロック) – **10.0.0.0/16**
   + **[IPv6 CIDR block]** (IPv6 CIDR ブロック) – **[No IPv6 CIDR block]** (IPv6 CIDR ブロックなし)
   + **[Tenancy] **(テナンシー) – **デフォルト**
   + **[Number of Availability Zones (AZs)]** (アベイラビリティーゾーンの数 (AZ)) – **2**
   + **[Customize AZs]** (AZ をカスタマイズする) – デフォルト値を維持します。
   + **[Number of public subnet]** (パブリックサブネット数) – **2**
   + **[Number of private subnets]** (プライベートサブネット数) – **2**
   + **[Customize subnets CIDR blocks]** (サブネット CIDR ブロックをカスタマイズ) — デフォルト値を維持します。
   + **[NAT gateways (\$1)]** (NAT ゲートウェイ (\$1)) – **なし**
   + **[VPC endpoints]** (VPC エンドポイント) – **なし**
   + **[DNS options]** (DNS オプション) — デフォルト値を維持します。
**注記**  
Amazon RDS では、マルチ AZ DB インスタンス配置をサポートするために、2 つの異なるアベイラビリティーゾーン内のサブネットを少なくとも 2 つ含んでいる必要があります。このチュートリアルではシングル AZ 配置を作成しますが、この要件により将来的に マルチ AZ DB インスタンス配備に簡単に変換できます。

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

## パブリックウェブサーバーの VPC セキュリティグループを作成する
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupEC2"></a>

次に、パブリックアクセスのためのセキュリティグループを作成します。VPC 内のパブリック EC2 インスタンスに接続するには、インバウンドルールを VPC セキュリティグループに追加します。これにより、インターネットからのトラフィックを接続できるようになります。

**VPC セキュリティグループを作成するには**

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

1. [**VPC ダッシュボード**]、[**セキュリティグループ**]、[**セキュリティグループの作成**] の順に選択します。

1. [**セキュリティグループの作成**] ページで、以下の値を設定します。
   + **セキュリティグループ名:** **tutorial-securitygroup**
   + **説明:** **Tutorial Security Group**
   + **[VPC ID]**: 前に作成した VPC を選択します (例: **[vpc-*identifier* (tutorial-vpc)]**)。

1. インバウンドルールをセキュリティグループに追加します。

   1. Secure Shell (SSH) を使用して VPC の EC2 インスタンスへの接続に使用する IP アドレスを決定します。パブリック IP アドレスを決定するには、別のブラウザウィンドウまたはタブで、[https://checkip.amazonaws.com](https://checkip.amazonaws.com) のサービスを使用できます。IP アドレスの例は `203.0.113.25/32` です。

      多くの場合、インターネットサービスプロバイダー (ISP) 経由、またはファイアウォールの内側から静的 IP アドレスなしで接続することがあります。この場合は、クライアントコンピュータが使用する IP アドレスの範囲を検索します。
**警告**  
SSH アクセスに `0.0.0.0/0` を使用すると、すべての IP アドレスが SSH を使ってパブリックインスタンスにアクセスできるようになります。この方法は、テスト環境で短時間なら許容できますが、実稼働環境では安全ではありません。実稼働環境では、特定の IP アドレスまたは特定のアドレス範囲にのみ、SSH を使ったインスタンスへのアクセスを限定します。

   1. [**インバウンドルール**] セクションで、[**ルールの追加**] を選択します。

   1. 新しいインバウンドルールに次の値を設定して、Amazon EC2 インスタンスへの SSH アクセスを許可します。こうすることで、Amazon EC2 インスタンスに接続して、ウェブサーバーなどのユーティリティをインストールできます。また、EC2 インスタンスに接続して、ウェブサーバー用のコンテンツをアップロードします。
      + **タイプ:** **SSH**
      + **ソース:** ステップ a で指定した IP アドレスまたはアドレス範囲 (**203.0.113.25/32** など)

   1. [**ルールの追加**] を選択します。

   1. 新しいインバウンドルールに次の値を設定して、ウェブサーバーに HTTP へのアクセスを許可します。
      + **型:** **HTTP**
      + **ソース:** **0.0.0.0/0**

1. セキュリティグループを作成するには、**[Create security group]** (セキュリティグループの作成) を選択します。

   セキュリティグループ ID を書き留めます。このチュートリアルで後に必要になります。

## プライベート DB インスタンスの VPC セキュリティグループを作成する
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB"></a>

DB インスタンスをプライベートのままにするには、プライベートアクセス用の第 2 のセキュリティグループを作成します。VPC 内のプライベート DB インスタンスに接続するには、ウェブサーバーからのトラフィックのみを許可するインバウンドルールを VPC セキュリティグループに追加します。

**VPC セキュリティグループを作成するには**

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

1. [**VPC ダッシュボード**]、[**セキュリティグループ**]、[**セキュリティグループの作成**] の順に選択します。

1. [**セキュリティグループの作成**] ページで、以下の値を設定します。
   + **セキュリティグループ名:** **tutorial-db-securitygroup**
   + **説明:** **Tutorial DB Instance Security Group**
   + **[VPC ID]**: 前に作成した VPC を選択します (例: **[vpc-*identifier* (tutorial-vpc)]**)。

1. インバウンドルールをセキュリティグループに追加します。

   1. [**インバウンドルール**] セクションで、[**ルールの追加**] を選択します。

   1. 新しいインバウンドルールに次の値を設定して、Amazon EC2 インスタンスからポート 3306 への MySQL トラフィックを許可します。これを実行すると、ウェブサーバーから DB インスタンスに接続できます。そうすることで、ウェブアプリケーションからのデータをデータベースに保存および取得できるようになります。
      + **型:** **MySQL/Aurora**
      + **[Source]** (ソース): このチュートリアルで以前に作成した **tutorial-securitygroup ** セキュリティグループの ID (例: **sg-9edd5cfb**)。

1. セキュリティグループを作成するには、**[Create security group]** (セキュリティグループの作成) を選択します。

## DB サブネットグループを作成する
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.DBSubnetGroup"></a>

*DB サブネットグループ*は VPC に作成するサブネットのコレクションで、DB インスタンス用に指定します。DB サブネットグループでは、DB インスタンスの作成時に特定の VPC を指定することができます。

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

1. VPC 内のデータベースのプライベートサブネットを特定します。

   1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

   1. **[VPC Dashboard]** (VPC ダッシュボード) を選択してから、**[Subnets]** (サブネット) を選択します。

   1. **tutorial-subnet-private1-us-west-2a** と **tutorial-subnet-private2-us-west-2b** という名前のサブネット ID に注意してください。

      DB サブネットグループを作成するときに、サブネット ID が必要です。

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

   Amazon VPC コンソールではなく、Amazon RDS コンソールに接続してください。

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

1. **[Create DB subnet group]** (DB サブネットグループの作成) を選択します。

1. [**DB サブネットグループを作成する**] ページで、[**サブネットグループの詳細**] に値を設定します。
   + **名前:** **tutorial-db-subnet-group**
   + **説明:** **Tutorial DB Subnet Group**
   + **VPC:** **tutorial-vpc (vpc-*identifier*)** 

1. [**サブネットの追加**] セクションで、[**アベイラビリティーゾーン**] と [**サブネット**] を選択します。

   このチュートリアルでは、**[Availability Zones]** (アベイラビリティーゾーン) として **[us-west-2a]** と **[us-west-2b]** を選択します。**[Subnets]** (サブネット) では、前のステップで特定したプライベートサブネットを選択します。

1. **[作成]** を選択します。

   RDS コンソールの DB サブネットグループリストに新しい DB サブネットグループが表示されます。DB サブネットグループを選択すると、ウィンドウ下部の詳細ペインに、詳細を表示することができます。これらの詳細には、グループに関連付けられているすべてのサブネットが含まれます。

**注記**  
この VPC を作成して [チュートリアル: ウェブサーバーと Amazon RDS DB インスタンスを作成する](TUT_WebAppWithRDS.md) を完了した場合は、[「Amazon RDS DB インスタンスの作成」](CHAP_Tutorials.WebServerDB.CreateDBInstance.md) の手順に従って DB インスタンスを作成します 。

## VPC の削除
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.Delete"></a>

このチュートリアルの VPC およびその他のリソースを作成後、不要になった場合は、削除できます。

**注記**  
このチュートリアルで作成した VPC にリソースを追加した場合は、VPC を削除する前にこれらを削除しなければならない場合があります。例えば、これらのリソースには Amazon EC2 インスタンスや Amazon RDS DB インスタンス が含まれる場合があります。詳細については、「*Amazon VPC ユーザーガイド*」の「[VPC の削除](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting)」を参照してください。

**VPC と関連リソースを削除する方法**

1. DB サブネットグループを削除する。

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

   1. [ナビゲーション] ペインで、[**サブネットグループ**] を選択します。

   1. 削除する DB サブネットグループを選択します。(例: **tutorial-db-subnet-group**) 

   1. [**Delete**] (削除) を選択してから、確認ウィンドウの [**Delete**] (削除) を選択します。

1. VPC ID を書き留める。

   1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

   1. [**VPC ダッシュボード**] を選択してから、[**VPC**] を選択します。

   1. リストで、作成した VPC を特定します。(例: **tutorial-vpc**)

   1. 作成した VPC の **[VPC ID]** をメモします。後続のステップで VPC ID が必要になります。

1. セキュリティグループを削除する。

   1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

   1. [**VPC Dashboard**] (VPC ダッシュボード) を選択してから、[**Security Groups**] (セキュリティグループ) を選択します。

   1. Amazon RDS DB インスタンスのセキュリティグループを選択します。(例: **tutorial-db-securitygroup**)

   1. **[Actions]** (アクション) で、**[Delete security groups]** (セキュリティグループの削除) を選択してから、確認ページで **[Delete]** (削除) を選択します。

   1. [**Security Groups**] (セキュリティグループ) ページで、Amazon EC2 インスタンスのセキュリティグループを選択します。(例: **tutorial-securitygroup**)

   1. **[Actions]** (アクション) で、**[Delete security groups]** (セキュリティグループの削除) を選択してから、確認ページで **[Delete]** (削除) を選択します。

1. VPC を削除する。

   1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

   1. [**VPC Dashboard**] (VPC ダッシュボード) を選択してから、[**VPC**] を選択します。

   1. 削除する VPC を選択します。(例: **tutorial-vpc**)

   1. [**アクション**] で、[**VPC の削除**] を選択します。

      確認ページには、VPC に関連付けられたサブネットを含め、削除される VPC に関連付けられているその他のリソースが表示されます。

   1. 確認ページで、「**delete**」を入力してから、[**Delete**] (削除) を選択します。