こんにちは。歌月と申します。
初めての投稿です。
AWSの学習のため、個人アカウントでハンズオンをしてみました。
VPCでサブネットを作成する段階で、IPアドレスとCIDRにどのような値を入れるのが適切なのかわからなかったので、
「そもそもサブネットマスクってなんだっけ?」というところからChatGPTに質問してみました。
私と同じように、何度サブネットについて学んでも腑に落ちない方の手助けになると幸いです。
問答開始
1. そもそもサブネットマスクとは?
解説(要約):
- サブネットマスクとは...
→「IPアドレスのどこまでが“ネットワーク”で、どこからが“機器(ホスト)”なのかを区切るルール」 - 例えば
の場合、
IPアドレス:192.168.1.0 サブネットマスク:255.255.255.0ネットワーク部分:192.168.1 ホスト部分:右端のオクテット部分 → 使えるホストの数:2^8 = 256 - 2(予約分) = 254
※2進数で表した場合については私自身が理解済みのため省略しています。
気になる場合はチャッピーに聞いてみてください。
2.CIDRとは?
- CIDR(Classless Inter-Domain Routing)は、
IPアドレスの範囲を「まとめて表現する書き方」です。 - 例えば:
これは次の意味になります。
192.168.1.0/24192.168.1.0:ネットワークの開始アドレス /24:先頭から24ビットがネットワーク部分 - この場合、IPv4は32ビットなので:
= 使えるIP数は:
32 - 24 = 8ビット(ホスト部)2^8 = 256個 - ホスト部を好きなサイズに調整しやすい!
- 作成したサブネットが 10.0.1.0/24 のとき、実際にはどのようなIPアドレスがリソースに設定される?
- サブネット 10.0.1.0/24 の中では
10.0.1.1 ~ 10.0.1.254 の範囲のIPが割り当て対象になります
- サブネット 10.0.1.0/24 の中では
3. Amazon VPC で、VPC自体にサブネットを設定するのはなぜ?
- 理由:「他のネットワーク(別VPC・オンプレ・外部)と衝突しないようにするため」
- Amazon VPC 同士を(VPCピアリングやVPNなどで)接続するとき、
ネットワークの範囲が被っていたら、ルーティングができない(迷子になる)
- Amazon VPC 同士を(VPCピアリングやVPNなどで)接続するとき、
- 複数VPCを作る際は、ネットワークの範囲が被らないようにする必要がある
- 例えば、↓のようにする
VPC①:10.0.0.0/16 VPC②:10.1.0.0/16
- 例えば、↓のようにする
4. VPCにはどのようなサブネットを設定するのが適切?
- 基本となる王道構成
VPC: 10.0.0.0/16 ├─ Public Subnet (AZ-a): 10.0.1.0/24 ├─ Public Subnet (AZ-b): 10.0.2.0/24 ├─ Private Subnet (App, AZ-a): 10.0.11.0/24 ├─ Private Subnet (App, AZ-b): 10.0.12.0/24 ├─ Private Subnet (DB, AZ-a): 10.0.21.0/24 └─ Private Subnet (DB, AZ-b): 10.0.22.0/24 - 適切なサブネットとは
- AZごとに分かれている
- Public / Private が分離されている
- 役割ごとに整理されている
- 将来拡張できるサイズ
- VPCのCIDRは「将来の設計の自由度」を確保するために大きめに取る
→ その結果として /16 が実務でよく使われる
その他聞いてみたこと
- 省略しましたが、「そもそもなぜサブネットが生まれたか」という質問も理解の役に立ちました。
終わりに
勉強したはずなのに、なんとなくわからない!!
といった状態が続いていたのですが、そもそもどこがわからないのかがわからず、質問することが難しいと感じていました。
チャッピーに小さな質問を少しづつしていくことで、結果としてわからなかった部分がわかり、理解が深まりました。
そもそもなんでネットワークを分割するのか? 分割されたらどの範囲のIPアドレスを使えるのか? などなど、いろいろ訊いてみました。
まだ完全に理解できたとは言い難いですが、少しすっきりしました。
「わかりやすくまとめる」こともなかなか難しいと感じましたし、できているとは到底思えないので、少しづつ精度を上げていければと思います。
お読みいただき、ありがとうございました!
参考
こちらのリンクの解説がわかりやすく、参考になりました。