パブリックIPアドレスを持たないVPCタイプのECSインスタンスでは、API操作を呼び出すことはできません。 このトピックでは、Alibaba Cloud内部ネットワークを介してVPCタイプのECSインスタンスでAPI操作を呼び出す方法について説明します。
背景情報
ECSはパブリックエンドポイントを提供します。 ECSインスタンスにパブリック帯域幅またはパブリックIPアドレスがない場合、Alibaba Cloud CLIやSDKなどのツールを使用してAPIリクエストを行うことはできません。 次のいずれかの方法を使用して、Alibaba Cloud内部ネットワーク経由でAPI操作を呼び出すことができます。
SDK: SDK for Javaコアライブラリv4.5.3以降を使用して、VPCの内部ネットワーク上でAPI操作を呼び出します。
CLI: CLIを使用して、特定のリージョンのエンドポイントを指定して、内部ネットワーク経由でAPI操作を呼び出します。
以下の点にご注意ください。
これらの方法は、VPCタイプのECSインスタンスがデプロイされているリージョンにのみ適用されます。 リージョンのエンドポイントを使用して、そのリージョン内のリソースのみを管理できます。 クロスリージョン操作はサポートされていません。
Alibaba Cloud CLIまたはSDKがデプロイされたカスタムイメージを使用してECSインスタンスを作成することを推奨します。 ECSインスタンスは、インターネットへのアクセスで関連する依存関係をロードする必要があります。
次の表に、内部ネットワークを介したAPI呼び出しをサポートするエンドポイントを示します。 テーブルにリストされているエンドポイントを使用していることを確認します。
Alibaba Cloudリージョン | リージョン ID | Endpoint |
中国 (杭州) | cn-hangzhou | ecs-vpc.cn-hangzhou.aliyuncs.com |
中国 (上海) | cn-shanghai | ecs-vpc.cn-shanghai.aliyuncs.com |
中国 (南京 - ローカルリージョン) | cn-nanjing | ecs-vpc.cn-nanjing.aliyuncs.com |
中国 (福州 - ローカルリージョン) | cn-fuzhou | ecs-vpc.cn-fuzhou.aliyuncs.com |
中国 (青島) | cn-qingdao | ecs-vpc.cn-qingdao.aliyuncs.com |
中国 (北京) | cn-beijing | ecs-vpc.cn-beijing.aliyuncs.com |
中国 (張家口) | cn-zhangjiakou | ecs-vpc.cn-zhangjiakou.aliyuncs.com |
中国 (フフホト) | cn-huhehaote | ecs-vpc.cn-huhehaote.aliyuncs.com |
中国 (ウランチャブ) | cn-wulanchabu | ecs-vpc.cn-wulanchabu.aliyuncs.com |
中国 (深セン) | cn-shenzhen | ecs-vpc.cn-shenzhen.aliyuncs.com |
中国 (河源) | cn-heyuan | ecs-vpc.cn-heyuan.aliyuncs.com |
中国 (広州) | cn-guangzhou | ecs-vpc.cn-guangzhou.aliyuncs.com |
中国 (成都) | cn-chengdu | ecs-vpc.cn-chengdu.aliyuncs.com |
中国 (香港) | cn-hongkong | ecs-vpc.cn-hongkong.aliyuncs.com |
シンガポール | ap-southeast-1 | ecs-vpc.ap-southeast-1.aliyuncs.com |
マレーシア (クアラルンプール) | ap-southeast-3 | ecs-vpc.ap-southeast-3.aliyuncs.com |
インドネシア (ジャカルタ) | ap-southeast-5 | ecs-vpc.ap-southeast-5.aliyuncs.com |
フィリピン (マニラ) | ap-southeast-6 | ecs-vpc.ap-southeast-6.aliyuncs.com |
タイ (バンコク) | ap-southeast-7 | ecs-vpc.ap-southeast-7.aliyuncs.com |
日本 (東京) | ap-northeast-1 | ecs-vpc.ap-northeast-1.aliyuncs.com |
韓国 (ソウル) | ap-northeast-2 | ecs-vpc.ap-northeast-2.aliyuncs.com |
ドイツ (フランクフルト) | eu-central-1 | ecs-vpc.eu-central-1.aliyuncs.com |
イギリス (ロンドン) | eu-west-1 | ecs-vpc.eu-west-1.aliyuncs.com |
米国 (シリコンバレー) | us-west-1 | ecs-vpc.us-west-1.aliyuncs.com |
米国 (バージニア) | us-east-1 | ecs-vpc.us-east-1.aliyuncs.com |
UAE (ドバイ) | me-east-1 | ecs-vpc.me-east-1.aliyuncs.com |
方法1: (推奨) SDKを使用して内部ネットワーク経由でAPI操作を呼び出す
SDKを使用して内部ネットワーク経由でAPI操作を呼び出す場合は、簡単な設定が必要です。 次のコードは、SDK for Javaを使用して内部ネットワーク経由でAPI操作を呼び出す方法の例を示しています。
DefaultProfile profile = DefaultProfile.getProfile("<RegionId>", "System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")", "System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")");
IAcsClient client = new DefaultAcsClient(profile);
// Configure parameters that take effect globally. In the configuration, <product> indicates the service name. For example, you can enter Ecs for ECS.
DefaultProfile.addEndpoint("<RegionId>", "<product>", "<Endpoint>");
// Configure parameters that take effect only for the request. For example, when you call the DescribeRegions operation, you can make the following configurations:
DescribeRegionsRequest regionsRequest = new DescribeRegionsRequest();
// If you configure the productNetwork parameter, you do not need to configure the SysEndpoint parameter.
regionsRequest.setSysEndpoint("<Endpoint>");
// Configure the network. Valid values of the productNetwork parameter: vpc and public. Default value: public.
// If you want to call the DescribeRegions operation over the internal network, set the parameter to vpc. If you want to call this operation over the Internet, set the parameter to public.
regionsRequest.productNetwork = "vpc";
DescribeRegionsResponse regionsResponse = client.getAcsResponse(regionsRequest);
方法2: CLIを使用して内部ネットワーク経由でAPI操作を呼び出す
この例では、DescribeRegions操作を使用します。 サンプルコマンド:
aliyun ecs DescribeRegions --endpoint ecs-vpc.cn-hangzhou.aliyuncs.com