本ドキュメントでは、 ApsaraDB for RDSのネットワークタイプをコンソールまたはAPI経由でVPCに変更し、クラシックネットワークエンドポイントを保持する方法を紹介します。
詳細は、クラシックネットワークからVPCへの移行を参照してください。
-
クラシックネットワークエンドポイントには有効期限があります。 必要に応じて有効期限を指定することができます。 指定した期限に達すると、クラシックネットワークエンドポイントはシステムにより自動的に削除されます。 エンドポイントが削除される前に、通知メッセージが届きます。
-
RDSインスタンスがDRDSインスタンスのブランチデータベースである場合、DRDSとRDSインスタンスの間のネットワーク接続は中断され、再接続する必要があります。
前提
-
インスタンスのアクセスモードは安全接続モードである必要があります。 詳細は、アクセスモードの設定を参照してください。 MySQL 5.7、SQL Server 2012及びSQL Server 2016はスタンダードモードにのみ対応しています。 このモードではネットワークタイプの変更に対応しています。
-
ネットワークタイプはクラシックネットワークである必要があります。
-
RDSインスタンスが配置されているゾーンには、使用可能なVPCとVSwitchがある必要があります。 詳細は次を参照してくださいVPCの管理。
コンソールでネットワークタイプを変更します。
- RDSコンソールにログインします。
- インスタンスが配置されたリージョンを選択します。
- 対象インスタンスのIDをクリックします。
- 左側のメニューで、データベース接続を選択します。
- インスタンス接続タブで、VPCへ切り替えをクリックします。
- VPCへ切り替えページで、RDSインスタンスが配置されているVPCとVSwitchを選択します。
- オリジナルクラシックエンドポイントを保留チェックボックスにチェックを入れ、 有効期限を選択します。
-
クラシックネットワークエンドポイントが削除される前の7日間で、システムは毎日アカウントにバインドされた携帯電話に通知メッセージを送信します。
-
クラシックネットワークエンドポイントが期限切れになると、システムにより自動的削除され、クラシックネットワークエンドポイント経由でのデータベースアクセスはできなくなります。 サービスの中断を防ぐため、必要に応じて保持期間を設定します。 ハイブリッドアクセスを設定後、有効期限を変更できます。
-
- OKをクリックすれば。 保持されたクラシックネットワークの接続アドレスがコンソールに追加されます。
有効期限の変更
クラシックネットワークエンドポイントの保持期間を設定後、有効期限が切れる前ならいつでもコンソールを使用して保持期間を延長できます。
ハイブリッドアクセス期間中は、必要に応じてクラシックネットワークエンドポイントの保持期間をいつでも変更できます。 有効期限は、変更した時点から計算されます。 たとえば、クラシックネットワークエンドポイントが2017年8月18日までに期限切れになるように設定されています、2017年8月15日にその有効期限を14日後に変更した場合、エンドポイントのリリース日は2017年8月29日になります。
- RDSコンソールにログインします。
- 対象インスタンスが配置されたリージョンを選択します。
- 対象インスタンスのIDをクリックします。
- 左側のメニューで、データベース接続を選択します。
- インスタンス接続タブで、有効期限を変更をクリックします。
- 有効期限を選択してOKをクリックします。
APIを通してのネットワークタイプの変更
- SDKをダウンロードします。
- ModifyDBInstanceNetworkTypeAPIを呼び出してネットワークタイプを変更します。
リクエストパラメータ
名前 データ型 必須 説明 Action String はい 実行する操作。 有効値: ModifyDBInstanceNetworkType
DBInstanceId String はい インスタンスのID。 InstanceNetworkType String はい インスタンスのネットワークタイプ。 -
VPC:VPCネットワークのインスタンス。
-
Classic:クラシックネットワークのインスタンス。
VPCId String いいえ VPCのID。 VSwitchId String いいえ VSwitchのID。 VPCのIDが指定されている場合、このパラメータも指定する必要があります。 PrivateIpAddress String いいえ VSwitchのCIDRブロックにIPアドレスを入力します。 IPアドレスが入力されていない場合は、システムにより VPC IDとVSwitch IDに従ったイントラネットIPアドレスが割り当てられます。 RetainClassic String いいえ クラシックネットワークエンドポイントを保持するかどうか。 デフォルト値は Falseです:- True:保持する
- False:保持しない
ClassicExpiredDays String いいえ クラシックネットワークエンドポイントの保持期間。 最短1日、最長120日。デフォルト値は7日。
RetainClassicがTrueに設定されている場合、このパラメータを指定する必要があります。
リターンパラメータ名前 データ型 説明 RequestId String リクエストのID。 TaskId String タスクのID。 コード例
クラシックネットワークエンドポイントを保持しようとする場合は、次のようにしてください:-
パラメータRetainClassicをTrueに設定します。
-
パラメータClassicExpiredDaysに値を設定します。 有効期限が切れたクラシックネットワークエンドポイントは削除されます。
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.rds.model.v20140815. ModifyDBInstanceNetworkTypeRequest; import com.aliyuncs.rds.model.v20140815. ModifyDBInstanceNetworkTypeResponse; import org.junit.Test; public class ModifyDBInstanceNetworkTypeTest { @Test public void switchNetwork_success() { ModifyDBInstanceNetworkTypeRequest request=new ModifyDBInstanceNetworkTypeRequest (); request.setInstanceId("<Your instance ID>"); request.setInstanceNetworkType ("VPC"); request. setVPCId("<VpcId:This parameter is required when the TargetNetworkType is VPC>"); request.setVSwitchId("<VSwitchId: This parameter is required when the TargetNetworkType is VPC>"); request.setRetainClassic("<Whether to retain the classic network endpoint.>"); request.setClassicExpiredDays("The retention time of the classic network endpoint"); IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<Your AK>", <Your Security>"); IAcsClient client = new DefaultAcsClient(profile); try { ModifyDBInstanceNetworkTypeResponse response response = client.getAcsResponse(request); System.out.println(response.getRequestId()); } catch (ServerException e) { e.printStackTrace(); } } catch (ClientException e) { e.printStackTrace(); } } }
-
- DescribeDBInstanceNetInfoAPIを呼び出して、クラシックネットワークエンドポイントとVPCエンドポイントを確認します。
リクエストパラメータ
名前 データ型 必須 説明 Action String はい 実行する操作。 有効値: DescribeDBInstanceNetInfo
DBInstanceId String はい インスタンスのID。 リターンパラメータ名前 データ型 説明 DBInstanceNetInfos List インスタンスのネットワーク情報のリスト。 InstanceNetworkType String インスタンスのネットワークタイプ。 -
VPC:VPCネットワークのインスタンス。
-
Classic:クラシックネットワークのインスタンス。
DBInstanceNetInfo名前 データ型 説明 ConnectionString String DNSの接続文字列。 IPAddress String IPアドレス。 IPType String クラシックネットワークインスタンスのIPタイプ:Inner | Public。
VPCネットワークインスタンスのIPタイプ:Private | Public。
Port String ポート情報。 VPCId String VPCのID。 VSwitchId String VSwitchのID。 ExpiredTime String 期限切れ日時。 コード例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.rds.model.v20140815. DescribeDBInstanceNetInfoRequest; import com.aliyuncs.rds.model.v20140815. DescribeDBInstanceNetInfoResponse; import org.junit.Test; public class DescribeDBInstanceNetInfoTest { @Test public void describeDBInstanceNetInfo_success() { DescribeDBInstanceNetInfoRequest request=new DescribeDBInstanceNetInfoRequest(); request.setInstanceId("<Your instance ID>"); IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<お客様のAK>", "<お客様のSecurity>"); IAcsClient client = new DefaultAcsClient(profile); try { DescribeDBInstanceNetInfoResponse response response = client.getAcsResponse(request); System.out.println(response.getRequestId()); } catch (ServerException e) { e.printStackTrace(); } } catch (ClientException e) { e.printStackTrace(); } } }
-
APIを通してのクラシックネットワークエンドポイントの有効期限の変更
- SDKのURLをクリックしてSDKをダウンロードします。
- ModifyDBInstanceNetworkExpireTimeAPIを呼び出し、クラシックネットワークエンドポイントの有効期限を変更します。
リクエストパラメータの説明
名前 データ型 必須 説明 Action String はい 必須パラメータ。 値: ModifyDBInstanceNetworkExpireTime
.DBInstanceId String はい 対象RDSインスタンスのID。 ConnectionString String はい 延期するクラシックネットワーク接続文字列。 文字列型が2種類あります:現行インスタンスのクラシックネットワークエンドポイントと、読みと書きを分離しているクラシックネットワークエンドポイント ClassicExpiredDays Interger はい クラシックネットワークエンドポイントの保持期間は「1-120」日です。 リターンパラメータ名前 データ型 説明 RequestId String リクエストのID。 コード例
public static void main(String[] args) { ModifyDBInstanceNetExpireTimeRequest request = new ModifyDBInstanceNetExpireTimeRequest(); request.setClassicExpiredDays(3); request.setConnectionString("<URLの文字列>"); request.setDBInstanceId("<インスタンスID>"); IClientProfile profile = DefaultProfile.getProfile("cn-qingdao", "<お客様のak>", "<お客様のsk>"); IAcsClient client = new DefaultAcsClient(profile); try { ModifyDBInstanceNetExpireTimeResponse response = client.getAcsResponse(request); System.out.println(response.getRequestId()); } catch (ServerException e) { e.printStackTrace(); } } catch (ClientException e) { e.printStackTrace(); } }