更新时间:2024-08-13 GMT+08:00

典型网络配置

应用场景

在创建VPC之前,您需要根据具体的业务需求规划VPC的数量,子网的数量、IP网段划分和互联互通方式等。详细的网络规划请参考虚拟私有云最佳实践

本教程将创建一个VPC用于托管Web应用或网站,其私网网段为192.168.0.0/16,按照业务模块划分3个子网,子网1用于Web层,子网2用于应用层,子网3用于数据层。将服务器划分到不同的安全组中,按需设置访问控制策略,满足高安全场景。

操作步骤

  1. 创建虚拟私有云和子网。

    1. 创建network.tf文件,输入以下内容,并保存在当前的执行目录中。
      resource "huaweicloud_vpc" "vpc" {
        name = "vpc-web"
        cidr = "192.168.0.0/16"
      }
      resource "huaweicloud_vpc_subnet" "subnet1" {
        name       = "subnet-web"
        cidr       = "192.168.10.0/24"
        gateway_ip = "192.168.10.1"
        vpc_id     = huaweicloud_vpc.vpc.id
        dns_list   = ["100.125.1.250", "100.125.129.250"]
      }
      resource "huaweicloud_vpc_subnet" "subnet2" {
        name       = "subnet-app"
        cidr       = "192.168.20.0/24"
        gateway_ip = "192.168.20.1"
        vpc_id     = huaweicloud_vpc.vpc.id
        dns_list   = ["100.125.1.250", "100.125.129.250"]
      }
      resource "huaweicloud_vpc_subnet" "subnet3" {
        name       = "subnet-db"
        cidr       = "192.168.30.0/24"
        gateway_ip = "192.168.30.1"
        vpc_id     = huaweicloud_vpc.vpc.id
        dns_list   = ["100.125.1.250", "100.125.129.250"]
      }
      表1 参数说明

      资源名称

      参数名称

      参数说明

      huaweicloud_vpc

      name

      虚拟私有云名称。

      • 取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)
      • 约束:同一个租户下的名称不能重复

      cidr

      虚拟私有云下可用子网的范围必须是cidr格式,例如:192.168.0.0/16

      huaweicloud_vpc_subnet

      name

      子网名称。

      • 取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)

      cidr

      子网的网段。

      • 取值范围:必须在vpc对应cidr范围内
      • 约束:必须是cidr格式。掩码长度不能大于28

      gateway_ip

      子网的网关

      vpc_id

      子网所在VPC标识,此处采用引用的形式:huaweicloud_vpc.vpc.id

      dns_list

      子网dns服务器地址的集合不填时,默认为空。内网DNS地址请参见华为云提供的内网DNS地址是多少?

    2. 运行 terraform init 初始化环境。
    3. 运行 terraform plan 查看资源。
    4. 确认资源无误后,运行 terraform apply 开始创建。
    5. 运行 terraform show 查看已创建的VPC和subnet。

  2. 创建安全组和安全组规则。

    1. 在network.tf文件中增加以下内容。
      resource "huaweicloud_networking_secgroup" "mysecgroup" {
        name                 = "secgroup"
        description          = "My security group"
        delete_default_rules = true
      }
      resource "huaweicloud_networking_secgroup_rule" "secgroup_rule" {
        direction         = "ingress"
        ethertype         = "IPv4"
        protocol          = "tcp"
        port_range_min    = 22
        port_range_max    = 22
        remote_ip_prefix  = "0.0.0.0/0"
        security_group_id = huaweicloud_networking_secgroup.mysecgroup.id
      }
    2. 运行 terraform plan 查看资源。
    3. 确认资源无误后,运行 terraform apply 开始创建。
    4. 运行 terraform show 查看已创建的安全组和安全组规则。