本ドキュメントでは、クラシックネットワークエンドポイントを保持したまま、ApsaraDB for RedisインスタンスのネットワークタイプをコンソールとAPIを通してVPCネットワークに切り替える方法について説明します。 クラシックネットワークエンドポイントには有効期限があります。 必要に応じて有効期限を指定することができます。 指定した期限に達すと、クラシックネットワークエンドポイントはシステムにより自動的に削除されます。 エンドポイントが削除される前に、通知メッセージが届きます。

前提

ネットワークタイプを変更する前に、次の条件が満たされていることが必要です。
  • インスタンスのネットワークタイプがクラシックネットワークであることが必要です。

  • Redisインスタンスが配置されているゾーンには、使用可能なVPCとVSスイッチがあります。 詳細は次を参照してくださいVPCとVSwitchの作成

コンソールでネットワークタイプを変更します。

  1. Redisコンソールにログインします。
  2. インスタンスが配置されたリージョンを選択します。
  3. 対象インスタンスのIDをクリックします。
  4. インスタンス情報ページで、VPCへ切り替えをクリックします。
  5. 表示されるダイアログボックスで、次の手順に従って操作してください:
    1. 対象VPCとVSwitchを選択します。
    2. クラシックネットワークエンドポイントを保持するように選択し、期限を指定します。
      クラシックネットワークエンドポイントを保持すると、クラシックネットワークのECSインスタンスが引き続きデータベースにアクセスでき、サービスに影響はありません。 クラシックネットワークエンドポイントが期限切れになると、システムにより自動的削除され、クラシックネットワークエンドポイント経由でのデータベースアクセスはできなくなります。
    3. OKをクリックします。
  6. インスタンス情報ページで、更新をクリックしてVPCエンドポイントとクラシックネットワークエンドポイントを確認できます。

有効期限の変更

クラシックネットワークエンドポイントの保持期間を設定後、有効期限が切れる前にコンソールを使用して保持期間を延長することができます。

ハイブリッドアクセス期間中は、必要に応じてクラシックネットワークエンドポイントの保持期間をいつでも変更できます。 たとえば、クラシックネットワークエンドポイントが2017年8月18日までに期限切れになるように設定されています、2017年8月15日にその有効期限を14日後に変更した場合、エンドポイントのリリース日は2017年8月29日になります。

  1. Redisコンソールにログインします。
  2. 対象インスタンスが配置されたリージョンを選択します。
  3. 対象インスタンスのIDをクリックします。
  4. 保持中のクラシックネットワーク接続アドレスセクションで、有効期限を変更をクリックします。
  5. 表示されるダイアログボックスで、新しい有効期限を選択してOKをクリックします。

APIを通してのネットワークタイプの変更

  1. SDKをダウンロードします。 ( ApsaraDB for MemcacheのSDKは、ApsaraDB for RedisのSDKと同じです)。
  2. SwitchNetworkAPIを呼び出してネットワークタイプを変更します。
    リクエストパラメータ
    名前 データ型 必須 説明
    Action String はい 実行する操作。 有効値:

    SwitchNetwork

    InstanceId String はい インスタンスのID。
    TargetNetworkType String はい インスタンスのネットワークタイプ。
    • VPC: VPC
    • Classic:クラシックネットワーク
    VPCId String いいえ VPCのID。
    VSwitchId String いいえ

    VSwitchのID。

    VPCのIDが指定されている場合、このパラメータも指定する必要があります。

    RetainClassic String いいえ
    クラシックネットワークエンドポイントを保持するかどうか。 デフォルト値は Falseです:
    • True:保持する
    • False:保持しない
    ClassicExpiredDays String いいえ

    クラシックネットワークエンドポイントの保持期間。 最短1日、最長120日。デフォルト値は7日。

    RetainClassicがTrueに設定されている場合、このパラメータを指定する必要があります。

    リターンパラメータ
    名前 データ型 説明
    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("<クラシックネットワークエンドポイントを保持するかどうか。>");
             request.setClassicExpiredDays("クラシックネットワークエンドポイントの保持期間");
             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();
             }
         }
     }
  3. DescribeDBInstanceNetInfoAPIを呼び出し、クラシックネットワークエンドポイント及びVPCエンドポイントを確認します。

    リクエストパラメータ

    名前 データ型 必須 説明
    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 VSwitchの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を通してのクラシックネットワークエンドポイントの有効期限の変更

  1. SDKのURLをクリックしてSDKをダウンロードします。 (ApsaraDB for MemcacheのSDKはApsaraDB for RedisのSDKと同じです。)
  2. ModifyInstanceNetExpireTimeAPIを呼び出し、ネットワークタイプを変更します。
    リクエストパラメータ
    名前 データ型 必須 説明
    Action String はい 実行する操作。 有効値:

    ModifyInstanceNetExpireTime

    .
    InstanceId String はい インスタンスのID。
    ConnectionString String はい クラシックネットワークのエンドポイント。
    ClassicExpiredDays Interger はい

    有効期限を選択します。

    有効値:14/30/60/120。

    リターンパラメータ
    名前 データ型 説明
    RequestId String リクエストのID。

    コード例

    public static void main(String[] args) {
         ModifyInstanceNetExpireTimeRequest request = new ModifyInstanceNetExpireTimeRequest();
         request.setClassicExpiredDays(3);
         request.setConnectionString("<URLの文字列>");
         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();
         }
     }