見ながらやろう! AWSを始めよう -VPC構築編-

第1回目: [事前準備編](https://qiita.com/nago3/items/76897a8ec6d1ab6121ce)
第2回目: この記事
第3回目: [RDS編](https://qiita.com/nago3/items/1cd6daa5ad6377e325ed)

**はじめに...**

前回の記事 -[事前準備編](https://qiita.com/nago3/items/76897a8ec6d1ab6121ce)- の次の項目として、一般的に使われるであろう仮想サーバーを構築するための事前準備をしていきます。
基本的にEC2を使って環境構築、RDSのセキュリティグループの配置などのほとんどの基本的な項目をしっかり抑えていければと思います。

追記:
ルートを紐付ける際に、IGWへと紐付ける項目を記述し忘れていました。
書き加えてあります。
(2018/02/24)
____________

## **やること**

1. VPCの作成
2. IGW(インターネットゲートウェイ)の作成
3. サブネットの作成
4. ルートの関連付け
5. セキュリティグループの作成

<img width="853" alt="Screen Shot 2018-02-24 at 15.53.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/161922/670a0253-731f-2f3f-034d-70c678babc43.png">

まずは[VPC]を作り、[VPC]を外部のインターネットと接続するための[IGW]を作成します。
次に[EC2]や[RDS]を配置するための[サブネット]を作成し、VPC内でのネットワーク接続のための[ルート]を設定します。
最後に[EC2]や[RDS]などの仮想ファイアウォールとしての[セキュリティグループ]を設計して終わりです。


## 1. **VPCの作成**

まずはVPCをAWSの中に構築していきます。VPCは**[Virtual Private Cloud]**と言い、AWSの仮想ネットワークで、他の仮想ネットワークから論理的に切り離されて(セキュリティ性が高い)います。現在EC2インスタンスを立ち上げるために必須のものとなっています。

1アカウント最大で5つまでのVPCが作れます。以外に少なくて上限に引っかかったりして困ったりします。AWSに申請すれば上限は一応外せますが、面倒です。

VPC:
https://aws.amazon.com/jp/vpc/

ドキュメント:
https://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_Introduction.html


![VPC   VPC Management Console.png](https://qiita-image-store.s3.amazonaws.com/0/161922/3723bae7-e54e-37e3-a9e8-185e59c2a741.png)

[サービス]から[VPC]を選択

AWSはアカウント作成時に自動でデフォルトのVPCが作成されている。
特に消す必要もないので、消さないでおけばいいでしょう。

以前はデフォルトVPCを消してしまうと、Amazonに直接連絡しなければ復旧できなかったが、現在は自力でのデフォルトVPCの復旧が可能になっている。

![VPC   VPC Management Console1.png](https://qiita-image-store.s3.amazonaws.com/0/161922/e8a753d5-9b9e-f8ab-feb0-e8bea6a7cd6e.png)

サイドバーの[VPC]から[VPCの作成]をクリック

![VPC   VPC Management Console2.png](https://qiita-image-store.s3.amazonaws.com/0/161922/e45cd187-5bd5-40ff-5b84-9de3e0fe1de5.png)

名前タグは任意で、[IPv4 CIDR]については特に指定はないです。
「CIDRなにそれ美味しいの？」という方などはここでの[10.0.0.0/16]でいいと思います。

[テナンシー]は、そのハードウェアを専有(物理的に確保)するかどうかですの選択です。専有するとその分お金もかかりますので、[デフォルト]のままでいいと思います。

![VPC   VPC Management Console３.png](https://qiita-image-store.s3.amazonaws.com/0/161922/c9f448f5-3d33-c364-aaab-287326c393d8.png)

戻るとVPCが作成されていることがわかるはずです。

## **2. インターネットゲートウェイの作成**

![インターネットゲートウェイ   VPC Management Console.png](https://qiita-image-store.s3.amazonaws.com/0/161922/05ee8e05-583f-ffea-6592-24e99bc2af4c.png)

サイドバーの[インターネットゲートウェイ]から[インターネットゲートウェイの作成]をクリック

![インターネットゲートウェイ   VPC Management Console1.png](https://qiita-image-store.s3.amazonaws.com/0/161922/42d4edc0-b83b-89e4-ec6e-19737bcb8b50.png)

![インターネットゲートウェイ   VPC Management Console2.png](https://qiita-image-store.s3.amazonaws.com/0/161922/f100ecdb-9a76-d3b6-e5a6-9537838d6f4e.png)

名称のみ設定したらすぐに出来上がります。ですが、まだこのインターネットゲートウェイはどこにも繋がっていないため、表示は[detached]のままです。

![インターネットゲートウェイ   VPC Management Console.png](https://qiita-image-store.s3.amazonaws.com/0/161922/dcceeeac-66ae-8b62-6cca-47bcc6a6edbd.png)

作ったIGWを選択し[VPCにアタッチ]をクリックします。
作成したVPCが表示されていることを確認したらアタッチをします。

![インターネットゲートウェイ   VPC Management Console1.png](https://qiita-image-store.s3.amazonaws.com/0/161922/99bbfffc-7c97-fc6e-cc13-5f44e48ca57a.png)

完了すれば[detached]が[attached]に変化しており、接続されたVPCが表示されているはずです。

## **3. サブネットの作成**

<img width="853" alt="Screen Shot 2018-02-24 at 15.53.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/161922/a79f73c3-2a76-3802-ed7b-72c9dcf79092.png">

今一度、全体の構成を確認してみましょう。
今回のサブネットは[パブリックサブネット]として[EC2]を配置するためのサブネットを2つ、[プライベートサブネット]として[RDS]を配置するためのサブネットを2つの計4つを作成する構成です。

順番に左上、左下、右上、右下の順番で作っていきます。

![サブネット   VPC Management Console.png](https://qiita-image-store.s3.amazonaws.com/0/161922/988e150e-36bf-5949-d8c8-a87be1fdd507.png)

サイドバー[サブネット]から[サブネットの作成]を選択

![サブネット   VPC Management Console1.png](https://qiita-image-store.s3.amazonaws.com/0/161922/b26ba403-7ee2-5975-817a-318cd0aa7e88.png)

最初は[パブリックサブネット]を作っていく。
最初に作ったVPCに所属するサブネットであることを設定して、その後[アベイラビリティゾーン]を指定して、CIDRを記述する。

CIDRがわからない人は、引き続きおまじないのようなものだと思って同じ数字を記述しておいてください。

![サブネット   VPC Management Console3.png](https://qiita-image-store.s3.amazonaws.com/0/161922/a21fb32e-b454-847f-03ae-17c91a596433.png)

とりあえず一つできたことが確認できましたね。残りのサブネットも同じように作成します。

![サブネット   VPC Management Console.png](https://qiita-image-store.s3.amazonaws.com/0/161922/305f516f-ea64-ed91-27f8-671dcd951674.png)
 
![サブネット   VPC Management Console1.png](https://qiita-image-store.s3.amazonaws.com/0/161922/54a2c820-8b9e-99b5-936e-81b21e92f8d9.png)

![サブネット   VPC Management Console2.png](https://qiita-image-store.s3.amazonaws.com/0/161922/7ec820c4-74f4-5355-f0a1-b5644c8ae06c.png)

![サブネット   VPC Management Console3.png](https://qiita-image-store.s3.amazonaws.com/0/161922/a266f837-6df9-4f54-8b34-29c1285a4348.png)

はい、全部で4つのサブネットができましたね。現在は[public]と[private]と名前では区切っていますが、まだ本当の意味で区切れてはいませんので、その点は注意です。
![セキュリティグループ   VPC Management Console1.png](https://qiita-image-store.s3.amazonaws.com/0/161922/b033d4da-9715-e230-ec98-7390566a01f5.png)

## **4. ルートの関連付け**

ではルートの関連付けに移っていきます。

![ルートテーブル   VPC Management Console.png](https://qiita-image-store.s3.amazonaws.com/0/161922/a283aff3-179e-8b0f-c51a-21ba1417ed3a.png)

サイドバー[ルートテーブル]を開きます。
最初にVPCを作成した時点でルートテーブルは自動に作成されています。

画面下部に[サブネットの関連付け]という項目があるのでクリックし、[編集]を押します。

![ルートテーブル   VPC Management Console1.png](https://qiita-image-store.s3.amazonaws.com/0/161922/23a03001-4c3b-df9f-2a29-0bf848dfa885.png)

先程作成したサブネットが表示されます。それに対応したチェックボックスがあるので、関連付けたいサブネットにチェックを入れて[保存]をクリックします。

===================
ここから追記

![ルートテーブル   VPC Management Console.png](https://qiita-image-store.s3.amazonaws.com/0/161922/d4b56738-9418-cf6e-9d79-e4511c8ecb95.png)

ルートテーブルに[IGW]を加えます。

![ルートテーブル   VPC Management Console１.png](https://qiita-image-store.s3.amazonaws.com/0/161922/4de51706-146d-fcc3-08fe-2c9cf5238deb.png)

![ルートテーブル   VPC Management Console２.png](https://qiita-image-store.s3.amazonaws.com/0/161922/7f3cb225-31be-7988-208f-28f8279e42db.png)

送信先は[0.0.0.0/0]で、誰でも入ることができるという設定です。

===================

## **5. セキュリティグループの作成**

![セキュリティグループ   VPC Management Console.png](https://qiita-image-store.s3.amazonaws.com/0/161922/3a1f206e-819c-704d-ce91-07a7cc9fd4b7.png)

最後にセキュリティグループの作成に移ります。
サイドバー[セキュリティグループ]から[セキュリティグループの作成]を選択。

![セキュリティグループ   VPC Management Console1.png](https://qiita-image-store.s3.amazonaws.com/0/161922/6937cf19-90ba-3843-d754-a0688876b05e.png)

名前タグを入力するとグループ名もそのまま記載されます。
[publicサブネット]を囲む[EC2を配置するセキュリティグループ]を作ります。
目的そのままでの命名、webapp置き場なので[webapp-sg]とします。

![セキュリティグループ   VPC Management Console2.png](https://qiita-image-store.s3.amazonaws.com/0/161922/295d0045-3e9b-304a-8e58-70e2664f9a39.png)

![セキュリティグループ   VPC Management Console3.png](https://qiita-image-store.s3.amazonaws.com/0/161922/2ecd52f4-8c34-95a2-7962-be509e605731.png)

同様にDBのセキュリティグループを作成します。

**ちなみにセキュリティグループは[EC2]のコンソール上でも作成することができます。**

![セキュリティグループ   VPC Management Console4.png](https://qiita-image-store.s3.amazonaws.com/0/161922/d1084852-ae6f-b454-fdeb-0a03162e379c.png)

最後にセキュリティグループにEC2を配置した時にアクセスできるように設定しましょう。

[webapp]のセキュリティグループをクリックし、画面下部の[インバウンドのルール]から[編集]をクリックしてください。

![セキュリティグループ   VPC Management Console5.png](https://qiita-image-store.s3.amazonaws.com/0/161922/13317b7c-0972-dc83-5b12-7f13bdd367fa.png)

それぞれ[SSH]と[HTTP]を選択し、[ソース]の部分を[0.0.0.0/0]と入力しましょう。
終わったら保存して完了です。

##**最後に...**

VPCの部分はAWSの資格試験でも頻出ですね。
使い回しが効くので、作った配置の中身をWordPressにするでも、RailsにするでもJAVAにするでも自由です。
皆さんも楽しいAWSライフをお過ごしください。