最初からの構築
最初の状態から構築はなかったので、今回会社の構築内容をまとめてみました。個人的にGCPの方を経験したかったですが貴重な経験ではあると思います。
前提条件
- AWSアカウントの取得
- Mac環境
構成図
一応、本番で利用するサーバーとして構成しようかと思います。サーバーの障害耐性や冗長化、負荷分散、オートスケーリングなどは入れてない、なるべくコストが掛からない構成です(バンバン入れたいけど)。

図のRDSのSlaveの方は実際入れてないです。RDSの設定でサブネットグルプが必要ですが、そこで複数のアベイラビリティーゾーンが必要なので作るしかないです。実際余裕があればSlaveSlaveとして利用するようです。
DBサーバーはMulti-AZ構成という物理的に離れたデータセンターにホットスタンバイ用のサーバーをもう一つ建てることで、障害対応やバックアップなどの対応が可能
アベイラビリティーゾーンとVPCの構造は実際はVPCの中にアベイラビリティーゾーンが入る形ですかね。
ウェブサーバーのサブネットは「public subnet」はネットからの接続するために「Elastic IP」によってグローバルIPを付与します。
VPC環境の構築
「Start VPC Wizard」を始めると詳細な設定をしなくても良いらしいですが、今回は一つ一つ設定を行いましょう!!
VPCの作成
- 左メニューから「VPC」を選択し、「VPCの作成」という青いボタンをクリック
- 今回作成のネットワーク全体を表す「CIDR」を「192.168.0.0/16]と設定
- 「作成」の青いボタンをクリック
- あとで見分けがつくようにタグに適当な名前をつける
サブネットの作成
EC2 インスタンス(Webサーバー)用と RDS インスタンス(MySQL)用、RDS Multi-AZ 構成用とで計3つ作成します。
- 左メニューから「サブネット」を選択し、「サブネットの作成」という青いボタンをクリック
- VPCは先ほど作成した物を指定
- アベイラビリティーゾーンは「ap-northeast-1a」に設定
- CIDRは「192.168.0.0/24」に設定
- あとで見分けがつくようにタグに適当な名前をつける
各サブネットの作成内容は以下になります。
| Name | VPC | アベイラビリティーゾーン | IPv4 CIDR |
|---|---|---|---|
| public subnet: web | example-vpc | ap-northeast-1a | 192.168.0.0/24 |
| private subnet: DB | example-vpc | ap-northeast-1a | 192.168.1.0/24 |
| private subnet: DB(Slave) | example-vpc | ap-northeast-1c | 192.168.2.0/24 |
| 3つ目のサブネットは、RDS の Multi-AZ 構成で利用するものなので、2つ目のサブネットとは異なるアベイラビリティーゾーンを指定します。本エントリーの構成では RDS を単一 AZ 構成で構築しますので、このサブネットは今回は利用しません。 |
インターネットゲートウェイ
インターネットゲートウェイはVPC内のサーバがインターネットと接続するための出入口です。
- 左メニューから「インターネットゲートウェイ」を選択し、「インターネットゲートウェイの作成」という青いボタンをクリック
- あとで見分けがつくように「名前タグ」に適当な名前をつける
- 「作成」ボタンをクリック
次に作成したインターネットゲートウェイをVPCと紐付けます。
1. 「アクション」メニューの「VPCにアタッチ」を選択
2. 「VPCにアタッチ」画面で、先ほど作成したVPCを選択
3. 「アタッチ」ボタンをクリック
### ルートテーブルの確認&作成
各サブネットに対して仮想的に配置されるルーターのルーティングテーブルのようなものです。左メニューからサブネットを選択し、作成したサブネット一覧を見てみましょう。自動作成された Route Table がデフォルトで割り当てられているのがわかります(下の図ではrtb-******c41となっています)
ルートテーブルは、「Public subnet」に関してはインターネット(外界)への出口(Internet Gateway)が必要であり、「Private subnet」に関しては不要となります。したがって、自動生成された ルートテーブルは「Private subnet」用として使います。
#### ルートテーブルの作成
1. 左メニューから「ルートテーブル」を選択し、「ルートテーブルの作成」という青いボタンをクリック
2. VPCに先ほど作成した物を指定
3. 「作成」ボタンをクリック
次に今作成したルートテーブルを「Public subnet」に設定します。
1. 一覧から今作成したルートテーブルを選択し、画面下部の「ルート」タブを開いて、「ルートの編集」ボタンをクリック
2. 「送信先」に「0.0.0.0/0」と入力
3. 「ターゲット」に「Internet Gateway」を選択
4. 表示されるインターネットゲートウェイの中で、先ほど作成したインターネットゲートウェイを選択
5. 「ルートの保存」ボタンをクリック
最後に今作成したルートテーブルを先ほど作成した「public subnet」に設定します。
1. 左メニューから「サブネット」を選択し、サブネット一覧から「public subnet」を選択
2. 下部の「ルートテーブル」のタブを開いて「ルートテーブルの関連付けの編集」という青いボタンをクリック
3. 「ルートテーブルの関連付けの編集」の「ルートテーブルID」から作成したルートテーブルを選択して一覧に追加されたのを確認
4. 「保存」ボタンをクリック
セキュリティグループの作成
セキュリティグループは用途に合わせて複数作成します。今回は2つ作成します。
- ウェブサーバー用のセキュリティグループ
- DB用のセキュリティグループ:ウェブサーバー用のセキュリティグループからの接続(3306)
左メニューから「セキュリティグループ」を選択します。既にセキュリティグループが一個ありますが、それはおいて新しく作成します。

入力したら「作成」ボタンをクリックします(説明は日本語だとダメでした。)。
- 作成されたセキュリティグループに名前を適当に記入
- 下部にある「インバウンドルール」タブを選択し、「編集」ボタンをクリック
- 「インバウンドのルールの編集」画面で適当なルールを入れて「ルールを保存」をクリック
DB用のセキュリティグループは以下のようにソースに**ウェブサーバー用のセキュリティグループID**を記入します。
### DBのサブネットグループ:RDSからVPCを利用するための設定
RDS管理コンソールを開きます。
1. 左メニューから「サブネットグループ」を選択
2. 「DBサブネットグループの作成」のオレンジ色のボタンをクリック
3. 「名前」と「説明」に適当に入力
4. 「VPC」に先ほど作成したものを指定
5. 「アベイラビリティーゾーン」と「サブネットID」(private subnet: DB)を選択して「サブネットを追加します」をクリック
6. 先と違う「アベイラビリティーゾーン」を選択し、「サブネットID」(public subnet: DB(Slave))を選択して「サブネットを追加します」をクリック
7. 「作成」ボタンをクリック

| アベイラビリティーゾーン | サブネットID | CIDRブロック |
|---|---|---|
| ap-northeast-1a | private subnet: DB | 192.168.1.0/24 |
| ap-northeast-1c | private subnet: DB(Slave) | 192.168.2.0/24 |
EC2、RDSの構築
以下の設定は省略します。以下のところだけ設定すれば大丈夫だと思います。
- EC2の「ステップ3:インスタンスの詳細設定」で「public subne」を「ステップ6:セキュリティグループの設定」でウェブサーバー用のものを設定
- RDSは先ほど作成したサブネットグループが設定

