
# 为ECS配置内网域名实现云服务器平滑切换
#### 方案概述
**应用场景**
网站在运行过程中，当某一台ECS故障，需要将业务切换到备份的云服务器时，如果云服务器没有配置内网域名，则需要通过修改主业务节点ECS的代码来重新设置云服务器的内网IP地址，该操作需要中断业务并重新发布网站，耗时耗力。
内网域名功能支持为VPC内每个云服务器创建一个内网域名，在部署该网站时，我们为云服务器申请了内网域名，且代码中设置的是云服务器的内网域名，仅需要通过修改内网域名解析记录即可实现云服务器的切换，无需中断业务，也不需要重新发布网站。
**方案架构**
[图1]展示了某网站的逻辑组网，在一个VPC内，部署了ECS和RDS。其中：
- ECS：作为主业务站点和业务入口。
- ECS1：作为公共接口。
- RDS1：作为数据库，存储业务数据。
- ECS2和RDS2：作为备份服务器和数据库。
图1逻辑组网图   
![](https://support.huaweicloud.com/bestpractice-dns/zh-cn_image_0000002190084712.png "点击放大")
**方案优势**
- 通过内网域名访问VPC内的云服务器，无需经过Internet，访问速度更快、安全性更高。
- 在代码中使用内网域名代替内网IP。当需要进行云服务器切换时，只需通过修改内网域名解析记录即可，无需修改代码。
 
#### 资源成本和规划
本节介绍最佳实践中资源规划情况，包含以下内容：
 表1内网域名资源规划 
| 资源   | 内网域名        | 关联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     | 备份数据库。        |
   
 表2资源和成本规划 
| 区域     | 资源         | 资源名称                                                                                                                              | 资源说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 数量 | 费用                                                                  |
|:---|:---|:---|:---|:---|:---|
| 华北-北京四 | 虚拟私有云 VPC  | VPC_001                                                                                                                           | 设置DNS服务器地址与华为云的内网DNS地址保持一致。 详细请参见[华为云提供的内网DNS地址是多少？](https://support.huaweicloud.com/dns_faq/dns_faq_002.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 1  | 免费                                                                  |
| 华北-北京四 | 弹性云服务器 ECS | ECS ECS1 ECS2 | - 内网域名：api.ecs.com  - 关联VPC：VPC_001  - ECS1：公共接口ECS，内网IP：192.168.2.8  - ECS2：备份公共接口ECS，内网IP：192.168.3.8                                                                             | 3  | 详细请参见[弹性云服务器产品价格详情](https://www.huaweicloud.com/pricing.html#/ecs)。 |
| 华北-北京四 | 云数据库 RDS   | RDS1 RDS2                                                                 | - 内网域名：db.com  - 关联VPC：VPC_001  - RDS1：数据库，用于存储业务数据，内网IP：192.168.2.5  - RDS2：备份数据库，内网IP：192.168.3.5                                                                               | 2  | 详细请参见[云数据库产品价格详情](https://www.huaweicloud.com/pricing.html#/rds)。   |
| 华北-北京四 | 云解析服务      | api.ecs.com db.com                                                    | - api.ecs.com： 关联VPC：VPC_001 记录集类型：A，值：192.168.2.8   - db.com 关联VPC：VPC_001 记录集类型：A，值：192.168.2.5    | 2  | 免费                                                                  |
   
#### 为云服务器配置内网域名总流程
为云服务器配置内网域名的流程如[图2]所示。
图2内网域名配置流程   
![](https://support.huaweicloud.com/bestpractice-dns/zh-cn_image_0000002189925044.png)
配置流程说明：
1. "（可选）创建VPC及VPC子网"：在管理控制台虚拟私有云服务页面完成配置，仅当您在网站部署阶段为云服务器配置内网域名时，执行本操作。
2. "创建内网域名"和"创建记录集"：在管理控制台云解析服务页面完成相关配置。
3. "（可选）更改VPC子网的DNS"：在管理控制台虚拟私有云服务页面完成配置，仅当您为已运行网站的云服务器配置内网域名时，执行本操作。
 
#### 实施步骤
1. **（可选）创建VPC及VPC的子网**
   
   当您在网站部署阶段为云服务器配置内网域名时，需要首先完成VPC及其子网的创建。
   1. 进入[创建虚拟私有云页面](https://console.huaweicloud.com/vpc/?#/vpc/vpcs/createVpc)。
   
   2. 根据界面提示配置参数，关键参数的配置说明如[表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.129.250 |
         
      
   
   3. 单击"立即创建"，完成VPC以及VPC默认子网的设置。
   
   
   
   
2. **创建内网域名**
   
   为云服务器ECS1和数据库RDS1创建内网域名。
   1. 进入[内网域名列表页面](https://console.huaweicloud.com/dns/?#/dns/privatezones)。
   
   2. 单击"创建内网域名"，开始创建内网域名。
   
   3. 根据界面提示配置参数，参数说明如[表4]所示。
       表4创建内网域名参数说明 
      | 参数        | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 示例                      |
      |:---|:---|:---|
      | 域名        | 创建的内网域名名称。 支持创建顶级域，但需符合域名命名规范。 注意： 内网域名的解析优先级高于同名的互联网域名，创建后可能导致VPC内无法解析同名的互联网域名，请谨慎操作。                                                                                                                                                                                                                                                                                                                             | api.ecs.com             |
      | 子域名递归解析代理 | 开启该功能后，解析的子域名未在内网域名记录集中配置时，支持使用公网域名递归解析。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 开启                      |
      | 企业项目      | 内网域名关联的企业项目，用于将内网域名按照企业项目进行管理。 仅当用户使用的"账号类型"为"企业账号"时，显示该参数，且参数必选。 配置原则： - 如果不通过企业项目管理域名资源，则采用默认值"default"。  - 如果通过企业项目管理域名资源，则在下拉列表中选择已经创建的企业项目。 在设置该参数前，您需要完成[创建企业项目](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763964.html)。    | default                 |
      | 区域        | 内网域名关联的VPC所属区域。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 华北-北京四                  |
      | VPC       | 选择内网域名需要关联的VPC。 支持最多选择20个VPC。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | VPC_001                 |
      | 标签        | 可选参数。由键和值组成，用于搜索域名或为域名资源分组。当系统中配置多个域名时，可以选择配置此参数。 键和值的命名规则请参见[表5]。                                                                                                                                                                                                                                                                                                                                                                                                         | -                       |
      | 描述        | 可选参数。域名的描述信息。长度不超过255个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | This is a zone example. |
         
       表5标签命名规则 
      | 参数 | 规则                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | **示例**         |
      |:---|:---|:---|
      | 键  | - 不能为空。  - 对于同一资源键的取值唯一。  - 长度不超过128个字符。  - 取值可以包含任意语种字母、数字、空格，以及_ . : = + - @特殊字符，但首尾不能含有空格，不能以_sys_开头。   | example_key1   |
      | 值  | - 可以为空。  - 长度不超过255个字符。  - 取值可以包含任意语种字母、数字、空格，以及_ . : / = + - @特殊字符。                                                                                                                                                                                                                                                                                                                                                                  | example_value1 |
         
      
   
   4. 单击"确定"，完成内网域名api.ecs.com的创建。
      创建完成后，您可以在"内网域名"页面查看新创建的域名信息。
      ![](https://support.huaweicloud.com/bestpractice-dns/public_sys-resources/note_3.0-zh-cn.png)
      单击操作列的"管理解析"，可以看到系统已经为您创建了SOA类型和NS类型的记录集。其中，
      - SOA类型的记录集标识了对此域名具有最终解释权的主权威服务器。
      
      - NS类型的记录集标识了此域名的权威服务器。
        
   
   5. 重复执行[3]\~[5]，完成内网域名db.com的创建。
      内网域名规划请参见[表1]。
      
   
   
   
   

3. **创建记录集**
   
   为云服务器ECS1和数据库RDS1的内网域名添加到对应内网IP的解析记录。
   1. 在"内网域名"页面的域名列表中，单击新创建域名的名称。
      系统进入域名解析记录页面。
      
   
   2. 单击"添加记录集"。
   
   3. 根据界面提示填写参数配置，参数说明如[表6]所示。
       表6添加A类型记录集参数说明 
      | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 示例               |
      |:---|:---|:---|
      | 记录类型   | 记录集的类型，此处为A类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | A -- 将域名指向IPv4地址 |
      | 主机记录   | 域名前缀。 此处参数设置为空，表示解析的域名是api.ecs.com。                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -                |
      | 线路类型   | 解析的线路类型。用于DNS服务器在解析域名时，根据访问者的来源，返回对应的服务器IP地址。 默认值：全网默认 - 全网默认：默认线路类型，当未根据访问者来源设置解析线路时，系统会返回默认解析结果。  - 自定义线路：根据访问者所属IP网段，设置解析线路，详细内容请参见[配置自定义线路解析](https://support.huaweicloud.com/usermanual-dns/dns_usermanual_0022.html)。   | 全网默认             |
      | TTL(秒) | 解析记录在DNS服务器的缓存时间，以秒为单位。 如果您的服务地址经常更换，建议TTL值设置相对小些，反之，建议设置相对大些。                                                                                                                                                                                                                                                                                                                                                                                                 | 默认为"5min"，即300s。 |
      | 记录值    | 域名对应的IPv4地址。多个IPv4地址以换行符分隔。 此处设置为云服务器的内网IP。                                                                                                                                                                                                                                                                                                                                                                                                                                            | 192.168.2.8      |
      | 标签     | 可选参数，由键和值组成，用于搜索记录集或为记录集资源分组。当系统中配置多个记录集时，可以选择配置此参数。 键和值的命名规则请参见[表5]。                                                                                                                                                                                                                                                                                                                                                 | -                |
      | 描述     | 可选配置，对域名的描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -                |
         
      
   
   4. 单击"确定"，完成为内网域名api.ecs.com添加A类型记录集。
   
   5. 重复执行[1]\~[4]，为内网域名db.com添加A类型的记录集。
      域名db.com对应记录集的"值"设置为"192.168.2.5"。
      记录集的详细数据规划请参见[表2]。
      
   
   
   
   
4. **（可选）更改VPC子网的DNS**
   
   当您为已运行网站的云服务器配置内网域名时，需要更改VPC子网的DNS。
   为实现内网域名在VPC内的正常解析，您需要把VPC子网的DNS改成云解析服务提供的内网DNS。
   更改VPC子网的DNS的操作请参见[怎样切换内网DNS？](https://support.huaweicloud.com/dns_faq/dns_faq_005.html)。
   
   

5. **切换ECS**
   
   当ECS1发生故障，需要将业务切换到备份的云服务器ECS2上。此时，可以通过修改内网域名api.ecs.com的解析记录实现业务切换。
   1. 登录管理控制台。
   
   2. 单击管理控制台左上角的![](https://support.huaweicloud.com/bestpractice-dns/zh-cn_image_0000002225445085.png)，选择"华北-北京四"。
   
   3. 选择"网络 \> 云解析服务"。 进入云解析服务页面。
      
   
   4. 在左侧树状导航栏，选择"内网域名"。
   
   5. 在"内网域名"页面域名列表中，单击域名名称"api.ecs.com"进入域名解析记录页面。
   
   6. 在A类型记录集中，单击"操作"列的"修改"。
   
   7. 将"值"修改为"192.168.3.8"。
   
   8. 单击"确定"，完成解析记录的修改。
   
   
   此时，ECS到公共接口ECS1的访问会通过内网DNS解析到ECS2上，实现了ECS的切换。
   
   
 
