为ECS配置内网域名实现云服务器平滑切换
方案概述
应用场景
网站在运行过程中,当某一台ECS故障,需要将业务切换到备份的云服务器时,如果云服务器没有配置内网域名,则需要通过修改主业务节点ECS的代码来重新设置云服务器的内网IP地址,该操作需要中断业务并重新发布网站,耗时耗力。
内网域名功能支持为VPC内每个云服务器创建一个内网域名,在部署该网站时,我们为云服务器申请了内网域名,且代码中设置的是云服务器的内网域名,仅需要通过修改内网域名解析记录即可实现云服务器的切换,无需中断业务,也不需要重新发布网站。
方案架构
图1展示了某网站的逻辑组网,在一个VPC内,部署了ECS和RDS。其中:
- ECS:作为主业务站点和业务入口。
 - ECS1:作为公共接口。
 - RDS1:作为数据库,存储业务数据。
 - ECS2和RDS2:作为备份服务器和数据库。
 
方案优势
- 通过内网域名访问VPC内的云服务器,无需经过Internet,访问速度更快、安全性更高。
 - 在代码中使用内网域名代替内网IP。当需要进行云服务器切换时,只需通过修改内网域名解析记录即可,无需修改代码。
 
资源成本和规划
本节介绍最佳实践中资源规划情况,包含以下内容:
| 
         资源  | 
       
         内网域名  | 
       
         关联VPC  | 
       
         内网IP  | 
       
         记录集类型  | 
       
         说明  | 
      
|---|---|---|---|---|---|
| 
         ECS1  | 
       
         api.ecs.com  | 
       
         VPC_001  | 
       
         192.168.2.8  | 
       
         A  | 
       
         公共接口ECS。  | 
      
| 
         ECS2  | 
       
         api.ecs.com  | 
       
         VPC_001  | 
       
         192.168.3.8  | 
       
         A  | 
       
         备份公共接口ECS。  | 
      
| 
         RDS1  | 
       
         db.com  | 
       
         VPC_001  | 
       
         192.168.2.5  | 
       
         A  | 
       
         数据库,用于存储业务数据。  | 
      
| 
         RDS2  | 
       
         db.com  | 
       
         VPC_001  | 
       
         192.168.3.5  | 
       
         A  | 
       
         备份数据库。  | 
      
| 
         区域  | 
       
         资源  | 
       
         资源名称  | 
       
         资源说明  | 
       
         数量  | 
       
         费用  | 
      
|---|---|---|---|---|---|
| 
         中国-香港  | 
       
         虚拟私有云 VPC  | 
       
         VPC_001  | 
       
         设置DNS服务器地址与华为云的内网DNS地址保持一致。 详细请参见华为云提供的内网DNS地址是多少?  | 
       
         1  | 
       
         免费  | 
      
| 
         弹性云服务器 ECS  | 
       
         ECS ECS1 ECS2  | 
       
        
  | 
       
         3  | 
       
         详细请参见弹性云服务器产品价格详情。  | 
      |
| 
         云数据库 RDS  | 
       
         RDS1 RDS2  | 
       
        
  | 
       
         2  | 
       
         详细请参见云数据库产品价格详情。  | 
      |
| 
         云解析服务  | 
       
         api.ecs.com db.com  | 
       
         2  | 
       
         免费  | 
      
为云服务器配置内网域名总流程
为云服务器配置内网域名的流程如图2所示。
配置流程说明:
- “(可选)创建VPC及VPC子网”:在管理控制台虚拟私有云服务页面完成配置,仅当您在网站部署阶段为云服务器配置内网域名时,执行本操作。
 - “创建内网域名”和“创建记录集”:在管理控制台云解析服务页面完成相关配置。
 - “(可选)更改VPC子网的DNS”:在管理控制台虚拟私有云服务页面完成配置,仅当您为已运行网站的云服务器配置内网域名时,执行本操作。
 
实施步骤
- (可选)创建VPC及VPC的子网
     
     
当您在网站部署阶段为云服务器配置内网域名时,需要首先完成VPC及其子网的创建。
- 进入创建虚拟私有云页面。
 - 根据界面提示配置参数,关键参数的配置说明如表3所示。 
       
表3 虚拟私有云关键参数说明 参数
说明
示例
区域
不同区域的资源之间内网不互通。请选择靠近您客户的区域,可以降低网络时延、提高访问速度。
中国-香港
名称
VPC名称。
VPC_001
网段
VPC的地址范围,VPC内的子网地址必须在VPC的地址范围内。
目前支持网段范围:
- 10.0.0.0/8~24
 - 172.16.0.0/12~24
 - 192.168.0.0/16~24
 
