コンテンツにスキップ

AI Session Notes - 2026-04-02

Terraform の基本構造とリソース参照

学んだこと

  • Terraform は resource "種類" "名前" { ... } の形で、作りたいインフラ部品を1つずつ宣言していく
  • Terraform 上のリソース識別子は 種類 + 名前 の組み合わせで決まるため、異なる種類であれば同じ名前を使っても区別される(例: aws_lb.appaws_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, ネットワーク基礎