我整理了在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

广告
将在 10 秒后关闭
bannerAds