VPCとサブネットの作り方


こんにちは。響です。今日はVPCの作り方とサブネットの作り方について学んだので記録します。

まず始めに、VPCとは何か。それは簡単に言うとAWS上に作れる仮想のネットワークです！

早速作ってみましょう。AWSにコンソール画面からVPCを選択します。
![ホーム画面VPCを選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/f23afa91-7051-61e3-5e38-5cb58531716a.png)


既存のVPCが現れますね。右上の「Create VPC」で新しいVPCを作ります。

![VPC一覧.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/8e9c798d-4542-17f8-bc9e-a5f6d03763b4.png)

さて新しいVPCを作る画面です。
![スクリーンショット 2021-06-01 8.58.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/bbb000f5-3510-b25a-60f9-ca5e46f381c6.png)

ここでIPv4 CIDR blockという欄で予約するIPアドレス(ここではインターネットとは繋がっていないのであくまでこの仮想のネットワークの中でのアドレス)を指定します。

さて、「/24」という表記が気になりますね。
「/24」の前に最初の172.16.1.0について説明します。
IPアドレスは本来は32桁の2進数です。0と1の組み合わせの32桁ですが、ここではそれを8桁ごとに4つに区分し、区分した部分それぞれに関しては10進数での表記を行なっています。
0から最大で255(2の8乗−1)の数字が4つ並ぶ事になります。なので255より大きい数字は基本的に出てこないです。

ここで「/」は一つのアドレスではなく特定の範囲のアドレスを予約している事を表しています。
どういうことか。先ほどIPアドレスは32桁と言いました。「/n」は「頭からn桁目までは固定しているよ。それ以降は自由度があるよ」というアドレスの予約を表しています。

なので、ここでは172.16.1.0/24というのは前から24桁までを固定し、後ろ8桁は自由度があるアドレスの範囲を予約しています。具体的に言うと予約しているアドレスは
172.16.1.0(10101100.00010000.00000001.00000000)
~
172.16.1.255(10101100.00010000.00000001.11111111)と言う事になります。

この表記にピンときていない方もいるかも知れませんがサブネットを作る際に理解が進むかも知れませんのでとりあえず右下の「create VPC」を押してしまってサブネットの作成に進みましょう。





先ほどのコンソールホーム画面でVPCをクリックした後に出てくる画面で今度はsubnetをクリックします。

![スクリーンショット 2021-06-01 9.48.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/a26f90f4-08f2-8ec8-ea0c-c87d2c52799b.png)



![サブネットを作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/eb29e03e-8d8d-3c25-0c76-8ee56f122160.png)

右上の「create subnet」を押して次に進みます。

![サブネット作成VPCを選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/7250af30-007a-820f-22aa-01648b0137ba.png)

ここでは先ほど作成したVPCを選択します。

さて！次にサブネットのIPアドレスを選択して先程作ったVPCを分割していく作業に入ります。
![サブネット1    0:25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/82401adc-4cdc-04fb-4476-6efc6ef1515b.png)

さっきと同じアドレスに対して今度は「/25」と記入しました。これは前から25桁目までは固定されている、すなわち最後の7桁だけが自由と言う事です。
つまりこの表記で抑えられるアドレスは
172.16.1.0(10101100.00010000.00000001.00000000)
~
172.16.1.127(10101100.00010000.00000001.01111111)となります。
さっきとの違いにお気づきでしょうか。前から25桁目(後ろから数えれば8桁目)は0で固定されています。
なので予約する範囲は172.12.1.0~172.16.1."127"までとなります。(何故なら128以上の数字を表現するにはどうしても前から25桁目を1にするしかないからです)
それでは右下の「Create subnet」をクリックしてこのサブネットの作成を完了してから、もう一個のサブネットの作成に入りましょう。


次のサブネットの作成画面にて、ここでちょっと試しに一つ目のサブネットと被る範囲をあえて指定してみましょう。具体的には「172.16.1."128未満の数字"/25」と入力してみます。

![サブネット被ってる注意喚起.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/9745db66-a85c-99d3-ce4e-fa154b719f06.png)

やはりエラーが起きました。一つ目のサブネットで25桁目が127以下になるアドレスはすべて使ってしまっているので当然ですよね。
それでは128を入れ直してサブネットを作成してみましょう。

![サブネット25桁目に128を入れ直した.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/c4750811-274e-19df-0263-8e64e707f338.png)

これで「Create subnet」を押し直してみましょう。

![サブネット作成成功.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/00d0110d-f3b1-eaa4-6f3a-c5e52565a866.png)

無事作成ができました。
ここで予約したアドレスは25桁目が「1」で固定されている
172.16.1.128(10101100.00010000.00000001.10000000)
~
172.16.1.255(10101100.00010000.00000001.11111111)と言う事になります。

いよいよラストスパートです。
ここからインターネットゲートウェイをVPCにアタッチ(くっつける)します。
これは名前の通りインターネットと皆さんの作ったVPCを繋ぐゲートウェイ(ドア)です。

![スクリーンショット 2021-06-05 8.09.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/e270101c-0c2a-2c00-15f1-f2e907a807d8.png)

VPCコンソールの左のカラムからInternet Gatewaysをクリックしましょう。
既存のインターネットゲートウェイが出てきますね。ここでも敢えて新しく作りましょう。右上のオレンジのボタン「Create Internet gateway」をクリックします。
![スクリーンショット 2021-06-05 8.09.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/a586761c-ffd0-0a16-75d2-55c9bb03b808.png)
特にきちんと設定する項目もないので右下の作成ボタンを押してください。

![スクリーンショット 2021-06-05 8.10.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/fb0637e4-475e-b152-e799-ce0ac047d2fc.png)
作成ができました！ここで忘れてはならないのが、きちんとVPCにアタッチすることです！

![スクリーンショット 2021-06-05 8.21.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227633/608eda5e-142b-b37f-48e5-f56c075e5f3a.png)

先ほど作ったVPCを選びましょう。

以上、長くなりましたがVPCを作り、その中にサブネット二つを作ってVPCを分割する方法でした。
読んでいただきありがとうございました。