VPC (Virtual Private Cloud) 内の Elastic Computing Service (ECS) インスタンスにパブリック IP アドレスがない場合、そのインスタンスから API 操作を呼び出すことはできません。このトピックでは、これらのインスタンスから Alibaba Cloud 内部ネットワーク経由で API 操作を呼び出す方法について説明します。
背景情報
ECS はパブリックエンドポイントを提供します。ECS インスタンスにパブリック帯域幅またはパブリック IP アドレスがない場合、Alibaba Cloud コマンドラインインターフェイス (CLI) やソフトウェア開発キット (SDK) などのツールを使用して API 操作を呼び出すことはできません。この場合、次の 2 つの方法のいずれかを使用して、Alibaba Cloud 内部ネットワーク経由で API 操作を呼び出すことができます。
SDK: Java コアライブラリ V4.5.3 以降の SDK は、VPC 内の内部ネットワーク経由での API 操作の呼び出しをサポートしています。
CLI: CLI を使用する場合、エンドポイントを対応するリージョンのものに変更して、内部ネットワーク経由で API 操作を呼び出します。
注:
これら 2 つのメソッドはリージョン固有です。エンドポイントを使用して、ECS インスタンスと同じリージョン内のリソースのみを管理できます。クロスリージョン操作はサポートされていません。
ECS インスタンスを作成するには、Alibaba Cloud CLI または SDK がすでにデプロイされているカスタムイメージを使用します。これにより、インスタンスがインターネットにアクセスできないために依存関係の読み込みに失敗するのを防ぎます。
次の表に、内部ネットワーク経由での API 呼び出しをサポートする ECS エンドポイントを示します。使用するエンドポイントがこの表に記載されていることを確認してください。
Alibaba Cloud リージョン | リージョン ID | エンドポイント |
中国 (杭州) | 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 操作を呼び出すことができます。次の Java コードは一例です。
import com.aliyun.ecs20140526.Client;
import com.aliyun.ecs20140526.models.DescribeRegionsRequest;
import com.aliyun.ecs20140526.models.DescribeRegionsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Test {
public static void main(String[] args) throws Exception {
Config config = new Config();
// 必須。ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// 必須。ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// エンドポイントについては、https://api.aliyun.com/product/Ecs をご参照ください
config.setEndpoint("<ENDPOINT>");
// ECS クライアントを初期化します。
Client ecsClient = new Client(config);
// リージョン情報を照会するためのリクエストオブジェクトを作成します。
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
// ランタイムオプションオブジェクトを作成します。
RuntimeOptions runtime = new RuntimeOptions();
// リクエストを送信し、リージョン情報を含むレスポンスを取得します。
DescribeRegionsResponse response = ecsClient.describeRegionsWithOptions(describeRegionsRequest, runtime);
System.out.println(response.body.toMap());
}
}方法 2: CLI を使用して内部ネットワーク経由で API 操作を呼び出す
この例では、DescribeRegions 操作を使用します。サンプルコマンドは次のとおりです。
aliyun ecs DescribeRegions --endpoint ecs-vpc.cn-hangzhou.aliyuncs.com