本文檔介紹了如何通過控制台和API將ApsaraDB for Redis的網路類型切換至專有網路,同時保留經典網路的訪問地址。經典網路的訪問地址有保留時間限制,您可以根據需要指定保留期限。到期後,經典網路地址會自動被系統刪除。
前提條件
在開始切換前,確認當前執行個體是否具備以下切換條件:
-
確認當前網路類型是否為經典網路。
-
確認在當前資料庫執行個體可用性區域下是否有可用的VPC和交換器。詳情參見建立專有網路和交換器。
通過控制台切換網路類型
- 登入ApsaraDB for Redis管理主控台。
- 選擇目標執行個體所在地域。
- 單擊目標執行個體的ID。
- 在執行個體資訊頁面,單擊切換為專有網路。
- 在彈出的對話方塊中,執行以下操作:
- 選擇切換的目標專有網路和交換器。
- 選擇保留經典網路地址並選擇保留時長。
说明 選擇保留經典網路後,經典網路下的ECS仍可訪問資料,對業務無影響。當經典網路地址到期後,系統會自動刪除經典網路地址,您將無法通過經典網路地址訪問資料庫。 - 單擊確定。
- 在執行個體資訊頁面,單擊刷新查看專有網路和經典網的訪問地址。
通過控制台修改經典網路內網地址使用到期日
設定經典網路訪問地址的保留時間後,您可以在過期前通過控制台延長其保留時間。
在混訪期間,您可以根據需求隨時調整保留原經典網路的時間,過期時間會從變更日期重新開始計時。例如,原經典網路的內網地址會在2017年8月18日過期,但您在2017年8月15日將過期時間變更為14天后,則原經典網路的內網地址將會在2017年8月29日被釋放。
- 登入ApsaraDB for Redis管理主控台。
- 選擇目標執行個體所在地域。
- 單擊目標執行個體的ID。
- 在預留的經典IP地址區域,單擊修改過期時間。
- 在彈出的對話方塊中,選擇新的過期時間,然後單擊確定。
通過API切換網路類型
- 單擊SDK連結下載相關SDK。(ApsaraDB for Memcache和Redis版的SDK相同。)
- 調用SwitchNetwork介面進行網路切換。
請求參數說明
名稱 類型 是否必須 說明 Action String 是 系統規定參數,取值: SwitchNetwork
InstanceId String 是 執行個體 ID。 TargetNetworkType String 是 執行個體的網路類型: - VPC:專有網路
- Classic:經典網路
VPCId String 否 專有網路的ID。 VSwitchId String 否 交換器的ID。
如果指定了VPC ID,則該參數也必須指定。
RetainClassic String 否 是否保留經典網路地址,預設 False:- True:保留
- False:不保留
ClassicExpiredDays String 否 經典網路位址保留區的天數,最短1天,最長120天,預設7天。
若選擇保留經典網路地址,則該參數必傳。
返回參數說明參數 類型 說明 RequestId String 請求ID。 TaskId String 任務ID。 參考代碼
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import com.aliyuncs.r_kvstore.model.v20150101.SwitchNetworkRequest; import com.aliyuncs.r_kvstore.model.v20150101.SwitchNetworkResponse; import org.junit.Test; /** * Created by wb259286 on 2017/6/9. */ public class SwitchNetworkTest { @Test public void switchNetwork_success() { SwitchNetworkRequest request=new SwitchNetworkRequest(); request.setInstanceId("<您的執行個體ID>"); request.setTargetNetworkType("VPC"); request.setVpcId("<VpcId:當TargetNetworkType時VPC時必填>"); request.setVSwitchId("<VSwitchId:當TargetNetworkType為VPC時必填>"); request.setRetainClassic("<是否保留CLASSIC的網路連結,True保留,False不保留>"); request.setClassicExpiredDays("保留CLASSIC的網路連結的天數"); IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<您的AK>", "<您的Security>"); IAcsClient client = new DefaultAcsClient(profile); try { SwitchNetworkResponse response = client.getAcsResponse(request); System.out.println(response.getRequestId()); }catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } } }
- 調用DescribeDBInstanceNetInfo介面查看經典網路和專有網路的訪問地址。
請求參數
名稱 類型 是否必須 說明 Action String 是 系統規定參數,取值: DescribeDBInstanceNetInfo
InstanceId String 是 執行個體ID。 返回參數參數 類型 說明 NetInfoItems List 執行個體的串連資訊。 InstanceNetworkType String 執行個體的網路類型: -
VPC:VPC類型的執行個體。
-
Classic:經典網路類型的執行個體。
InstanceNetInfo資料結構參數 類型 說明 ConnectionString String DNS串連串。 IPAddress String IP地址。 IPType String 經典網路類型的執行個體的IP類型有:Inner | Public。
VPC類型的執行個體的IP類型有:Private | Public。
Port String 通信埠資訊。 VPCId String VPC ID。 VSwitchId String 交換器ID。 ExpiredTime String 過期時間。 參考代碼import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import com.aliyuncs.r_kvstore.model.v20150101.DescribeDBInstanceNetInfoRequest; import com.aliyuncs.r_kvstore.model.v20150101.DescribeDBInstanceNetInfoResponse; import org.junit.Test; /** * */ public class DescribeDBInstanceNetInfoTest { @Test public void describeDBInstanceNetInfo_success() { DescribeDBInstanceNetInfoRequest request=new DescribeDBInstanceNetInfoRequest(); request.setInstanceId("<您的執行個體ID>"); IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<您的AK>", "<您的Security>"); IAcsClient client = new DefaultAcsClient(profile); try { DescribeDBInstanceNetInfoResponse response = client.getAcsResponse(request); System.out.println(response.getRequestId()); }catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } } }
-
通過API修改經典網路內網地址使用到期日
- 單擊SDK連結下載相關SDK。(ApsaraDB for Memcache和Redis版的SDK相同。)
- 調用ModifyInstanceNetExpireTime介面進行網路切換。
請求參數說明
名稱 類型 是否必須 說明 Action String 是 系統規定參數,取值: ModifyInstanceNetExpireTime
。InstanceId String 是 執行個體ID。 ConnectionString String 是 經典網路的訪問網域名稱。 ClassicExpiredDays Integer 是 選擇保留時長。
取值:14、30、60或120
返回參數參數 類型 說明 RequestId String 請求ID。 參考代碼
public static void main(String[] args) { ModifyInstanceNetExpireTimeRequest request = new ModifyInstanceNetExpireTimeRequest(); request.setClassicExpiredDays(3); request.setConnectionString("<連結字元串>"); request.setInstanceId("<執行個體Id>"); IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<你的ak>", "<你的sk>"); IAcsClient client = new DefaultAcsClient(profile); try { ModifyInstanceNetExpireTimeResponse response = client.getAcsResponse(request); for (NetInfoItem item:response.getNetInfoItems()) { System.out.println(item.getConnectionString()); System.out.println(item.getPort()); System.out.println(item.getDBInstanceNetType()); System.out.println(item.getIPAddress()); System.out.println(item.getExpiredTime()); } }catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } }