この記事でできること
- サブネットの作成
はじめに
前回作成したVPCにサブネットを作成します。知っている方は読み飛ばしてください。
一昔前、サブネットという概念がよく分かりませんでした。IPアドレスの後ろにくっついている「/27」が、なんか錬金術のようにIPを増やせる?の?とか訳わからない錯覚に陥っていました。
ただ、図にしてしまえばなんてことない。単に綺麗に分割していただけなんだな、と。
しかし、なぜかよく分からないのですが、参考書やネットの説明では、なにか煙に撒かれるような印象を受けていました。恥ずかしい話ではあるのですが、理解したことをしっかりアウトプットすべく、補足に記載しようと思います。
それではまずは、サブネットを作成します。
ゴール
今回は、以下4つのサブネットを作ろうと思います。

作り方は同じですので説明は一回ですが、
パブリックorプライベート ⇒2通り
AZ1a or AZ1c ⇒2通り
で、合計4つのサブネットを作成します。
サブネットの作成
VPCコンソール呼び出し
「VPC」と検索窓に入力し、VPCサービスをクリックします。(サブネットは「VPC」サービスの一つの機能なので最初にVPCにいく)

サブネット一覧表示~サブネット作成
中央もしくは左のペインから「サブネット」をクリックします。

サブネット一覧が表示されたら、右上の「サブネットを作成」をクリックします。

サブネットを配置するVPCを選択します。(前回作成したVPCを今回は選択しています。)

詳細設定欄が表示されるので、以下の赤枠を入力します。

サブネットの確認
サブネットはすぐに作成が完了すると思います。

STEP1~3を繰り返し、必要な数だけサブネットを作成します。

補足
サブネットは特に難しい箇所は無いのですが、いくつか補足します。
・デフォルトのサブネットについて
VPCにも「デフォルトVPC」というものがありましたが、同様に特に意味の無いカラムです。デフォルトだと設定変更ができないサービスも確かあったような気がしますが、そういった類なのでしょうか、、ね。とりあえず特に気にしなくていいのですが、無駄に混乱させられるカラムです。
・サブネットの考え方ついて
この項目は私にとっては非常にチャレンジな内容です。バカな内容、と思われるでしょうけど、どうしてもNWは嫌いだった・・・。私なりの理解を図に纏めてみたいと思います。
まず、今回VPCを「192.168.0.0/16」として設定しました。カンマ( . )で区切って、左から第1オクテッド~第4オクテッドと呼ばれ、2進数で表したとき、それぞれ8桁となり、合計8×4=32桁、という理屈の詳細はさすがに省略します。
192を2進数で表す「11000000」同様に168は「10101000」となります。さて、改めて「192.168.0.0/16」とは何か、というと、左から16桁が「11000000.10101000」であるIP群を管理する領域とでもいえるかと思います。その領域を「ネットワークアドレス」と表現します。
左から16桁が確定したので、残りは右16桁となります。つまり、第3オクテッドの8桁、第4オクテッドの8桁を使って、表現できる数字は、
28×28=256×256=65,536個
となります。

ただ現実問題、6万個を超えるものを一つの箱で管理するのは、効率的ではありません。そのため、サブネット、という概念が生まれました。「サブ」つまり、副/下位のネット、ということですね。
ここからは、上記の考え方と全く同じに区分けしていきます。サブネットを/20と設定してサブネットに分けました。
それを図示したものが下図となります。

まず左から数えて、192.168.0000である数字を考えます。※10進数と2進数が混在している特殊な書き方ですが、このままいきます。
第3オクテッドの左から4つは「0000」で確定したため、残り4つです。つまり、192.168.00000000~192.168.00001111となります。この黒太字の0000~1111を10進数で表すと0~15で、16個となります。(または24=16個と計算してもよい)
第4オクテッドは8桁丸々ありますので、28=256個。よって、16×256=4,096個、なります。
次に左から20桁の一桁目のみが+1された場合、
すなわち192.168.0001を考えます。
同様の計算をして、左から20桁が192.168.0001 である
IPアドレス群も4,096個となります。
纏めると、左から20桁が
192.168.0000であるIPアドレス群⇒4,096個
192.168.0001であるIPアドレス群⇒4,096個
192.168.0010であるIPアドレス群⇒4,096個
192.168.0011であるIPアドレス群⇒4,096個
・
・
・
結果、65,536/4,096=16個のサブネットへ分割できることになります。
今まで何に悩んで?いたかというと、説明しづらいのですが、/16で分けていることは分かるのだけど、それじゃ/20で分けたとき、/16って何か干渉してこないの?とか、めちゃくちゃ意味分からないことで悩んでました。
う~~ニュアンスの説明難しいですね。。
漠然となので、説明はできないのかも。
もちろん/20を/15にしてしまったら(できないけど)えらいことになってしまいますから、そこの理解は問題ないのですが、なにか釈然としなかった。なぜでしょうかね・・・。
この分割は日本/都道府県/市区町村、と全く同じですよね。東京都(192.168.0.0/16)を市区町村(/20)に分割したとして、それらの集合はやっぱり東京なわけで影響があるわけないんですよね。
今はそんなイメージでいます。
・予約済みのIPアドレスについて
先ほどまで散々4,096個と言ってきましたが、実は、我々ユーザが4,096個丸々使えるわけではなく、サブネットごとに「5個」AWSによって使用(もしくは予約)されています。
例えばCIDR ブロック
10.0.0.0/24
を持つサブネットの場合、次の 5 つの IP アドレスが予約されます。
- 10.0.0.0.: ネットワークアドレスです。
- 10.0.0.1: AWS が VPC ルーター用に予約しています。
- 10.0.0.2: AWS が予約しています。DNS サーバーの IP アドレスは、VPC ネットワーク範囲のベースにプラス 2 したものです。複数の CIDR ブロックを持つ VPC の場合、DNS サーバーの IP アドレスはプライマリ CIDR にあります。また、VPC 内のすべての CIDR ブロックに対して、各サブネットの範囲 + 2 のベースを予約します。(詳しくは、「Amazon DNS サーバー」を参照してください。)
- 10.0.0.3: 将来の利用のために AWS が予約しています。
- 10.0.0.255: ネットワークブロードキャストアドレスです。VPC ではブロードキャストがサポートされないため、このアドレスを予約します。
サブネット CIDR ブロック
ポイントはサブネットごと、です。
先ほど作成したサブネットも全て4,091個、であることが分かるかと思います。

よって、4,096であればほとんど影響は無いですが、サブネットを細かくしすぎ、サブネットあたりの割り当て可能IPアドレスが少なくなることを意味しますので、「5個も!」予約で埋まってしまいます。
さいごに
サブネットは、特に難しい部分は無く感覚的に作れるので、個人の範囲においては特に考慮すべきこともないのですが、仕事でインフラ/NW周りの方々は、こういったサブネット構成を考慮/設計しないといけないので、やはり凄いなぁと思うばかりです。
なんか少し変な熱の入った記事になってしまいましたが、NW嫌いな方の目に留まって少しでも理解の助けになれば幸いです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023/08/26 文章を微修正