从零到一:在华为云上创建弹性云服务器(ECS)的完整指南与深度复盘

举报
yd_255628829 发表于 2026/10/17 12:13:07 2026/10/17
【摘要】 ## 一、什么是弹性云服务器(ECS)弹性云服务器(Elastic Cloud Server,简称 ECS)是华为云提供的一种可随时获取、弹性可伸缩的计算服务。你可以把它理解为一台"住在云上的虚拟机"——但它比传统物理服务器更灵活:几分钟内就能启动一台,不需要了随时释放,按需付费,精确到秒,不为闲置资源买单。每台 ECS 由以下核心要素组成:| 组件 | 华为云服务 | 说明 | 关键参数 ...

## 一、什么是弹性云服务器(ECS)

弹性云服务器(Elastic Cloud Server,简称 ECS)是华为云提供的一种可随时获取、弹性可伸缩的计算服务。你可以把它理解为一台"住在云上的虚拟机"——但它比传统物理服务器更灵活:几分钟内就能启动一台,不需要了随时释放,按需付费,精确到秒,不为闲置资源买单。

每台 ECS 由以下核心要素组成:

| 组件 | 华为云服务 | 说明 | 关键参数 |
|------|-----------|------|----------|
| 规格(Flavor) | ECS | CPU+内存预设组合 | vCPU数、内存大小、系列类型 |
| 镜像(Image) | IMS | 操作系统模板 | 公共/私有/市场镜像 |
| 网络 | VPC | 虚拟私有云+子网 | CIDR网段、网关、可用区 |
| 安全组 | VPC | 状态化虚拟防火墙 | 入/出站规则、协议、端口、源IP |
| 云硬盘 | EVS | 系统盘+数据盘 | 类型(SSD/GPSSD/SATA)、容量、IOPS |
| 弹性公网IP | EIP | 可独立申请的公网IP | 带宽大小、计费方式(按带宽/按流量) |

ECS 不是孤立存在的,它在华为云架构中是"计算心脏"——上面接 ELB 负载均衡分发流量,下面挂 EVS 云硬盘存数据,旁边连 RDS 数据库和 OBS 对象存储,外围有 AS 弹性伸缩做扩缩容、CES 云监控做可观测。

---

## 二、创建 ECS 的完整步骤

### 方式一:通过华为云控制台(适合初学者)

#### Step 1:进入购买页面

