🦁

自分用terraform具体的な設定値(随時追加)

2024/10/19に公開

VPC

resource "aws_vpc" "shobute_vpc" {
 cidr_block      = 192.168.0.0/16
 enable_dns_hostnames = true
/* VPC内のEC2がパブリックDNSホスト名を取得できる。
   デフォルトVPCのデフォルト値はtrueだが、新しく作成したVPCのデフォルト値はfalse。
   fargateを使う場合はtrueにする必要なし。ALB使用する場合は、trueにする必要あり。*/
 enable_dns_support   = true
/* VPC内のDNS解決をサポート。基本true */
 tags = {
  Name = "shobuteVpc"
 }
}

サブネット

パブリックサブネットとプライベートサブネットの書き方の違いはないです。
インターネットゲートウェイやルートテーブルでやる

resource "aws_subnet" "shobute_subnet" {
  vpc_id     = aws_vpc.shobute_vpc.id
  cidr_block = "192.168.1.0/24"
  availability_zone = "ap-northeast-1a"

  tags = {
    Name = "shobute-subnet"
  }
}

インターネットゲートウェイ

resource "aws_internet_gateway" "shobute_igw" {
  vpc_id = aws_vpc.shobute_vpc.id

  tags = {
    Name = "shobute-igw"
  }
}

ルートテーブル

VPC内のリソースに関してのルーティング(例 192.168.0.0/16:local)は自動で作成されるので記載しなくてOK。↓はパブリックサブネットの例。
また、サブネットとルートテーブルの関連付けは別途記載しなければいけない。次のセクションで記載

resource "aws_route_table" "public" {
  vpc_id = aws_vpc.shobute_vpc.id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.shobute_igw.id
  }

  tags = {
    Name = "shobute-rt-public"
  }
}

ルートテーブルとサブネットの関連付け

resource "aws_route_table_association" "public" {
  subnet_id      = aws_subnet.shobute_subnet.id
  route_table_id = aws_route_table.public.id
}

Discussion