AWS VPC / Subnet を図で理解する(初心者向け)
こんにちは!
今回も初学者向けの記事です。
私自身、AWSの学習を始めたときに「VPC?サブネット?パブリック?プライベート?」と混乱したので、今回は自分なりに図を使って整理してみました。
初心者の方に少しでもイメージが伝われば嬉しいです 🙌
VPCとは?
- Virtual Private Cloud(仮想ネットワークの箱)
- AWS上で自分専用のネットワーク空間を作れる
- 家で言うと「敷地」にあたるイメージ
Subnetとは?
- VPCをさらに分けた「区画」
- 敷地(VPC)の中にある「部屋」のようなもの
- 主に2種類ある:
- Public Subnet → インターネットとつながる
- Private Subnet → 内部専用、外から直接アクセスできない
代表的な構成(図解)
-
Public Subnet
- ALB(Application Load Balancer)→ 外からの入り口
- NAT Gateway → Private Subnetのサーバーが外に出るための出口
-
Private Subnet
- EC2 → アプリケーションサーバー
- RDS → データベース
通信の流れ
- ユーザー → Internet → IGW(Internet Gateway) → ALB
- ALB → EC2(アプリ)
- EC2 → RDS(DB)
- EC2 が外部へアクセスしたいときは → NAT Gateway → IGW → Internet
まとめ
- VPC = 敷地
- Subnet = 区画
- Public Subnet → インターネットからアクセス可能(ALB, NATGWなど)
- Private Subnet → 内部で完結させたいサーバーやDB(EC2, RDSなど)
- ALBを経由させることで、安全にアプリを公開できる
補足:踏み台サーバー(Bastion Host)
プライベートサブネットにあるEC2は、セキュリティのため外部から直接アクセスできません。
そのため、運用やデバッグでログインが必要な場合は 踏み台サーバー(Bastion Host) を利用するのが一般的です。
- Public Subnet に小さな EC2 を1台配置し、そこにまずSSH接続
- その踏み台サーバー経由で Private Subnet 内のEC2へログイン
イメージ図(シンプル化):
Internet → IGW → Bastion(Public Subnet)
↓
EC2(Private Subnet)
また、最近は AWS Systems Manager の Session Manager を使えば、踏み台サーバーなしで直接 Private Subnet 内のEC2に接続できるケースも増えている様です。
こちらの方が運用コストやセキュリティ的にも優れていそうですね。
参考資料
初心者向けにイメージを重視してまとめました。
今後も、自身のアウトプットも兼ねて、投稿を続けていきたいと思います