VPCとサブネットをわかりやすく説明
全体をマンションで例える---
一言まとめ
なぜこのような構成にするのか
一言で言うと
「大切なものを守るため」 です。
① なぜパブリックとプライベートに分けるの?
考え方
インターネットは世界中の人が接続できる場所です。全部を同じ場所に置くと、悪意ある人が大切なデータに直接アクセスできてしまいます。
悪い例:全部同じ場所に置く
インターネット → Webサーバー・DB・個人情報 全部丸見え 🔓
良い例:分けて置く
インターネット → Webサーバー(公開OK)→ DB(非公開)🔒
マンションで例えると
パブリックサブネット = 1階のロビー
→ 誰でも入れる
→ Webサーバー(受付)を置く
プライベートサブネット = 金庫室
→ 鍵を持った人しか入れない
→ DB(お金・個人情報)を置く
② なぜDBを外から見えない棟に置くの?
理由はセキュリティです
DBには個人情報・パスワード・クレジットカード情報などが入っています。
もしDBが外から直接アクセスできる状態だと:
攻撃者
→ DBのIPアドレスを発見
→ パスワードを総当たりで試す
→ 侵入してデータを盗む 😱
プライベートサブネットに置くと:
攻撃者
→ DBのIPアドレスが見えない
→ そもそも接触できない 🔒
Webサーバー(A棟)
→ DBに接続できる(内部ネットワーク経由)✅
現実の例で言うと
銀行のATM(Webサーバー)
→ 誰でも操作できる・表に置いてある
銀行の金庫(DB)
→ 行員しか入れない・地下に隠れている
→ ATMは金庫と繋がっているが、客は金庫に直接触れない
③ なぜElastic IPが必要なの?
EC2のIPアドレスは再起動のたびに変わる
EC2を起動 → IPアドレス:54.10.20.30
EC2を再起動 → IPアドレス:52.68.91.44 ← 変わった!
EC2を再起動 → IPアドレス:13.112.5.78 ← また変わった!
IPが変わると困ることが起きます:
Route 53のDNS設定
→ my-poc-site.com → 54.10.20.30 に向けていた
→ 再起動したら 54.10.20.30 はもう存在しない
→ サイトにアクセスできなくなる 😱
Elastic IPで固定すると
Elastic IP:54.95.190.175(固定)
EC2を再起動しても
→ IPアドレスは常に 54.95.190.175
→ Route 53の設定も変更不要
→ サイトに常にアクセスできる ✅
住所で例えると
Elastic IPなし
→ 引っ越しのたびに住所が変わる
→ 友達に毎回新しい住所を伝える必要がある 😓
Elastic IPあり
→ 住所が固定されている(私書箱のようなもの)
→ 引っ越ししても同じ住所で郵便が届く ✅
④ なぜセキュリティグループが必要なの?
インターネットには常に攻撃がある
実際にサーバーを公開すると、世界中から攻撃が来ます。今回のアクセスログにもすでに不審なアクセスが来ていました:
107.189.7.156 → /manual にアクセス(存在しないページ)
74.82.47.5 → /geoserver/web/ にアクセス(攻撃の典型パターン)
セキュリティグループがないと
全ポートが開放された状態
→ ポート3306(DB)に直接攻撃
→ ポート22(SSH)に総当たり攻撃
→ サーバーを乗っ取られる危険 😱
セキュリティグループがあると
許可したポートだけ通す
→ ポート80(HTTP) ✅ 全員OK
→ ポート443(HTTPS)✅ 全員OK
→ ポート22(SSH) ✅ 自分のIPのみ
→ ポート3306(DB) ✅ KAGOYAのIPのみ
→ それ以外 ❌ 全部遮断
オートロックで例えると
セキュリティグループなし
→ マンションの全ドアが鍵なしで開いている
→ 誰でも金庫室に入れる 😱
セキュリティグループあり
→ オートロックで入れる人を選べる
→ 住人(自分のIP)だけSSHで入れる
→ 宅配便(HTTP/HTTPS)だけ玄関から入れる ✅
まとめ:全部つながっている
インターネット(危険な世界)
↓
セキュリティグループ(オートロック)← ④の理由
↓ 許可したポートのみ通す
Elastic IP(固定住所)← ③の理由
↓ 常に同じIPでアクセスできる
パブリックサブネット(ロビー)← ①の理由
↓ Webサーバーだけ公開
プライベートサブネット(金庫室)← ①②の理由
DB(個人情報・データ)← ②の理由
この構成全体で「外に見せるもの」と「隠すもの」を分けて、大切なデータを守っています。
