我整理了在Amazon Web Services (AWS) 上使用 Terraform 的方法。 (8/10)
创建VPC、子网、路由表和互联网网关
1. 安装 Terraform 并配置 AWS 提供商。
provider "aws" {
region = "us-west-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"
}
}
为创建互联网网关而定义资源。
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、子网、路由表以及互联网网关已被创建并关联起来。
定义创建安全组所需的资源。
创建的安全组以名称“web_server_sg”开头,并与VPC关联,允许TCP端口80和443上的流量通过。此外,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