AI Session Notes - 2026-04-02
Terraform の基本構造とリソース参照
学んだこと
- Terraform は
resource "種類" "名前" { ... }の形で、作りたいインフラ部品を1つずつ宣言していく - Terraform 上のリソース識別子は
種類 + 名前の組み合わせで決まるため、異なる種類であれば同じ名前を使っても区別される(例:aws_lb.appとaws_db_instance.app) - 他のリソースを参照するときは
aws_vpc.main.idのように種類.名前.属性でつなぐ - Terraform は「部品の定義」と「部品同士の接続」をコードで表現する道具と捉えると読みやすい
terraform destroyを使うと、Terraform の state で管理しているリソースをまとめて削除できる
詳細
最小の例は次のようになる。
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
resource "aws_subnet" "public_a" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
}
この例では、aws_vpc.main という VPC を作り、その id を参照して aws_subnet.public_a を VPC 内に配置している。
AWS の Public / Private Subnet とルーティング
学んだこと
- AWS の Public / Private Subnet の違いは、サブネット自体の特別な種類ではなく、紐づくルートテーブルの内容で決まる
- Route Table は「そのサブネット内のリソースが、宛先ごとにどこへ通信を送るか」を決める表
0.0.0.0/0は「全ての IPv4 宛先」を表すデフォルトルートであり、「他の具体的なルールに当てはまらない通信はここへ送る」という意味になる- Public Subnet では
0.0.0.0/0 -> Internet Gatewayのルートを持つため、インターネットへの経路がある - Private Subnet ではそのルートを持たないため、VPC 外への通信ができない
- Internet Gateway はサブネットの中に置くものではなく、VPC 全体にアタッチされる出入口である
詳細
Public Subnet の典型的なイメージ:
10.0.0.0/16 -> local
0.0.0.0/0 -> igw
意味は次のとおり。
10.0.0.0/16 -> local: 同じ VPC 内の通信は VPC 内で配送する0.0.0.0/0 -> igw: それ以外の宛先は Internet Gateway に送る
Route Table は最初の理解としては「外から来る通信」より、「サブネットの中から外へ出ていく通信の行き先を決める表」と考えるとわかりやすい。
AWS 学習に必要なネットワーク基礎
学んだこと
- VPC、Subnet、Route Table、Internet Gateway、Route 53、ALB などは、AWS 独自の魔法ではなくネットワーク基礎の概念に AWS の名前が付いたものとして理解すると整理しやすい
- AWS のネットワーク周りでつまずく原因は、AWS 固有知識よりも IP アドレス、CIDR、ルーティング、NAT、DNS、Firewall といった基礎概念の不足であることが多い
- AWS や Terraform の理解が目的なら、いきなり CCNA 全体に進むより、まずはネットワーク基礎の必要範囲を絞って学ぶ方が効率的
- 学習優先度としては、CIDR、ルーティング、NAT、DNS、Public / Private Network の違いを先に押さえると VPC 周りの設定が読みやすくなる
メタ情報
- ツール: Codex
- 関連技術: Terraform, AWS, VPC, Subnet, Route Table, Internet Gateway, CIDR, ルーティング, NAT, DNS, ネットワーク基礎