VPC、サブネット、ルートテーブル、およびインターネットゲートウェイを作成する
1. Terraformをインストールし、AWSプロバイダを設定します。
provider "aws" {
region = "us-west-2"
}
2. VPCを作成するためのリソースを定義します。
resource "aws_vpc" "my_vpc" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "My VPC"
}
}
3. サブネットを作成するためのリソースを定義します。
resource "aws_subnet" "public_subnet" {
vpc_id = aws_vpc.my_vpc.id
cidr_block = "10.0.1.0/24"
availability_zone = "ap-northeast-1a"
map_public_ip_on_launch = true
tags = {
Name = "Public Subnet"
}
}
4. ルートテーブルを作成するためのリソースを定義します。
resource "aws_route_table" "public_rt" {
vpc_id = aws_vpc.my_vpc.id
route {
cidr_block = "10.0.1.0/24"
gateway_id = aws_internet_gateway.my_igw.id
}
tags = {
Name = "Public Route Table"
}
}
5. インターネットゲートウェイを作成するためのリソースを定義します。
resource "aws_internet_gateway" "my_igw" {
tags = {
Name = "My Internet Gateway"
}
}
6. パブリックルートテーブルとパブリックサブネットを関連付けます。
resource "aws_route_table_association" "public_subnet_association" {
subnet_id = aws_subnet.public_subnet.id
route_table_id = aws_route_table.public_rt.id
}
7. パブリックルートテーブルに、インターネットゲートウェイをルートとして追加します。
resource "aws_route" "public_internet_gateway_route" {
route_table_id = aws_route_table.public_rt.id
destination_cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.my_igw.id
}
これで、VPC、サブネット、ルートテーブル、およびインターネットゲートウェイが作成され、関連付けられました。
8.セキュリティグループを作成するためのリソースを定義します。
作成されたセキュリティグループは、名前がweb_server_sgで始まり、VPCに関連付けられており、ポート番号80と443のTCPトラフィックを許可しています。また、Nameタグには"Web Server Security Group"という値が設定されます。
resource "aws_security_group" "web_server_sg" {
name_prefix = "web_server_sg"
vpc_id = aws_vpc.my_vpc.id
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "Web Server Security Group"
}
}
すべてのリソースを定義したら、Terraformを使用してAWSに適用することができます。
Terraformを初期化します。
$ terraform init
Terraformの実行計画を確認します。
$ terraform plan
Terraformを使用してAWSにリソースを作成します。
$ terraform apply
AWSで、Terraformを利用する方法をまとめてみた(1/10)
https://qiita.com/kimuni-i/items/ffde2f8df96fe5d9513f
AWSで、Terraformを利用する方法をまとめてみた(2/10)
https://qiita.com/kimuni-i/items/6298ed10adc6ad450488
AWSで、Terraformを利用する方法をまとめてみた(3/10)
https://qiita.com/kimuni-i/items/4d2f90506eb2dd4ee702
AWSで、Terraformを利用する方法をまとめてみた(4/10)
https://qiita.com/kimuni-i/items/b97089a820cc06ed2d9c
AWSで、Terraformを利用する方法をまとめてみた(5/10)
https://qiita.com/kimuni-i/items/11efb60b9a731d212211
AWSで、Terraformを利用する方法をまとめてみた(6/10)
https://qiita.com/kimuni-i/items/943daf8f4e80af12b70e
AWSで、Terraformを利用する方法をまとめてみた(7/10)
https://qiita.com/kimuni-i/items/b2cc6e1e4b5d5c1a92cb
AWSで、Terraformを利用する方法をまとめてみた(9/10)
https://qiita.com/kimuni-i/items/edbdc88f0bca9c0354d2
AWSで、Terraformを利用する方法をまとめてみた(10/10)
https://qiita.com/kimuni-i/items/2f900d792c38ad93979c