192.168.0.0/16
子网名称
子网的名称。
Subnet
子网网段
子网的地址范围,需要在VPC的地址范围内。
192.168.0.0/24
网关
子网的网关。
192.168.0.1
DNS服务器地址
若要为VPC内的云服务器配置内网域名,需要设置DNS服务器地址与华为云的内网DNS地址保持一致。
100.125.3.250
 - 单击“立即创建”,完成VPC以及VPC默认子网的设置。
 
 - 创建内网域名
     
     
为云服务器ECS1和数据库RDS1创建内网域名。
- 进入内网域名列表页面。
 - 单击“创建内网域名”,开始创建内网域名。
 - 根据界面提示配置参数,参数说明如表4所示。 
       
表4 创建内网域名参数说明 参数
说明
示例
域名
域名。可以自定义,支持创建顶级域,但需符合域名命名规范。
api.ecs.com
子域名递归解析代理
开启该功能后,解析的子域名未在内网域名记录集中配置时,支持使用公网域名递归解析。
开启
区域
内网域名关联的VPC所属区域。
中国-香港
VPC
内网域名要关联的VPC。
VPC_001
标签
可选参数。由键和值组成,用于搜索域名或为域名资源分组。当系统中配置多个域名时,可以选择配置此参数。
键和值的命名规则请参见表5。
-
描述
可选参数。域名的描述信息。长度不超过255个字符。
This is a zone example.
 - 单击“确定”,完成内网域名api.ecs.com的创建。 
       
       
 
        单击操作列的“管理解析”,可以看到系统已经为您创建了SOA类型和NS类型的记录集。其中,
- SOA类型的记录集标识了对此域名具有最终解释权的主权威服务器。
 - NS类型的记录集标识了此域名的权威服务器。
 
 - 重复执行3~5,完成内网域名db.com的创建。 
       
内网域名规划请参见表1。
 
 
- 创建记录集
     
     
为云服务器ECS1和数据库RDS1的内网域名添加到对应内网IP的解析记录。
- 在“内网域名”页面的域名列表中,单击新创建域名的名称。
 - 单击“添加记录集”。
 - 根据界面提示填写参数配置,参数说明如表6所示。 
       
表6 添加A类型记录集参数说明 参数
说明
示例
记录类型
记录集的类型,此处为A类型。
A – 将域名指向IPv4地址
主机记录
域名前缀。
此处参数设置为空,表示解析的域名是api.ecs.com。
-
TTL(秒)
解析记录在DNS服务器的缓存时间,以秒为单位。
如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。
默认为“5min”,即300s。
记录值
域名对应的IPv4地址。多个IPv4地址以换行符分隔。
此处设置为云服务器的内网IP。
192.168.2.8
标签
可选参数,由键和值组成,用于搜索记录集或为记录集资源分组。当系统中配置多个记录集时,可以选择配置此参数。
键和值的命名规则请参见表5。
-
描述
可选配置,对域名的描述。
-
 - 单击“确定”,完成为内网域名api.ecs.com添加A类型记录集。
 - 重复执行1~4,为内网域名db.com添加A类型的记录集。 
       
域名db.com对应记录集的“值”设置为“192.168.2.5”。
记录集的详细数据规划请参见表2。
 
 - (可选)更改VPC子网的DNS
     
     
当您为已运行网站的云服务器配置内网域名时,需要更改VPC子网的DNS。
为实现内网域名在VPC内的正常解析,您需要把VPC子网的DNS改成云解析服务提供的内网DNS。
更改VPC子网的DNS的操作请参见怎样切换内网DNS?。
 
- 切换ECS
     
     
当ECS1发生故障,需要将业务切换到备份的云服务器ECS2上。此时,可以通过修改内网域名api.ecs.com的解析记录实现业务切换。
- 登录管理控制台。
 - 单击管理控制台左上角的
,选择“中国-香港”。 - 选择“网络 > 云解析服务”。
 - 在左侧树状导航栏,选择“内网域名”。
 - 在“内网域名”页面域名列表中,单击域名名称“api.ecs.com”进入域名解析记录页面。
 - 在A类型记录集中,单击“操作”列的“修改”。
 - 将“值”修改为“192.168.3.8”。
 - 单击“确定”,完成解析记录的修改。
 
此时,ECS到公共接口ECS1的访问会通过内网DNS解析到ECS2上,实现了ECS的切换。
 
    
      
