赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 开发参考
  5. Terraform参考
  6. 创建一台ECS实例

创建一台ECS实例

  • Terraform参考
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

本文介绍如何使用Terraform创建一台ECS实例。

说明

本教程所含示例代码支持一键运行,您可以直接运行代码。一键运行

前提条件

在开始之前,请您确保完成以下操作:

  • 使用Terraform,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。

  • 已经安装并配置了Terraform,具体操作请参见在本地安装和配置Terraform和Cloud Shell。

操作步骤

  1. 创建专有网络和交换机。

    1. 创建terraform.tf文件,输入以下内容,并保存在当前的执行目录中。

      variable "region" {
        default = "cn-beijing"
      }
      
      variable "instance_type" {
        default = "ecs.n4.large"
      }
      
      provider "alicloud" {
        region = var.region
      }
      
      data "alicloud_zones" "default" {
        available_disk_category     = "cloud_efficiency"
        available_resource_creation = "VSwitch"
        available_instance_type     = var.instance_type
      }
      
      resource "alicloud_vpc" "vpc" {
        vpc_name   = "tf_test_foo"
        cidr_block = "172.16.0.0/12"
      }
      
      resource "alicloud_vswitch" "vsw" {
        vpc_id     = alicloud_vpc.vpc.id
        cidr_block = "172.16.0.0/21"
        zone_id    = data.alicloud_zones.default.zones.0.id
      }
    2. 运行terraform init进行初始化。

    3. 运行terraform apply开始创建。

    4. 运行terraform show查看已创建的专有网络和交换机。

      您也可以登录VPC控制台查看专有网络和交换机的属性。

  2. 在上一步创建的专有网络中创建一个安全组,并添加一个允许任何地址访问的安全组规则。

    1. 在terraform.tf文件中增加以下内容。

      resource "alicloud_security_group" "default" {
        security_group_name = "default"
        vpc_id              = alicloud_vpc.vpc.id
      }
      
      resource "alicloud_security_group_rule" "allow_all_tcp" {
        type              = "ingress"
        ip_protocol       = "tcp"
        nic_type          = "intranet"
        policy            = "accept"
        port_range        = "1/65535"
        priority          = 1
        security_group_id = alicloud_security_group.default.id
        cidr_ip           = "0.0.0.0/0"
      }
    2. 运行terraform apply开始创建。

    3. 运行terraform show查看已创建的安全组和安全组规则。

      您也可以登录ECS控制台查看安全组和安全组规则。

  3. 创建ECS实例。

    1. 在terraform.tf文件中增加以下内容。

      resource "alicloud_instance" "instance" {
        # cn-beijing
        availability_zone = data.alicloud_zones.default.zones.0.id
        security_groups   = alicloud_security_group.default.*.id
        # series III
        instance_type              = var.instance_type
        system_disk_category       = "cloud_efficiency"
        image_id                   = var.image_id
        instance_name              = "test_foo"
        vswitch_id                 = alicloud_vswitch.vsw.id
        internet_max_bandwidth_out = 10
      }
      
      output "public_ip" {
          value = alicloud_instance.instance.public_ip
      }
      说明
      • 在上述示例中,指定了internet_max_bandwidth_out= 10,因此会自动为实例分配一个公网IP,输出到 output 中。

      • 详细的参数解释请参见 阿里云参数说明。

    2. 运行terraform apply开始创建。

    3. 运行terraform show查看已创建的ECS实例。

    4. 运行ssh root@<publicip>,并输入设定好的密码来访问ECS实例。

操作样例

说明

当前示例代码支持一键运行,您可以直接运行代码。一键运行

variable "region" {
  default = "cn-beijing"
}

variable "instance_type" {
  default = "ecs.n4.large"
}

variable "image_id" {
  default = "ubuntu_18_04_64_20G_alibase_20190624.vhd"
}

provider "alicloud" {
  region = var.region
}

data "alicloud_zones" "default" {
  available_disk_category     = "cloud_efficiency"
  available_resource_creation = "VSwitch"
  available_instance_type     = var.instance_type
}

resource "alicloud_vpc" "vpc" {
  vpc_name   = "tf_test_foo"
  cidr_block = "172.16.0.0/12"
}

resource "alicloud_vswitch" "vsw" {
  vpc_id     = alicloud_vpc.vpc.id
  cidr_block = "172.16.0.0/21"
  zone_id    = data.alicloud_zones.default.zones.0.id
}

resource "alicloud_security_group" "default" {
  security_group_name = "default"
  vpc_id              = alicloud_vpc.vpc.id
}

resource "alicloud_security_group_rule" "allow_all_tcp" {
  type              = "ingress"
  ip_protocol       = "tcp"
  nic_type          = "intranet"
  policy            = "accept"
  port_range        = "1/65535"
  priority          = 1
  security_group_id = alicloud_security_group.default.id
  cidr_ip           = "0.0.0.0/0"
}

resource "alicloud_instance" "instance" {
  # cn-beijing
  availability_zone = data.alicloud_zones.default.zones.0.id
  security_groups   = alicloud_security_group.default.*.id
  # series III
  instance_type              = var.instance_type
  system_disk_category       = "cloud_efficiency"
  image_id                   = var.image_id
  instance_name              = "test_foo"
  vswitch_id                 = alicloud_vswitch.vsw.id
  internet_max_bandwidth_out = 10
}

output "public_ip" {
  value = alicloud_instance.instance.public_ip
}
相关文章

创建一台ECS实例 2025-04-01 11:58

本文介绍如何使用Terraform创建一台ECS实例。 说明 本教程所含示例代码支持一键运行,您可以直接运行代码。

通过Terraform为弹性网卡绑定EIP 2025-04-01 11:58

弹性公网IP(Elastic IP Address)是可以独立购买和持有的公网IP地址资源,当EIP和云资源绑定后,云资源可以通过EIP与公网通信。例如在单个ECS实例上托管多个应用时,可以通过为每个应用分配独立的辅助弹性网卡并绑定独立的弹性公网IP(EIP),实现每个应用对外呈现一个独立的公网IP

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号