🦁
自分用terraform具体的な設定値(随時追加)
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