企業上雲最大的痛點在於業務資料庫遷移,很多企業在上雲前,資料庫網域名稱或IP往往是已被寫入應用用戶端代碼中,當從本地構建的資料庫遷移到RDS時,需要使用者修改用戶端代碼進行應用改造,此過程複雜,且風險高。
解決方案
通過內網DNS解析建立一個與之前相同的資料庫網域名稱,然後通過CNAME記錄指向RDS分配的系統內網網域名稱,這樣在資料庫上雲過程中,企業使用者無需修改用戶端代碼,能夠減少應用改造,降低遷移風險。
準備工作
開通服務。
準備如下資源。
資源
數量
樣本值
線下資料庫連接網域名稱
1
db.example.com
Ecs伺服器
1&more
1.1.XX.XX、2.2.XX.XX
RDS資料庫執行個體
1
rm-2ze44q293vs56l9po*****.mysql.rds.aliyuncs.com
操作步驟
1、擷取RDS內網地址
前往RDS管理主控台,單擊左側導覽列的 執行個體列表,在執行個體列表頁面單擊 執行個體ID/名稱 下的執行個體ID。
左側導覽列選擇 資料庫連接,然後複製 內網地址 後方的網域名稱。

2、添加內網權威網域名稱及解析記錄
選擇 內網權威 頁面下的 使用者網域名稱 頁簽。
單擊 添加網域名稱(Zone) 按鈕,在 添加內網權威網域名稱(Zone) 對話方塊中輸入欄位名,本樣本輸入 db.example.com,網域名稱類型根據您的實際需求選擇,推薦選擇 內網權威加速區, 然後單擊 確定。
在 使用者網域名稱 頁面,單擊目標網域名稱
db.example.com操作 列的 解析記錄 按鈕。在 解析記錄 頁面單擊 添加記錄,記錄類型:CNAME,主機記錄:@,解析請求來源:預設,記錄值:
rm-2ze44q293vs56l9po*****.mysql.rds.aliyuncs.com(此網域名稱為測試網域名稱,您根據實際情況將資料庫的內網地址粘貼進去),完成上述參數填寫後單擊 確定。返回 使用者網域名稱 頁面,單擊目標網域名稱
db.example.com操作 列的 生效範圍設定,在 網域名稱設定 版面設定 網域名稱生效範圍,需要關聯資料庫所在VPC。
3、 效果測試
登入網域名生效VPC網路內的ECS伺服器,進行解析生效測試,返回如下圖即為成功。若返回結果異常,請排查解析記錄是否正確配置。
dig db.example.com
RDS串連測試:登入網域名生效VPC網路內的ECS伺服器,進行遠程命令測試,返回如下圖即為成功。
mysql -utest_dns -ptest_dns -hdb.example.com -P3306 -Dtest_dns
常見錯誤
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘db.example.com’(110)請檢查資料庫白名單設定,將ECS的IP加入白名單中。
