项目2-云基础服务(2)-ECS+RDS实战
🖥️ [架构图] 项目2云服务器ECS实战总览
占位/正在制作
📌 【学习目标】
- 掌握阿里云 云服务器(ECS) 的选型、购买与网络配置流程。
- 熟练掌握通过 Web 终端(Workbench)与第三方 SSH 工具远程连接 Linux 服务器的方法。
- 掌握 弹性公网 IP(EIP) 的绑定、云盘的动态扩缩容及安全组规则的配置。
- [进阶] 理解云资源生命周期管理与成本控制原则,避免资源闲置浪费。
📖 【本课时概述】
由于计算机网络还未学过, VPC 私有网络 的搭建将在后续搭建。本节课我们直接使用ECS服务(会自动创建默认的VPC网络)——购买并配置阿里云的弹性计算服务(ECS)。您将从零开始申请一台 Linux 服务器,为其绑定公网 IP 使其能与外界通信,挂载额外的数据盘用于存储,并配置安全组(云端防火墙)来保障服务器的基础安全。
⚙️ 【知识准备】
2.2.0 云服务器前置基础与架构剖析
🍕 【通俗比喻】什么是云服务器 ECS?
对于没有接触过服务器的同学,你可以把 ECS (Elastic Compute Service) IaaS 计算 想象成一台放在云厂商机房里的、永不关机的高性能“远程电脑”。
- 物理机 vs 云服务器:以前企业要想拥有网站,必须花几万块钱买一台沉重的实体服务器放在空调房里。现在利用虚拟化技术,你只需要每个月花几十块钱,就能“租”到一台配置完全由你决定的“小电脑”。
- 弹性 (Elastic):ECS 最强大的地方在于“弹性”。随时可以在后台扩容 CPU 或内存,这是传统物理电脑绝对做不到的。
🖥️ 【架构图解】单体 ECS 经典网络拓扑结构
通过下方的架构图,我们可以直观理解即将搭建的云服务器内部构造与网络位置:
🛠️ 【项目实施】
⚙️ 任务 2.2 弹性计算服务实战(ECS)
2.2.0 课件说明
任务总体说明(六个步骤):
- 申请试用ecs实例
- 按照官方的:试用OSS存储+ECS云服务器 官方教程,进行前四步(下载资源(包括静态页面+视频资源),然后上传静态页面+视频资源到oss存储)
- 进入ecs控制台,连接实例/云服务(连接的方式有多种,目前使用阿里云提供的网页版的Workbench方式;但是在最后的ps页,会有教使用WindTerm连接 这个属于一个分支教学)
- 在控制台页面重置密码+开放80端口
- 安装Nginx+配置Nginx
- 利用ip访问刚刚的静态页面网页
🖥️ 任务步骤流程图
1. 本次课件的内容是以实际付费的ECS服务器为标准,但是实训课程教学采用阿里云的免费试用ECS ,试用链接如下:
🖥️ 试用OSS存储+ECS云服务器 官方教程页面

2. 进入 ECS 试用,选择试用的实例(可选择2核4G、centeros/ubuntu镜像、可选择预装应用/暂时不装也行)(宝塔/Docker/WordPress都可以,后面都能改/自己装)
🖥️ [界面参考] 试用云服务器ECS

3. 试用后,进入试用ecs的控制台(具体步骤参考上述官方教程的第五步)
🖥️ [界面参考] 试用云服务器ECS的控制台

4. 远程登陆ecs的控制台(选择Workbench远程连接就行)
🖥️ [界面参考] 登陆试用云服务器ECS

5. 根据上述官方教程的第五步中的第二小部分,重置密码后,进行服务器的登陆(中间可能会有弹框xxx,默认同意就行,也可以自己看一下内容)
🖥️ [界面参考] 登陆后的云服务器ECS的终端

PS. 使用自己的终端工具,通过ssh连接云服务器
- 打开WindTerm软件,连接云服务器(选择左上角会话,新建会话)
🖥️ [界面参考] WindTerm新建会话

