mzumi's blog

Terraform を使ってパブリックサブネットを構築する

August 26, 2016

前回、VPCを作成したので、続いてサブネットを作成する。
インターネットに直接アクセスできるパブリックサブネットと
NAT経由でアクセスするプライベートサブネットの2つを作成する。
今回は、パブリックなネットワークを作成する。

インターネットゲートウェイの作成

まず、最初にインターネットにアクセスするためのゲートウェイを作成する。

ルートテーブルの作成

インターネットと通信を行うために、先ほど作成したインターネットゲートウェイをデフォルトゲートウェイとして設定する。

パブリックサブネットを作成

インターネットからアクセスできるサブネットを作成する

で、この作成したサブネットにデフォルトゲートウェイを設定する。

確認

terraform plan を実行したところ以下になった。

Refreshing Terraform state prior to plan...

aws_vpc.vpc-1: Refreshing state... (ID: vpc-060b1b63)

The Terraform execution plan has been generated and is shown below.
Resources are shown in alphabetical order for quick scanning. Green resources
will be created (or destroyed and then created if an existing resource
exists), yellow resources are being changed in-place, and red resources
will be destroyed.

Note: You didn't specify an "-out" parameter to save this plan, so when
"apply" is called, Terraform can't guarantee this is what will execute.

+ aws_internet_gateway.igw-1
    tags.#:    "0" => "1"
    tags.Name: "" => "igw-1"
    vpc_id:    "" => "vpc-060b1b63"

+ aws_route_table.public-route-table
    route.#:                                     "" => "1"
    route.~3025295716.cidr_block:                "" => "0.0.0.0/0"
    route.~3025295716.gateway_id:                "" => "${aws_internet_gateway.igw-1.id}"
    route.~3025295716.instance_id:               "" => ""
    route.~3025295716.nat_gateway_id:            "" => ""
    route.~3025295716.network_interface_id:      "" => ""
    route.~3025295716.vpc_peering_connection_id: "" => ""
    tags.#:                                      "" => "1"
    tags.Name:                                   "" => "public-route-table"
    vpc_id:                                      "" => "vpc-060b1b63"

+ aws_route_table_association.public-association
    route_table_id: "" => "${aws_route_table.public-route-table.id}"
    subnet_id:      "" => "${aws_subnet.subnet-public-1a.id}"

+ aws_subnet.subnet-public-1a
    availability_zone:       "" => "ap-northeast-1a"
    cidr_block:              "" => "10.0.1.0/24"
    map_public_ip_on_launch: "" => "false"
    tags.#:                  "" => "1"
    tags.Name:               "" => "subnet-public-1a"
    vpc_id:                  "" => "vpc-060b1b63"


Plan: 4 to add, 0 to change, 0 to destroy.

となり、terraform apply で実行すると作成された。

ただ、これだけだと実際にインターネットからアクセスできるかどうか
わからないので、次回、検証用の EC2 インスタンスを起動させて確かめる。