概要
TerraformでVPCの設定をします。
基本的な設定ですが、サブネットは一応AZを考慮して2つ作っています。
環境
- Ubuntu 14.04
- Terraform 0.3.7
設定
以下の設定で構築します。
VPC
設定項目 | 設定値 |
---|---|
名前 | vpc-1 |
ネットワークの範囲 | 10.0.0.0/16 |
インターネットゲートウェイ
設定項目 | 設定値 |
---|---|
名前 | vpc-1-igw |
VPC | vpc-1 |
サブネット1
設定項目 | 設定値 |
---|---|
名前 | vpc-1-subnet-1a |
VPC | vpc-1 |
ネットワークの範囲 | 10.0.10.0/24 |
Availability Zone | ap-northeast-1a |
サブネット2
設定項目 | 設定値 |
---|---|
名前 | vpc-1-subnet-1c |
VPC | vpc-1 |
ネットワークの範囲 | 10.0.20.0/24 |
Availability Zone | ap-northeast-1c |
ルートテーブル
設定項目 | 設定値 |
---|---|
名前 | vpc-1-public-rt |
VPC | vpc-1 |
ネットワークの範囲 | 0.0.0.0/0 |
Target | vpc-1-igw(設定したインターネットゲートウェイ) |
紐つけるサブネット | vpc-1-subnet-1a, vpc-1-subnet-1c |
フォルダ構成
ファイル名 | 役割 |
---|---|
config.tf | providerにアクセスするための設定 |
vpc.tf | VPC、サブネット、ゲートウェイ等の設定 |
.tfファイル作成
config.tf
provider "aws" { access_key = "xxxxxxxxxxxxxxxxxxx" secret_key = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" region = "ap-northeast-1" }
vpc.tf
# VPC resource "aws_vpc" "vpc-1" { cidr_block = "10.0.0.0/16" tags { Name = "vpc-1" } } # Internet Gateway resource "aws_internet_gateway" "vpc-1-igw" { vpc_id = "${aws_vpc.vpc-1.id}" tags { Name = "vpc-1-igw" } } # Subnets resource "aws_subnet" "vpc-1-subnet-1a" { vpc_id = "${aws_vpc.vpc-1.id}" cidr_block = "10.0.10.0/24" availability_zone = "ap-northeast-1a" tags { Name = "vpc-1-subnet-1a" } } resource "aws_subnet" "vpc-1-subnet-1c" { vpc_id = "${aws_vpc.vpc-1.id}" cidr_block = "10.0.20.0/24" availability_zone = "ap-northeast-1c" tags { Name = "vpc-1-subnet-1c" } } # Routes Table resource "aws_route_table" "vpc-1-public-rt" { vpc_id = "${aws_vpc.vpc-1.id}" route { cidr_block = "0.0.0.0/0" gateway_id = "${aws_internet_gateway.vpc-1-igw.id}" } tags { Name = "vpc-1-public-rt" } } resource "aws_route_table_association" "vpc-1-rta-1a" { subnet_id = "${aws_subnet.vpc-1-subnet-1a.id}" route_table_id = "${aws_route_table.vpc-1-public-rt.id}" } resource "aws_route_table_association" "vpc-1-rta-1c" { subnet_id = "${aws_subnet.vpc-1-subnet-1c.id}" route_table_id = "${aws_route_table.vpc-1-public-rt.id}" }
計画と実行
$ terraform plan
してエラーがでなければ
$ terraform apply
で反映させてください。