- 输入信息(主机为服务器ip地址、密码在OneKey(类似密码本的东西)那里(需要点击那个小图标,新建一个密码配置)
🖥️ [界面参考] OneKey设置
:::
- 输入用户名(root)、输入密码(你服务器的密码)、确定、在页面选择你刚刚的OneKey
🖥️ [界面参考] OneKey设置后,输入必要信息连接服务器

- 连接服务器后的终端(中间可以会有弹框提醒,点yes就行;还有可以连接失败,你选择密码登陆就行,直接输入密码)
🖥️ [界面参考] 连接服务器后的终端

2.2.1 申请云服务器 ECS (资源选型)
1. 进入 ECS 控制台
- 登录阿里云控制台,单击页面左上角的 三条杠 图标展开产品列表。
- 在搜索框中输入关键词
计算,在结果中找到并单击 云服务器 ECS。
🖥️ [界面参考] 选择云服务器ECS

2. 基础信息配置(选择机型)
- 在 ECS 概览页面,单击 创建我的 ECS 按钮进入购买页。
- 付费模式 关键决策:
- 按量付费:用一小时扣一小时的钱,随时可释放。本实验强烈建议选择此项,避免余额浪费。
- 包年包月:适合长期运行的生产环境(如企业官网、在线教学平台),平均成本更低。
- 地域及可用区:必须选择与之前 VPC 相同的地域,这里选择 华东1(杭州),可用区选择 可用区 G。
- 实例规格:选择计算型(如
ecs.c5.large),配置为 2 vCPU,4 GiB。(提示:2核4G 是目前运行主流后端框架、Docker 及常用中间件的最低推荐配置)。
🖥️ [界面参考] ECS基础信息配置

3. 配置镜像与云盘
- 镜像(操作系统):切换到 公共镜像,下拉选择 Rocky Linux,版本选择 9.0 64位。
- 参数释义:CentOS 停服后,Rocky Linux 100% 兼容 RHEL,是目前企业部署 Java 后端环境、配置 Docker/Docker Compose 最稳定可靠的底层系统之一。
- 系统盘:选择 ESSD 云盘,容量设置为 50 GiB。
🖥️ [界面参考] ECS镜像与存储配置

4. 网络和安全组配置
- 网络(VPC):在下拉框中,务必选择上一个实验创建的专有网络
Test_VPC_1和对应的交换机Test_Switch_1。 - 公网 IP:本步骤暂不勾选 分配公网 IPv4 地址(我们将稍后演示如何手动绑定更灵活的 EIP)。
- 安全组:选择 默认安全组。
- 单击页面底部的 下一步:系统配置。
🖥️ [界面参考] ECS网络和安全组配置


5. 系统配置与结算
- 登录凭证:选择 自定义密码。
- 登录名:保持默认的
root(Linux 系统的最高权限管理员,拥有所有底层操作权限)。 - 登录密码:设置符合复杂度要求(大写、小写、数字、特殊符号)的密码,请务必牢记。
- 实例名称:填写为
Test_ecs_1。 - 确认无误后,单击 确认订单 并完成创建。返回实例列表,等待状态变为 运行中。
🖥️ [界面参考] ECS系统配置与列表


2.2.2 远程连接与公网互通
1. 通过 Workbench 远程连接
- 在 ECS 实例列表中,找到新创建的
Test_ecs_1,单击右侧操作栏的 远程连接。 - 在弹出的面板中,选择 通过 Workbench 远程连接,单击 立即登录。
- 输入刚才设置的
root密码,单击 确定。你将看到黑色的 Linux 命令行界面(CLI)。
🖥️ [界面参考] Workbench远程连接过程



2. 绑定弹性公网 IP (EIP)
- 原理解析:由于刚才购买时没有分配公网 IP,这台 ECS 目前只能在你的 VPC 私有小区里活动(如同局域网),无法访问外网,你也无法在本地电脑上直接 SSH 连接它。我们需要给它装一根对外的“独立宽带”——EIP 。
- 在实例列表中,单击操作栏的 更多 -> 网络和安全组 -> 绑定弹性 IP。
- 在弹出的窗口中,选择任务 2.1.2 中已购买的弹性公网 IP 地址,单击 确定。
- 绑定完成后,回到列表即可看到该实例已经拥有了公网 IP 标识。
🖥️ [界面参考] 绑定EIP与第三方工具连接



2.2.3 进阶配置:添加数据盘与安全组
1. 添加并格式化数据盘
- 单击 ECS 实例名称进入详情页,单击 创建云盘。
- 配置:挂载到 ECS 实例、按量付费、ESSD 云盘、容量 40 GiB。
- 勾选 云盘随实例释放,单击确认购买。
⚠️ 【极易错点:云盘生命周期与初始化】
买来的数据盘就像刚出厂的空硬盘,连上电脑后是无法直接存文件的,必须经过**“分区 -> 格式化 -> 挂载”**三步曲。 在控制台单击 分区格式化,借助云助手将云盘分成两个 10 GiB 的 ext4 格式分区,单击 开始执行。
🖥️ [流程图解] 云盘挂载与初始化流转图
🖥️ [界面参考] 云盘创建与格式化



2. 配置安全组规则(放行特定端口)
- 原理解析:安全组是云端服务器的“门卫(虚拟防火墙)”。默认情况下,阿里云出于安全考量,大门全部紧闭,仅开放了用于远程运维的
22端口。如果你要在服务器上运行 Web 项目或中间件,必须手动去“登记放行”。 - 在控制台左侧导航栏,依次单击 网络与安全 -> 安全组。
- 单击 创建安全组:名称设为
sg-1,网络选择刚才的Test_VPC_1。 - 配置访问规则:在入方向规则中快速添加,授权策略设为 允许,授权对象设为
0.0.0.0/0(代表允许全球任意 IP 访问),勾选MySQL(3306)和Redis(6379)端口,单击 确定。(注意:生产环境中,数据库端口应严格限制授权对象 IP,禁止对0.0.0.0/0开放)。
🖥️ [原理图解] 安全组流量过滤逻辑
🖥️ [界面参考] 安全组配置


2.2.4 【补充必做】实验环境清理与成本控制
⚠️ 【成本警告:关机不等于不计费!】
对于“按量付费”的 ECS 实例和 EIP,如果不使用了,请务必执行彻底的释放操作。单纯在系统内执行 shutdown 关机,底层计算资源和云盘依然会被占用,阿里云将持续扣除你的账户余额!
销毁流程:
- 进入 ECS 实例列表,找到
Test_ecs_1。 - 单击右侧 更多 -> 实例状态 -> 释放设置。
- 选择 立即释放。勾选确认后,ECS 及其随实例创建的云盘将被彻底销毁。
- 务必检查 EIP:进入“弹性公网 IP”控制台,确认对应的 IP 已被解绑并单击 释放(保留未绑定的 EIP 也会产生高额的闲置资源占用费)。
⚙️ 任务2.3 关系型数据库服务实战
2.3.0 数据库前置基础
💡 【原理解析】为什么要使用云数据库 RDS?
常见疑问:“既然已经配置了 ECS 云服务器,为什么不直接在 ECS 内部署 MySQL,而是要采用独立的 RDS (Relational Database Service) 服务?”可以从企业核心资产的安全与运维成本来理解:
- 在 ECS 上自建数据库(如使用 Docker 部署):需要开发者自行负责底层服务器的硬件运维、数据容灾与备份。一旦底层物理磁盘损坏或发生单点故障,可能导致业务数据永久丢失。虽然对于个人测试而言使用
docker-compose快速拉起 MySQL 和 Redis 非常便捷,但在生产环境中风险极高。 - 使用 RDS:RDS 是完全托管的关系型数据库服务。云平台在底层自动提供了数据多副本备份、跨机房容灾、故障自动切换(HA)等机制。例如在部署前后端分离的综合性项目(如基于 Vue 和企业级后端的教学管理系统)时,用户只需专注 SQL 逻辑与业务开发,底层的安全、高可用和硬件维护完全由云平台接管。
官方教程如下(试用方案),后续2.3.1及之后是教程的方案(需付费)
2.3.1 申请云数据库 RDS(参考官方教程)
在此阶段,我们将创建一个完全托管的 RDS 实例。以下是整体架构规划流转图:
互联网用户 -> Web应用 (ECS 云服务器) -> [内网高速通信 / RDS 白名单检查] -> 存储业务数据 (RDS 云数据库) (均位于同一专有网络 Test_VPC_1 内)
1. 选择云数据库产品
操作:登录控制台,在产品列表中搜索 数据库,选择 云数据库 RDS 版。
🖥️ [产品选择]云数据库 RDS 版

🤔 为什么做这一步:阿里云提供了多种数据库形态(如非关系型 Redis、云原生分布式 PolarDB)。RDS 版是基于传统关系型数据库(MySQL/PostgreSQL等)的云上托管标准版,契合目前大多数中小型 Web 业务架构的需求。
2. 基础资源配置
操作:单击 创建实例。计费方式选 按量付费,地域选 华东 1 (杭州)。类型选 MariaDB 10.3 引擎,系列选 高可用版 架构,存储类型选 ESSD PL1 云盘 存储。
🖥️ [基础配置]数据库基础资源配置

🤔 为什么做这一步:
- 地域匹配:云产品只有在同一地域内才能使用内网高速通信。若 ECS 与 RDS 地域不同,则必须通过公网路由,不仅增加网络延迟,还会产生额外的公网流量费用。此网络隔离原则在各大主流云平台(如腾讯云、阿里云等)中均通用。
- 引擎与高可用:MariaDB 是 MySQL 的开源分支,两者完全兼容。选择“高可用版”意味着系统会在底层自动建立一个“备用(Standby)节点”,当主节点发生物理故障时,能在秒级完成切换,保障业务高可用。
3. 节点与规格配置
操作:主节点选择 杭州 可用区 G,采用 单可用区部署。实例规格选择 通用型 2 核 4GB。
🖥️ [规格配置]节点与可用区配置

🤔 为什么做这一步:可用区指同一地域内电力和网络互相独立的物理机房。实验环境为节约成本选择“单可用区部署”;在生产环境中,企业标准架构通常选择“多可用区部署(同城容灾)”,以抵御单机房级别的灾难。
4. 网络与白名单配置(核心步骤)
操作:网络类型选择 专有网络,下拉选择之前的 Test_VPC_1 和 Test_Switch_1。加入白名单选择 是,端口保持 3306。
🖥️ [网络配置]数据库专有网络与白名单配置

🤔 为什么做这一步:VPC 是逻辑隔离的私有网络。将 RDS 部署在 Test_VPC_1 中,确保它与早前创建的 ECS 处于同一局域网下,实现内网互通。“加入白名单”则在网络安全层面上,授权该 VPC 内部的 ECS 实例对数据库的访问权限。
操作补充:勾选 释放保护,高权限账号选 稍后设置,确认订单。
🖥️ [实例总览]实例释放配置与列表


极易错点解密:为什么连不上数据库?(白名单机制)
⚠️ 【生产环境极易错点】RDS 白名单机制
实际操作中经常出现 ECS 无法连接 RDS 的情况,绝大部分原因是“白名单”未正确配置。
- 原理解析:RDS 默认采用最高级别的网络封闭策略(默认白名单仅有
127.0.0.1)。即使 ECS 和 RDS 处于同一个 VPC 内,也必须通过白名单显式放行对方的 IP 地址。 - 企业级安全底线:在测试环节,切勿将白名单配置为
0.0.0.0/0(允许所有 IP 访问)。在生产环境中,这种配置将导致数据库端口直接暴露在公网,极易遭受自动化脚本的暴力破解与勒索攻击。
2.3.2 配置与使用 RDS(账号与建库原理)
RDS 实例创建完成后,需要初始化账号与数据库结构。其内部逻辑顺序如下:
- 运维管理员 -> 在 RDS 控制台创建 高权限账号 (DBA权限)
- 底层实例 -> 返回账号激活状态
- 运维管理员 -> 使用高权限账号创建具体 Database (如
test_rds_db_1) - 运维管理员 -> 通过 DMS 登录并执行 SQL 语句进行表结构初始化
1. 创建高权限账号
操作:在实例详情页的左侧导航栏单击 账号管理,单击 创建账号。填写 admin_rds_1,类型选 高权限账号,设置密码。
🖥️ [账号管理]高权限账号配置



🤔 为什么做这一步:初始化的 RDS 实例未分配任何管理账号。必须首选创建拥有最高权限的 DBA 账号,随后由该账号接管所有的数据库表创建及子权限分配工作。
💡 【深度拓展】遵循权限最小化原则(企业案例)
- 原理对比:在基础实验中,我们使用“高权限账号”走完全程。但在真实的生产环境中,高权限账号(DBA)拥有全实例的数据读写和删除权限,风险极高。
- 最佳实践:企业在部署新业务模块(例如教务系统的“作业管理模块”与“考勤管理模块”)时,标准规范是由 DBA 为各个模块创建独立的“普通账号”,并仅授予其对特定业务数据库的读写权限。如此一来,即便单一业务线存在代码漏洞被攻破,攻击者的影响范围也仅限于该业务的数据库,无法越权访问同实例下的其他核心数据。
2. 创建数据库
操作:在左侧导航栏选择 数据库管理,单击 创建数据库。名称填 test_rds_db_1,字符集选择下拉框中的 utf8mb4。
🖥️ [库管理]创建业务数据库

🤔 为什么做这一步:
- 实例(Instance) 是物理资源的抽象,我们需要在实例内部划分逻辑层面的 数据库(Database) 供应用系统对接。
- 字符集避坑:传统的
utf8编码在 MySQL 中存在历史遗留限制,无法完整支持 4 字节字符。建议统一采用utf8mb4,以确保系统能够正常存储 Emoji 表情符号及部分复杂生僻字,避免前端(如 Vue 页面)提交特殊字符时,后端业务层抛出字符集插入异常。
3. 通过 DMS 登录与管理数据库
操作:单击上方 登录数据库 按钮进入 DMS。输入刚才创建的 admin_rds_1 和密码。测试连接并登录,进入 SQL Console。
🖥️ [数据管理]通过 DMS 登录控制台


🤔 为什么做这一步:传统的数据库运维强依赖本地安装的客户端软件(如 Navicat)。阿里云提供了开箱即用的 DMS(数据管理服务),允许开发者直接在浏览器端进行 SQL 编写、表结构变更及权限审计,大幅降低了本地环境的配置成本。
⚠️ 【成本警告】实验资源释放
实验结束后,请先关闭 RDS 实例的 释放保护 功能,然后手动在控制台彻底释放 RDS 实例。处于运行状态的按量付费实例如果不释放,将持续产生费用账单!
🏁 项目小结
本项目中,我们从零开始在公有云环境中构建了业务系统的三大核心基石:
- 专有网络(VPC):划分了安全隔离的底层网络环境。
- 云服务器(ECS):掌握了云端算力的弹性分配、公网 EIP 打通、数据盘挂载与安全组入站流量限制,这是后续部署容器化环境(如 Docker)的基础底座。
- 关系型数据库(RDS):实现了业务数据的安全存储与云端托管。
这三者的组合,是目前业界绝大多数中小型企业云上架构的标准起点,也是全栈开发者独立完成项目上线必须掌握的核心链路。
📖 拓展知识
随着“十四五”数字经济发展规划的推进,“上云用数赋智”成为企业数字化的核心命题。在云计算的演进中,企业不再满足于购买虚拟机和独立数据库。Serverless(无服务器架构) 和 云原生数据湖(Data Lake) 等新技术正在逐渐取代传统的“ECS+RDS”模式,让研发团队可以将 100% 的精力集中在业务代码开发上,彻底忘掉底层硬件运维的负担。
📌 知识巩固
- 架构思考:为什么在购买 ECS 和 RDS 时,必须选择完全一样的“地域(如华东1)”和“VPC 网络”?如果它们不在同一个 VPC,应该如何实现通信?
- 安全配置:安全组(云端防火墙)和 RDS 白名单在防御机制上有什么区别?分别保护的是架构中的哪一部分?
🚀 拓展任务
命令行实战:尝试使用我们在任务 2.2 中通过 Workbench 连接的 Linux ECS,在终端中输入命令 yum install -y mariadb 或 yum install -y mysql 安装客户端。然后尝试通过 RDS 的 内网地址,直接在命令行中跨节点登录并连接到本次任务创建的 RDS 数据库中。