チュートリアル: DB インスタンス用の Amazon VPC を作成する
Amazon VPC 内の DB インスタンスは一般的なシナリオに含まれていて、同じ VPC で実行しているウェブサーバーとデータを共有します。このチュートリアルでは、このシナリオの VPC を作成します。
以下の図に、このシナリオを示しています。その他のシナリオについては、VPC の DB インスタンスにアクセスするシナリオ を参照してください。

DB インスタンスはウェブサーバーでのみ必要で、パブリックインターネットには必要ないため、VPC をパブリックサブネットおよびプライベートサブネットの両方で作成します。ウェブサーバーはパブリックサブネットでホストされることで、パブリックインターネットにアクセスできます。DB インスタンスはプライベートサブネットでホストされます。ウェブサーバーは同じ VPC 内でホストされるため、DB インスタンスに接続できます。しかし、DB インスタンスはパブリックインターネットでは使用できないため、セキュリティがより強固です。
このチュートリアルでは、Amazon RDS DB インスタンス 用に VPC を設定する方法について説明します。Amazon VPC の詳細については、「Amazon VPC 入門ガイド」と「Amazon VPC ユーザーガイド」を参照してください。
この VPC シナリオ用のウェブサーバーを作成する方法を示すチュートリアルについては、「チュートリアル: ウェブサーバーと Amazon RDS DB インスタンスを作成する」を参照してください。
プライベートサブネットおよびパブリックサブネットを持つ VPC を作成する
以下の手順で、パブリックサブネットとプライベートサブネットを持つ VPC を作成します。
VPC とサブネットを作成するには
-
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
AWS マネジメントコンソールの右上隅で、VPC を作成するリージョンを選択します。この例では、米国西部 (オレゴン) リージョンを使用します。
-
左上隅の [VPC Dashboard] を選択します。VPC の作成を開始するには、[Start VPC Wizard (VPC ウィザードの起動)] を選択します。
-
[Step 1: Select a VPC Configuration] ページで [VPC with Public and Private Subnets] を選択し、[Select] を選択します。
-
[Step 2: VPC with Public and Private Subnets] ページで、次の値を設定します。
-
[IPv4 CIDR ブロック:]
10.0.0.0/16
-
[IPv6 CIDR ブロック:] IPv6 CIDR ブロックなし
-
VPC 名:
tutorial-vpc
-
[パブリックサブネットの IPv4 CIDR:]
10.0.0.0/24
-
アベイラビリティーゾーン:
us-west-2a
-
パブリックサブネット名:
Tutorial public
-
[プライベートサブネットの IPv4 CIDR:]
10.0.1.0/24
-
アベイラビリティーゾーン:
us-west-2a
-
プライベートサブネット名:
Tutorial Private 1
-
インスタンスタイプ:
t2.small
重要 コンソールに [インスタンスタイプ] ボックスが表示されない場合は、[Use a NAT instance instead] を選択します。このリンクは右側にあります。
注記 t2.small インスタンスタイプが表示されていない場合は、別のインスタンスタイプを選択できます。
-
キーペア名:
No key pair
-
[サービスエンドポイント:] このフィールドはスキップします。
-
DNS ホスト名を有効化:
Yes
-
ハードウェアのテナンシー:
Default
-
-
完了したら、[Create VPC] を選択します。
追加のサブネットの作成
VPC で使用する DB インスタンスの DB サブネットグループを作成するには、利用可能な 2 つのプライベートサブネットまたは 2 つのパブリックサブネットが必要です。このチュートリアルの DB インスタンスはプライベートであるため、VPC に 2 つめのプライベートサブネットを追加します。
追加のサブネットを作成するには
-
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
2 つめのプライベートサブネットを VPC に追加するには、[VPC ダッシュボード]、[サブネット]、[サブネットの作成] の順に選択します。
-
[サブネットの作成] ページで、以下の値を設定します。
-
名前タグ:
Tutorial private 2
-
VPC: 前のステップで作成した VPC を選択します(例:
vpc-
)。identifier
tutorial-vpc -
アベイラビリティーゾーン:
us-west-2b
注記 第 1 のプライベートサブネットに選んだものとは別のアベイラビリティーゾーンを選択します。
-
[IPv4 CIDR ブロック:]
10.0.2.0/24
-
-
完了したら、[作成] を選択します。次に、確認ページで [閉じる] を選択します。
-
作成した 2 番目のプライベートサブネットが最初のプライベートサブネットと同じルートテーブルを使用するようにするには、以下の手順を実行します。
-
[VPC ダッシュボード]、[サブネット] の順に選択し、VPC に作成した最初のプライベートサブネット
Tutorial private 1
を選択します。 -
[ルートテーブル] タブを選択し、[ルートテーブル] の値をメモします (たとえば
rtb-98b613fd
など)。 -
サブネットリストから第 1 のプライベートサブネットの選択を外します。
-
サブネットのリストで、第 2 のプライベートサブネット
Tutorial private 2
を選択し、[ルートテーブル] を選択します。 -
現在のルートテーブルが第 1 のプライベートサブネットと同じルートテーブルではない場合は、[Edit route table association (ルートテーブルの関連付けの編集)] を選択します。[ルートテーブル ID] で、前にメモしたルートテーブル (
rtb-98b613fd
など) を選択します。次に、選択を保存するには [保存] を選択します。
-
パブリックウェブサーバーの VPC セキュリティグループを作成する
次に、パブリックアクセスのためのセキュリティグループを作成します。VPC 内のパブリックインスタンスに接続するには、インターネットから接続するトラフィックを許可するインバウンドルールを VPC セキュリティグループに追加します。
VPC セキュリティグループを作成するには
-
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
[VPC ダッシュボード]、[セキュリティグループ]、[セキュリティグループの作成] の順に選択します。
-
[セキュリティグループの作成] ページで、以下の値を設定します。
-
セキュリティグループ名:
tutorial-securitygroup
-
説明:
Tutorial Security Group
-
VPC: 先に作成した VPC を選択します (例:
vpc-
)。identifier
(tutorial-vpc)
-
-
インバウンドルールをセキュリティグループに追加します。
-
VPC のインスタンスへの接続に使用する IP アドレスを決定します。パブリック IP アドレスを決定するには、別のブラウザウィンドウまたはタブで、https://checkip.amazonaws.com
のサービスを使用できます。IP アドレスの例は 203.0.113.25/32
です。インターネットサービスプロバイダー (ISP) 経由で、またはファイアウォールの内側から静的 IP アドレスなしで接続する場合は、クライアントコンピューターで使用されている IP アドレスの範囲を見つける必要があります。
警告 0.0.0.0/0
を使用すると、すべての IP アドレスがパブリックインスタンスにアクセスできます。この方法は、テスト環境で短時間なら許容できますが、実稼働環境では安全ではありません。実稼働環境では、特定の IP アドレスまたは特定のアドレス範囲にのみ、インスタンスへのアクセスを限定します。 -
[インバウンドルール] セクションで、[ルールの追加] を選択します。
-
新しいインバウンドルールに次の値を設定して、EC2 インスタンスへの Secure Shell (SSH) アクセスを許可します。こうすることで、EC2 インスタンスに接続してウェブサーバーや他のユーティリティをインストールし、コンテンツをウェブサーバーにアップロードできます。
-
タイプ:
SSH
-
ソース: ステップ a で指定した IP アドレスまたはアドレス範囲 (
203.0.113.25/32
など)
-
-
[Add rule] を選択します。
-
新しいインバウンドルールに次の値を設定して、ウェブサーバーに HTTP へのアクセスを許可します。
-
タイプ:
HTTP
-
ソース:
0.0.0.0/0
-
-
-
セキュリティグループを作成するには、[セキュリティグループの作成] を選択します。
セキュリティグループ ID を書き留めます。このチュートリアルで後に必要になります。
プライベート DB インスタンスの VPC セキュリティグループを作成する
DB インスタンスをプライベートのままにするには、プライベートアクセス用の第 2 のセキュリティグループを作成します。VPC 内の専用インスタンスに接続するには、ウェブサーバーからのみトラフィックを許可するインバウンドルールを VPC セキュリティグループに追加します。
VPC セキュリティグループを作成するには
-
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
[VPC ダッシュボード]、[セキュリティグループ]、[セキュリティグループの作成] の順に選択します。
-
[セキュリティグループの作成] ページで、以下の値を設定します。
-
セキュリティグループ名:
tutorial-db-securitygroup
-
説明:
Tutorial DB Instance Security Group
-
VPC: 先に作成した VPC を選択します (例:
vpc-
)。identifier
(tutorial-vpc)
-
-
インバウンドルールをセキュリティグループに追加します。
-
[インバウンドルール] セクションで、[ルールの追加] を選択します。
-
新しいインバウンドルールに次の値を設定して、EC2 インスタンスからポート 3306 への MySQL トラフィックを許可します。こうすることで、ウェブサーバーから DB インスタンスに接続して、ウェブアプリケーションからのデータをデータベースに保存して取得できます。
-
タイプ:
MySQL/Aurora
-
Source: このチュートリアルで以前に作成した
tutorial-securitygroup
セキュリティグループの ID (例:sg-9edd5cfb
)。
-
-
-
セキュリティグループを作成するには、[セキュリティグループの作成] を選択します。
DB サブネットグループを作成する
DB サブネットグループは VPC に作成するサブネットのコレクションで、DB インスタンス用に指定します。DB サブネットグループでは、DB インスタンスの作成時に特定の VPC を指定することができます。
DB サブネットグループを作成する方法
-
https://console.aws.amazon.com/rds/
にある Amazon RDS コンソールを開きます。 注記 Amazon VPC コンソールではなく、Amazon RDS コンソールに必ず接続してください。
-
[Navigation] ペインで、[Subnet groups] を選択します。
-
[Create DB Subnet Group] を選択します。
-
[DB サブネットグループを作成する] ページで、[サブネットグループの詳細] に値を設定します。
-
名前:
tutorial-db-subnet-group
-
説明:
Tutorial DB Subnet Group
-
VPC:
tutorial-vpc (vpc-
identifier
)
-
-
[サブネットの追加] セクションで、[アベイラビリティーゾーン] と [サブネット] を選択します。
このチュートリアルでは、[アベイラビリティーゾーン] に
us-west-2a
とus-west-2b
を選択します。次に、[Subnets(サブネット)] で、IPv4 CIDR ブロック 10.0.0.0/24、10.0.1.0/24、10.0.2.0/24 のサブネットを選択します。注記 ローカルゾーンを有効にしている場合は、[DB サブネットグループの作成] ページでアベイラビリティーゾーングループを選択できます。この場合、[アベイラビリティーゾーングループ]、[アベイラビリティーゾーン]、[サブネット] の順に選択します。
-
[Create] を選択します。
RDS コンソールの DB サブネットグループリストに新しい DB サブネットグループが表示されます。DB サブネットグループをクリックすると、ウィンドウ下部の詳細ペインに、そのグループに関連付けられたすべてのサブネットなどの詳細を表示することができます。
この VPC を作成して チュートリアル: ウェブサーバーと Amazon RDS DB インスタンスを作成する を完了した場合は、DB インスタンスを作成する の手順に従って DB インスタンスを作成します 。