AWSとWordPressを使ってWebサイトを構築しよう④

<h2>■VPC・Public subnetを構築しよう！</h2>
いよいよ実際に手を動かしてAWSを使ってネットワークを構築していきましょう。

#目次
[1.AWSアカウント作成](#1-awsアカウント作成)
[2.VPC作成](#2-vpc作成)
[3.サブネットの作成](#3-サブネットの作成)
[4.なぜサブネットを作る必要があるのか](#4-なぜサブネットを作る必要があるのか)
[5.パブリックサブネットの作成](#5-パブリックサブネットの作成)
[6.【おまけ】「冗長性」とは](#6-おまけ冗長性とは)


#1. AWSアカウント作成
まずAWSアカウントを作成しましょう。
下記URLにAWSアカウントの作成方法が記載してありますのでこちらを参考にアカウント作成を行ってください。
https://aws.amazon.com/jp/register-flow/


AWSアカウントが作成できたら下記URLからAWSマネジメントコンソールにアクセスしましょう。
https://aws.amazon.com/jp/console/

#2. VPC作成
「VPC」とはAWSアカウントに紐づいたプライベートな仮想ネットワークのことです。
このVPC上に今後作成する「EC2」などのサービスを構築していきます。

マネジメントコンソールへアクセスできたら下記の画像のように、検索バーへ<b>「VPC」</b>と入力してください。
![tempsnip.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/de600ada-70e5-9389-871d-ab843c2e51ca.jpeg)


「VPC」と入力したら下記画像のようにサービス一覧に表示された「VPC」をクリックしてください。
（ちなみにシステムエンジニアの世界ではクリックと似た言葉で「押下」という言葉を使うこともあります。クリックだとマウスのボタンを”押して離す”動作ですが、押下は”押す動作のみ”になります。）
![tempsnip2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/ee454b60-d277-cb1a-3592-4fc8eb45a5f5.jpeg)

VPCを選択したら次は<b>リージョン</b>の選択です。
リージョンとは世界中に配置されたデータセンター群の事で、現時点（2021/03/27時点）では世界25か所に分かれて存在しています。
今回は<b>東京リージョン</b>にネットワークを構築していきますので<b>「アジアパシフィック(東京)」</b>をクリックしてください。
![tempsnip3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/bfeffe30-87cb-9648-cb08-fc13007adfbb.jpeg)

次は<b>VPC領域</b>を作成していきます。
マネジメントコンソール左側にあるメニューの中から「VPC」をクリックしてください。
![tempsnip5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/0c0e664e-6b0b-b130-c5d5-967d7dd16401.jpeg)

既に最初から「デフォルトVPC」というVPCが作成されていますが、新しくVPC
を作成していきます。
「VPCの作成」をクリックしてください。
![tempsnip6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/b80e19ca-e235-1738-5a51-8fe5f7f5142d.jpeg)

VPCの作成画面にて下記のように入力していきましょう。
<b>・名前タグ：VPC</b>
　→これから作成するVPC領域の名前を入力
<b>・IPv4 CIDR ブロック：10.0.0.0/16</b>
　→VPC領域で使うIPアドレスを指定
(「IPv6 CIDR ブロック」は今回使用しないので「IPv6 CIDR ブロックなし」でOKです。「テナンシー」はハードウェアの占有をするかどうかの設定で、これを設定することで物理サーバーを占有し他人が物理サーバー上に仮想サーバーを建てられないようにできます。占有するには費用が発生するので注意してください。今回は占有はせずにデフォルト設定で構築します。)
これらを入力したら「作成」ボタンをクリックしてください。
![tempsnip7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/977d2533-a479-dd1a-191f-8ce154763fe8.jpeg)
![tempsnip8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/08c21b81-8b49-7908-2629-8074e58d0a2f.jpeg)

#3. サブネットの作成
さてこれでVPC領域の作成ができました。
今度は作成したVPC領域をさらに細かく分けていき<b>サブネット</b>を作成しましょう。

「サブネット(subnet)」とは割り当てたCIDRブロックをさらに細分化したCIDRブロックのことを言います。
実際のネットワークでは割り当てたCIDRブロックをそのまま用いることなく細分化して使用することがほとんどです。
なので今回もパブリックサブネットとプライベートサブネットに分割して作成します。


さきほど「10.0.0.0/16」のCIDRブロックを作成しVPC領域として割り当てましたが、このCIDRブロックを「10.0.0.0/24」という形でさらに細かく分けてサブネットを作成します。

「10.0.0.0/24」なので使用できるIPアドレスの範囲は「10.0.0.0~10.0.0.255」になります。
（VPCに割り当てた「10.0.0.0/16」のIPアドレスの範囲は「10.0.0.0~10.0.255.255」だったのでサブネットの方が細かく別れているのが分かります。）

#4. なぜサブネットを作る必要があるのか
そもそもなぜサブネットを作成しなきゃいけないのか？
「さっき作ったVPC領域だけじゃダメなの？」
と思われるかもしれませんがサブネットを作るメリットがあります。

<b>１、障害が起きた時に影響が出づらくなる</b>
同じVPC内に複数のサーバーを作成して、もし何かが原因で障害が起きた時に原因を突き止めようと思っても調査対象が多く原因を調べるのに時間がかかってしまいます。

しかしサブネットを作成し、それぞれのサブネットにサーバーを作成しておけばどちらかのサブネット内で障害が起きても原因の切り分けができて調査が楽になります。

さらにどちらかのサブネット内で障害が起きたとしても片方のサブネットには影響が出づらくなります。

<b>２、セキュリティ面</b>
今回作成していく構成もそうですがセキュリティ面においてDBサーバーやファイルサーバーなどのデータを扱っているサーバーをインターネットからアクセスできる状態にしてしまうと、もしサイバー攻撃に遭ってしまった場合にデータを盗まれてしまう恐れがあります。

これが企業だった場合は情報漏洩に当たり社会的に大きなダメージを負ってしまいます。

なのでこれを防ぐためにデータを扱うサーバーはインターネットからアクセスできない状態にしてセキュリティを高めます。

<br>

前置きが長くなりましたが早速サブネットを作成しましょう。
下記の画像のように<b>パブリックサブネット(10.0.1.0/24)</b>と、<b>プライベートサブネット(10.0.2.0/24)</b>を作っていきますが、まずはパブリックサブネットを作成していきましょう。
![スクリーンショット 2021-03-28 21.03.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/354a12e6-d527-b3cb-0477-b11b280d9072.png)

##5. パブリックサブネットの作成
マネジメントコンソールの検索バーへ「VPC」と入力し、VPCの設定画面へ移動してください。
![tempsnip.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/de600ada-70e5-9389-871d-ab843c2e51ca.jpeg)
![tempsnip2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/ee454b60-d277-cb1a-3592-4fc8eb45a5f5.jpeg)

左のメニューから「サブネット」をクリックしてください。
![スクリーンショット 2021-03-28 23.12.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/68034ce8-ce3b-6c33-6d96-f25b42673a4d.png)

既にデフォルトのサブネットが作成されていますが、新しくサブネットを作成するので「サブネットの作成」をクリックしてください。
![スクリーンショット 2021-03-28 23.13.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/ba36dac3-6dbf-e872-ab51-6815c03868de.png)

<b>「サブネットを作成」</b>の画面へ移行したら下記のように入力してください。

<b>・VPC ID：グレー色で「10.0.0.0/16」と書かれたVPCを選択</b>
　→さきほど作成したVPCを選択します。
![スクリーンショット 2021-03-28 23.17.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/826b19aa-77c5-029a-659c-ffa095086e8a.png)

<b>・サブネット名：Public_subnet</b>
　→サブネットの名前を命名します。ここでは「Public_subnet」とします。
<b>・アベイラビリティゾーン：指定なし</b>
　→「指定なし」の場合はランダムでアベイラビリティゾーンが作成されます。（アベイラビリティゾーンとはリージョン内に置かれたデータセンターのことで、東京リージョンであれば３つのアベイラビリティゾーンが存在しており各アベイラビリティゾーンはそれぞれ完全に独立し、地理的に離れた距離に設置されています。
そうすることで例えば１つのアベイラビリティゾーンに障害が起こったとしても、他の２つは正常に稼働することができAWS利用者は安心してサービスを作成することができます。）
<b>・IPv4 CIDR ブロック：10.0.1.0/24</b>
　→パブリックサブネットには「10.0.1.0/24」を割り当てます。
![スクリーンショット 2021-03-28 23.45.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/ddf9f34c-608d-88fb-0d87-8d5b9166e39a.png)

全て入力できたら「サブネットの作成」をクリックしてください。
これでパブリックサブネットの作成が完了しました。
![スクリーンショット 2021-03-29 0.04.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/b1b43874-7f94-971b-d3d3-ec6dce7d897d.png)
![スクリーンショット 2021-03-29 0.05.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159544/8003fcd9-5ed2-e196-02f0-e38fff100b0d.png)


#6. 【おまけ】「冗長性」とは
最近ではシステム障害でシステムが停止してしまった、と言ったニュースが報道されています。
このような障害を防ぐための考え方の１つとして<b>「冗長化」</b>があります。

一般用語としてではなくIT用語として冗長化とは、同じ機能を持つサーバーなどを複数用意しシステム障害によって一部の機能が停止しても全体は動くように構成することです。

例えばAWSで言えば<b>「マルチAZ構成」</b>というシステム構成があり、同じ機能を持つAZ（アベイラビリティゾーン）を複数用意し片方のAZに障害が発生した際に、もう片方の正常なAZを使用して稼働を継続させるという冗長化の方法があります。

このように冗長化によってシステムの安全性が向上した状態を「冗長性を持たせる」と表現します。


</br>
はい、今回はここまで！
「VPC」と「subnet」はAWSを触る上で基本中の基本になるので作成方法は押さえておきましょう。

次回は<b>インターネットゲートウェイ</b>と<b>ルートテーブル</b>を作成していきます。
次の記事でネットワークの構築がひと段落するので頑張っていきましょう！

次の記事はこちらから
<a href="https://qiita.com/uchino_infra/private/a04a8b796b32d20e02db">AWSとWordPressを使ってWebサイトを構築しよう⑤</a>