登录 [华为云控制台](https://console.huaweicloud.com/),导航 **服务列表 → 计算 → 弹性云服务器 ECS**,点击 **"购买弹性云服务器"**。

#### Step 2:基础配置

**计费模式**:

| 模式 | 价格水平 | 适用场景 | 风险 |
|------|---------|----------|------|
| 按需付费 | 基准价 × 1 | 开发测试、短期突发 | 长期运行成本高 |
| 包年包月 | 基准价 × 0.6~0.8 | 长期稳定业务 | 提前付费,闲置浪费 |
| 竞价实例 | 基准价 × 0.1~0.3 | 批处理、离线计算 | 随时可能被回收 |

> **成本优化技巧**:核心业务用包年包月(稳定+便宜),突发流量用按需付费(灵活),离线任务用竞价实例(极便宜)。三者组合可省 30-50%。

**区域**:选择离用户最近的区域。cn-north-4(华北-北京四)可用区最多(6个),从北京访问延迟 < 10ms。区域一旦选定不可更改。

**CPU 架构**:

| 架构 | 芯片 | 优势 | 推荐场景 |
|------|------|------|----------|
| x86 | Intel/AMD | 生态最全,所有软件都能跑 | 通用业务、Windows、x86专有应用 |
| 鲲鹏(ARM) | 鲲鹏920 | 性价比高(便宜15-25%),多核强 | Java、大数据、数据库、Nginx、容器 |

**规格**:命名规则是 `系列代号.大小.内存倍率`,例如 s6.large.2 = 通用计算第6代、2vCPU、内存是vCPU的2倍(4GB)。

| 系列 | 类型 | CPU:内存 | 典型规格 | 场景 |
|------|------|---------|---------|------|
| s6/s7 | 通用计算型 | 1:2 | s6.large.2(2C4G)、s6.xlarge.2(4C8G) | Web、微服务、通用业务 |
| c6/c7 | 计算加速型 | 1:1 | c6.2xlarge.1(8C8G) | CPU密集型计算 |
| m6/m7 | 内存优化型 | 1:4~1:8 | m6.large.4(2C8G)、m6.2xlarge.8(8C64G) | 数据库、大数据 |
| g5/g6 | GPU加速型 | - | g5.xlarge.1(4C8G+1×T4) | GPU计算、视频转码 |
| ai1/ai2 | AI加速型 | - | ai1.large.4(2C8G+1NPU) | AI推理/训练 |
| t6 | 通用入门型 | 1:1 | t6.small.1(1C1G) | 软路由、极低负载 |

> **选型建议**:不确定就选 s6.large.2(2vCPU/4GB),最通用的入门规格,按需约 ¥0.34/小时(x86,北京四,价格随时间调整)。

**镜像**:

| OS | 版本推荐 | 注意事项 |
|----|---------|----------|
| Ubuntu | 22.04 LTS | 社区资源最丰富,推荐新项目使用 |
| EulerOS | 2.5 | 华为自研,与云服务兼容最好 |
| OpenEuler | 22.03 LTS | 开源国产OS,鲲鹏优化,CentOS替代方案 |
| CentOS | 7.9 | **已EOL(2024-06-30)**,不建议新项目使用 |
| Windows Server | 2019 | .NET、SQL Server 场景 |

**登录凭证**:强烈建议用**密钥对**而非密码。密钥对是非对称加密,安全性高几个数量级。新建密钥对会下载 `.pem` 文件,**只能下载一次**,丢了得重建。

#### Step 3:网络配置

**VPC 和子网**:第一次用可选"默认VPC"(自动创建 192.168.0.0/16)。自定义时建议 VPC 用 /16、子网用 /24,不同业务用不同子网(web 192.168.0.0/24、db 192.168.1.0/24)。不要用 10.0.0.0/8 或 172.16.0.0/12,容易和办公网冲突。

**安全组**——新建时建议规则:

| 规则 | 方向 | 协议 | 端口 | 源地址 | 说明 |
|------|------|------|------|--------|------|
| SSH | 入方向 | TCP | 22 | 你的办公网IP/32 | **只允许你的IP** |
| HTTP | 入方向 | TCP | 80 | 0.0.0.0/0 | Web服务对外 |
| HTTPS | 入方向 | TCP | 443 | 0.0.0.0/0 | Web服务对外 |
| 全部出站 | 出方向 | 全部 | 全部 | 0.0.0.0/0 | 允许主动访问外部 |

> **安全反模式警告**:绝对不要在入方向放通"全部协议+全部端口+0.0.0.0/0"。这等于把服务器完全暴露在公网,扫描器几分钟内就会找到你。

**弹性公网 IP**:带宽 5Mbit/s(测试)/ 100Mbit/s(Web服务)。计费方式:按带宽(固定,适合持续使用)/ 按流量(0.8元/GB,适合低频访问)。省钱技巧:多个ECS通过NAT网关共享一个EIP,比每台都买EIP便宜得多。

#### Step 4:高级配置

**系统盘**:通用型SSD(GPSSD)性价比最好,最高20000 IOPS,40GB(Linux)/ 80GB(Windows)。高性能场景选极速型SSD(ESSD),最高100000 IOPS。

**数据盘**:按需添加。重要设置——**"随实例释放"改为"否"**,这样ECS误删后数据盘还在,可挂到其他ECS恢复数据。

**标签**:强烈建议打标签方便成本分摊:`Environment=production`、`Project=my-web-app`、`Owner=zhangsan`。

#### Step 5:确认购买

检查配置摘要和价格,点击"立即购买"。通常 1-3 分钟内 ECS 进入"运行中"状态。

#### Step 6:登录验证

```bash
chmod 400 my-keypair.pem
ssh -i my-keypair.pem root@121.78.xx.xx
# 登录后先更新系统
apt update && apt upgrade -y
```

---

### 方式二:通过 Terraform(适合工程师,可复现、可版本化)

控制台点出来的 ECS,下次要再建一台一模一样的,你得重新点一遍。Terraform 写一次,复用无数次,还能用 git 管理变更历史。

```hcl
# versions.tf
terraform {
  required_providers {
    huaweicloud = {
      source  = "huaweicloud/huaweicloud"
      version = ">= 1.50.0"
    }
  }
}

# provider.tf — 推荐通过环境变量传入 AK/SK,不要硬编码
provider "huaweicloud" {
  region = "cn-north-4"
  # export HW_ACCESS_KEY="你的AK"
  # export HW_SECRET_KEY="你的SK"
}

# network.tf — VPC + 子网 + 安全组
resource "huaweicloud_vpc" "main" {
  name = "blog-demo-vpc"
  cidr = "192.168.0.0/16"
}

resource "huaweicloud_vpc_subnet" "web" {
  name       = "subnet-web"
  vpc_id     = huaweicloud_vpc.main.id
  cidr       = "192.168.0.0/24"
  gateway_ip = "192.168.0.1"
  dns_list   = ["100.125.1.250", "100.125.64.250"]
}

resource "huaweicloud_networking_secgroup" "web" {
  name        = "sg-web"
  description = "Web server security group"
}

# SSH — 生产环境把 0.0.0.0/0 改成你的办公网 IP
resource "huaweicloud_networking_secgroup_rule" "ssh" {
  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.web.id
}

resource "huaweicloud_networking_secgroup_rule" "http" {
  direction         = "ingress"
  ethertype         = "IPv4"
  protocol          = "tcp"
  port_range_min    = 80
  port_range_max    = 80
  remote_ip_prefix  = "0.0.0.0/0"
  security_group_id = huaweicloud_networking_secgroup.web.id
}

# compute.tf — 查询镜像 + 创建 ECS
data "huaweicloud_images_image" "ubuntu" {
  name        = "Ubuntu 22.04 server 64bit"
  most_recent = true
}

resource "huaweicloud_compute_instance" "web" {
  name              = "blog-demo-ecs"
  image_id          = data.huaweicloud_images_image.ubuntu.id
  flavor_id         = "s6.large.2"
  availability_zone = "cn-north-4a"
  key_pair          = "my-keypair"

  system_disk_type = "SSD"
  system_disk_size = 40

  security_group_ids = [huaweicloud_networking_secgroup.web.id]
  subnet_id          = huaweicloud_vpc_subnet.web.id

  # 数据盘 — 不随实例释放,防误删
  data_disks {
    type = "SSD"
    size = 100
  }

  tags = {
    Environment = "production"
    ManagedBy   = "terraform"
  }

  # 首次启动自动装 Nginx
  user_data = <<-EOF
    #!/bin/bash
    apt update -y && apt install -y nginx
    systemctl enable --now nginx
  EOF
}

# eip.tf — 弹性公网 IP
resource "huaweicloud_vpc_eip" "web" {
  publicip { type = "5_bgp" }
  bandwidth {
    name        = "bw-web"
    size        = 5
    share_type  = "PER"
    charge_mode = "traffic"
  }
}

resource "huaweicloud_vpc_eip_associate" "web" {
  public_ip            = huaweicloud_vpc_eip.web.publicip[0].ip_address
  network_interface_id = huaweicloud_compute_instance.web.network[0].port_id
}

# outputs.tf
output "ssh_command" {
  value = "ssh -i my-keypair.pem root@${huaweicloud_vpc_eip.web.publicip[0].ip_address}"
}
```

执行流程:

```bash
terraform init      # 初始化,下载 provider 插件
terraform plan      # 预览将要创建的资源(先看再执行,减少误操作)
terraform apply     # 输入 yes 确认后执行创建
terraform output    # 查看输出(SSH 登录命令等)
```

> **为什么用 Terraform?** 三个理由:(1) 可复现——代码即文档,任何人都能重建相同环境;(2) 可版本化——git 管理变更历史,谁改了什么一目了然;(3) 可审计——`plan` 先看变更再执行,减少误操作。

---

## 三、规格选型与计费实战

### 3.1 按业务场景选规格

| 场景 | 推荐规格 | 月费估算(按需) | 说明 |
|------|---------|----------------|------|
| 个人博客/测试 | t6.small.1 (1C1G) | ~¥50 | 最低成本 |
| 小型企业站 | s6.large.2 (2C4G) | ~¥245 | 日PV < 1万 |
| 中型Web应用 | s6.xlarge.2 (4C8G) | ~¥490 | 日PV 1-10万 |
| 数据库(开发) | m6.large.4 (2C8G) | ~¥370 | 内存要够放缓存 |
| 数据库(生产) | m6.2xlarge.8 (8C64G) | ~¥1480 | 100万行级别 |
| AI推理(GPU) | g5.xlarge.1 (4C8G+T4) | ~¥2100 | T4推理性价比高 |

> 估算基于 x86 按需付费、北京四区域,仅供参考,实际价格以控制台为准。

### 3.2 计费模式决策

以 s6.large.2 (2C4G) x86 北京四为例:

| 计费模式 | 小时费 | 月费 | 年费 | 适用判断 |
|---------|--------|------|------|---------|
| 按需付费 | ¥0.34 | ~¥245 | ~¥2940 | 运行 < 12小时/天 |
| 包月 | - | ¥185 | ¥1850 | 运行 > 12小时/天 |
| 包年 | - | - | ¥1480 | 长期稳定运行 |
| 竞价 | ~¥0.07 | ~¥50 | - | 可容忍中断 |

**隐藏成本提醒**:EIP带宽费(5M约¥25/月)、云硬盘费(40GB GPSSD约¥32/月)、公网流量费(0.8元/GB)。有人开了10台ECS做测试忘了关机,周末两天花了¥400+——养成"用完就关/删"的习惯。

### 3.3 鲲鹏 vs x86 实测对比参考

| 指标 | x86 s6.large.2 | 鲲鹏 s6.large.2 | 差异 |
|------|---------------|----------------|------|
| 价格(按需/小时) | ~¥0.34 | ~¥0.27 | 鲲鹏便宜约20% |
| Java吞吐(ops/s) | ~1200 | ~1350 | 鲲鹏优约12% |
| Nginx QPS | ~8500 | ~9200 | 鲲鹏优约8% |

> 数据为参考性测试,实际表现取决于工作负载,建议用你自己的业务做benchmark。

---

## 四、网络架构设计:从单机到高可用

### Level 0:单机部署(开发测试)

```
公网用户 → EIP → ECS(192.168.0.168)
```

1台ECS + 1个EIP,成本最低但单点故障。适合开发测试、PoC。

### Level 1:ELB + 双机跨 AZ(基础高可用)

```
公网用户 → EIP → ELB(负载均衡)
                ├── ECS-1(192.168.0.10, AZ-4a)
                └── ECS-2(192.168.0.11, AZ-4b)
```

2台ECS跨2个AZ,ELB分发流量。单台故障ELB自动摘除,业务不中断。适合中型Web应用。

> **高可用铁律**:至少跨2个AZ部署。4a机房故障时4b的服务器不受影响。

### Level 2:ELB + AS 自动伸缩(弹性高可用)

```
公网用户 → ELB → AS伸缩组(2-10台)
                      ├── ECS-1(AZ-4a) ← 最低保持2台
                      ├── ECS-2(AZ-4b)
                      └── ECS-N(自动扩缩容)
                 CES告警: CPU>70%扩容, <30%缩容
```

伸缩组设定 min=2, max=10,CPU > 70% 持续5分钟自动加机器,CPU < 30% 持续10分钟自动减机器。适合流量波动大的业务(电商大促、在线教育)。

---

## 五、安全加固清单:从默认到生产级

### 5.1 网络层

| # | 措施 | 操作 | 级别 |
|---|------|------|------|
| 1 | SSH限制源IP | 安全组源地址改为办公网IP/32 | P0 |
| 2 | 删除多余入站规则 | 只保留22/80/443 | P0 |
| 3 | 数据库不挂EIP | RDS/ECS只用内网,通过应用层访问 | P0 |
| 4 | 用NAT网关出公网 | ECS不直接绑EIP | P1 |

### 5.2 主机层

| # | 措施 | 命令 | 级别 |
|---|------|------|------|
| 1 | 禁用密码登录 | `PasswordAuthentication no` | P0 |
| 2 | 禁止root直接登录 | `PermitRootLogin no` | P0 |
| 3 | 改SSH端口 | `Port 2222`(安全组同步放通) | P1 |
| 4 | 安装fail2ban | `apt install fail2ban` | P1 |
| 5 | 自动安全更新 | `apt install unattended-upgrades` | P1 |

SSH 加固具体操作:

```bash
vim /etc/ssh/sshd_config
# 修改:
#   Port 2222
#   PermitRootLogin no
#   PasswordAuthentication no
#   MaxAuthTries 3
systemctl restart sshd
# 注意:改端口后安全组也要放通新端口 2222
```

### 5.3 数据层

| # | 措施 | 操作 | 级别 |
|---|------|------|------|
| 1 | 数据盘加密 | 创建时勾选"加密",使用KMS密钥 | P1 |
| 2 | 定期快照 | 每日自动快照,保留7天 | P0 |
| 3 | 数据盘不随实例释放 | 创建时设为"否" | P0 |

---

## 六、监控与故障排查

### 6.1 关键监控指标与告警阈值

安装 CES Agent(控制台:ECS列表 → 更多 → 安装Agent),然后配置告警:

| 指标 | 告警阈值 | 说明 |
|------|---------|------|
| CPU使用率 | > 80% / 5min | 考虑扩容或排查高负载进程 |
| 内存使用率 | > 85% / 5min | 可能内存泄漏 |
| 磁盘使用率 | > 90% / 1min | 紧急!磁盘写满导致服务崩溃 |
| 网络入带宽 | > 带宽80% / 5min | 可能被攻击或流量突增 |

### 6.2 常见故障排查

**SSH 连不上**:

| 现象 | 可能原因 | 解决 |
|------|---------|------|
| Connection timed out | 安全组没放通22端口 | 添加TCP 22入站规则 |
| Connection refused | SSH服务没启动 | 控制台VNC登录 → `systemctl start sshd` |
| Permission denied | 密钥对不匹配 | 控制台重新绑定密钥对 |
| 密钥被拒绝 | .pem权限太开放 | `chmod 400 xxx.pem` |

**磁盘满了**:

```bash
df -h                                    # 查看磁盘使用情况
du -sh /var/log/* | sort -rh | head -10  # 找大文件
find /var/log -name "*.log" -size +100M -exec truncate -s 0 {} \;  # 清理大日志
apt clean                                # 清理apt缓存
```

**CPU 100%**:

```bash
top -c                    # 按P按CPU排序,找出高CPU进程
ps aux | grep <PID>       # 查看进程详情
# 检查是否有挖矿木马
crontab -l                # 检查异常定时任务
ps aux | grep -E "miner|xmrig"  # 检查挖矿进程
```

---

## 七、华为云 ECS 的优点

### 1. 弹性伸缩,按需付费
流量高峰时加机器,低谷时减机器,配合 AS 自动完成。按需计费精确到秒,不浪费一分钱。电商大促期间平时2台自动扩到10台,大促结束缩回2台,只付几小时的费用。

### 2. 规格丰富,覆盖全场景
从 1vCPU/1GB 的 t6 到 128vCPU/1024GB 的超大实例,从通用计算到 GPU 加速(T4/V100)、AI 推理专用(昇腾NPU),7大系列覆盖几乎所有场景。

### 3. 鲲鹏 ARM 生态加持
华为自研鲲鹏920芯片,在 Java、大数据、数据库等场景下性能表现出色,且价格比同级别 x86 低 15-25%。Java应用吞吐量实测优10-15%,多核并行能力强。

### 4. 生态完善,一站式云服务
与 VPC、EVS、RDS、ELB、AS、CES、CBR 等服务无缝集成,组件之间天然互通。在华为云上搭建完整业务架构,不需要跨云拼凑。

### 5. 安全合规
通过 ISO 27001、CSA STAR 等国际认证和等保2.0三级/四级认证。安全组+VPC隔离+KMS加密多层防护,数据不出境,适合政企客户。

### 6. 本地化服务优势
中文文档完善,国内节点延迟低(<10ms同区域),客服7×24响应,企业客户有专属客户经理,符合国内监管要求。

---

## 八、华为云 ECS 的缺点与局限

### 1. 全球覆盖不如 AWS / Azure
华为云海外节点约20+个,AWS有30+区域100+AZ。面向全球用户的业务,在南美、非洲部分地区可能没有就近节点,延迟偏高。

### 2. 文档质量参差不齐
部分API文档参数说明不够详细,缺少示例代码。Terraform Provider文档的参数描述有时与实际行为不一致。社区资源丰富度不如AWS,冷门问题可参考资料较少。

### 3. 控制台体验有提升空间
部分操作路径较深,全局搜索功能较弱。高级配置项(如云服务器组、元数据)的入口不够直观,需要翻文档才能找到。

### 4. Terraform Provider 成熟度
相比 AWS Provider 仍有差距:资源类型约150 vs 1000+,新服务支持可能滞后API 1-3个月,社区贡献活跃度中等。遇到Provider bug可能需要等较长时间修复。

### 5. 生态锁定风险
使用鲲鹏实例、昇腾NPU等专有服务后,迁移到其他云需要改造。建议应用层容器化、数据层用标准协议、IaC层用Terraform来降低锁定风险。

### 6. 部分计费粒度较粗
EIP最小带宽步进1Mbit/s,对极小带宽场景不够灵活。竞价实例回收通知时间较短(2分钟)。包年包月不支持中途退款(部分场景扣手续费)。

---

## 九、与 AWS EC2 / 阿里云 ECS 横向对比

| 维度 | 华为云ECS | AWS EC2 | 阿里云ECS |
|------|-----------|---------|-----------|
| 区域数 | ~20+ | ~30+ | ~25+ |
| 规格种类 | 100+ | 400+ | 200+ |
| ARM支持 | 鲲鹏(成熟) | Graviton(成熟) | 倚天(成熟) |
| Terraform成熟度 | 中等 | 最成熟 | 较成熟 |
| 国内延迟 | 优秀 | 一般 | 优秀 |
| 文档质量 | 中等 | 优秀 | 良好 |
| 性价比 | 中等 | 较高 | 中等 |
| 合规认证 | 等保+国际 | 国际最全 | 等保+国际 |

**选型建议**:国内业务+政企合规→华为云;国内业务+电商→阿里云;全球业务+技术团队强→AWS。

---

## 十、总结与建议

华为云 ECS 是一个成熟、稳定、规格丰富的云服务器产品。对于国内业务、政企客户、以及对成本敏感的团队来说,它是一个值得认真考虑的选择——尤其是鲲鹏 ARM 实例带来的性价比优势。

**给不同人群的建议**:

- **云新手**:从控制台开始,用按需付费创建一台 s6.large.2,SSH 登录装个 Nginx 跑跑看,用完就释放
- **开发工程师**:直接学 Terraform,先搭 ELB+双机跨AZ,配好监控告警和自动备份
- **架构师**:规划多AZ多子网网络架构,设计弹性高可用架构,做好安全加固和成本优化体系

创建 ECS 只是起点,真正的架构设计——网络规划、高可用部署、自动伸缩、监控告警——才是云上架构的核心课题。后续我会继续分享这些主题,敬请关注。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。