すべてのプロダクト
Search
ドキュメントセンター

API Gateway:内部ネットワーク経由でFunction ComputeからAPI Gatewayにアクセスする

最終更新日:Jan 24, 2025

このトピックでは、Function ComputeからVPC経由でAPI Gatewayにアクセスする方法について説明します。

概要

API GatewayをFunction Computeと統合して、サーバーレスアーキテクチャを構築できます。 Function Computeを使用する場合、API Gatewayで公開されたAPIを呼び出す必要がある場合があります。 セキュリティ上の理由から、Function Computeを使用する場合は、内部ネットワーク経由でAPI Gatewayにアクセスすることを推奨します。 このトピックでは、次のシナリオで、内部ネットワークを介したAPI Gatewayへのアクセスについて説明します。

  • シナリオ1: API GatewayとFunction Computeが同じリージョンにデプロイされています。

  • シナリオ2: API GatewayとFunction Computeは異なるリージョンにデプロイされています。

2つのシナリオでは、次の設定原則に従います。

シナリオ 1

  1. 次の図のようなアーキテクチャを構築します。

説明
  • 中国 (上海) リージョンには、vpc-api-accessとvpc-backend-1という名前の2つのvpcが作成されます。

  • 中国 (上海) リージョンに1つの専用API Gatewayインスタンスが作成されます。

  • vpc-backend-1では、Elastic Compute Service (ECS) インスタンスがAPI Gatewayのバックエンドサービスとして作成されます。 このECSインスタンスは、HTTP経由でAPIを提供します。 HTTPサービスアドレスはhttp:// localhost:8080/web/cloudapiです。 セキュリティグループは、API GatewayがこのECSインスタンスにアクセスできるように設定されています。

  1. バックエンドサービスタイプとしてVPCを使用してAPIを作成します。

    詳細については、「VPCのリソースをAPI操作のバックエンドサービスとして使用する」をご参照ください。 以下の事項にご注意ください。

    • VPC権限を作成します。 作成されたVPC権限は、[VPCアクセスリスト] ページに表示されます。

    • バックエンドサービスタイプをVPCに設定します。 その後のAPI呼び出しテストを容易にするため、セキュリティ認証を認証なしに設定します。

    • 設定を保存し、APIを本番環境に公開します。

  2. VPC経由のAPI Gatewayへのアクセス権限を設定します。

    API Gatewayコンソールの [インスタンスリストページ] の [専用インスタンス (VPC)] セクションで、[クライアントVPC] フィールドの右側にある [VPCにバインド] をクリックします。 表示されるダイアログボックスで、[vpc ID] ドロップダウンリストからVpc-api-accessのIdを選択し、[確認] をクリックします。 vpc-API-access経由でapi Gatewayにアクセスできます。

  1. APIグループのVPCサブドメインを有効にします。

    [グループの詳細] ページで、[VPCドメイン名] フィールドの右側にある [VPC第2レベルドメインの有効化] をクリックします。 VPC第2レベルドメインの有効化メッセージで、確認をクリックします。 VPCの第2レベルのドメイン名がこのAPIグループに割り当てられます。 このドメイン名を使用して、このAPIグループのAPIを呼び出すことができます。

重要

APIグループのインターネットアクセスはデフォルトで有効になっています。 [インターネット経由のアクセスを無効にする] をクリックして、ビジネス要件に基づいてインターネットアクセスを無効にします。 インターネットアクセスが無効になっている場合、API Gatewayコンソールでオンラインデバッグを実行できません。

  1. 関数を作成します。

    Function Computeで、アプリケーションを作成し、Python環境で実行される関数を作成します。 この関数の内容を次の図に示します。

    この関数では、curlコマンドのみを実行して、VPCサブドメインのAPIを呼び出します。 curlコマンドを実行してVPCサブドメインにバインドされたAPIを呼び出すと、API呼び出しは失敗します。

  2. Function Computeに接続するためにvpc-api-accessでvSwitchを作成します。

    Function Computeコンソールにログインし、次の設定を実行します。 詳細については、「ネットワーク設定の構成」をご参照ください。

    [Configure Service] ページの [Network Config] セクションで、[vpc] ドロップダウンリストから [VPC-api-access] を選択し、[Vswitches] ドロップダウンリストから作成したvSwitchを選択します。

    [Configure Service] ページの [Role Config] セクションで、[role Operation] ドロップダウンリストから [Create new Role] を選択し、[System Policies] ドロップダウンリストから [AliyunECSNetworkInterfaceManagementAccess] を選択し、[Authorize] をクリックし、[Submit] をクリックします。

  3. テストの関数を実行します。

    この機能を実行すると、このVPCサブドメインを使用して、API Gatewayで公開されているAPIにアクセスできます。

シナリオ 2

  1. 次の図のようなアーキテクチャを構築します。

説明
  • 中国 (張家口-北京冬季オリンピック) リージョンでは、API呼び出しを開始するためにFunction Compute用のアプリケーションが作成されます。 VPC-fc-accessという名前のvpcが作成されます。 Function Computeは、このVPCを介してCloud Enterprise Network (CEN) に接続できます。

  • 中国 (上海) リージョンでは、専用API GatewayインスタンスとVPC-api-accessという名前のvpcが接続されています。 API Gatewayは、このVPCを介してCENに接続できます。

  • 中国 (上海) リージョンでは、vpc-backend-1という名前の別のVPCが作成されます。 ECSインスタンスがAPI Gatewayのバックエンドサービスとして作成されます。 このECSインスタンスは、HTTP経由でAPIを提供します。 HTTPサービスアドレスはhttp:// localhost:8080/web/cloudapiです。 セキュリティグループは、API GatewayがこのECSインスタンスにアクセスできるように設定されています。

  1. CENを作成します。

    Function Computeが内部ネットワークを介してapi Gatewayと通信できるように、vpc-API-accessとvpc-fc-accessを相互接続するためのCENを作成します。 CENを設定する方法の詳細については、CENとは何ですか?. CENコンソールにログインし、CENインスタンスを作成します。 vpc-api-accessとvpc-fc-accessをCENインスタンスに関連付けます。

  2. 帯域幅を設定します。

    CENインスタンス内の通信に使用される帯域幅プランを購入します。 この例では、2 Mbit/sの帯域幅プランが購入されます。 ビジネス要件に基づいて帯域幅プランを購入できます。

    CENページの [リージョン接続] タブで、CENインスタンスのリージョンの帯域幅を設定します。 帯域幅プランに基づいて、接続リージョンの各ペアの帯域幅サイズを設定できます。

  3. クロスVPCルートを設定します。

    CEN製品チームにチケットを送信して、ルートを設定します。 ResolveAndRouteServiceInCen API操作に必要な設定パラメーターを指定します。 これらのルートにより、中国 (張家口-北京冬季オリンピック) リージョンのAPI GatewayとVPC間の通信が可能になります。

    AccessRegionIds.1=cn-zhangjiakou
    AccessRegionIds.2=cn-shanghai
    CenId=cen-uggzcthgz7cwsl7prr      #The ID of the CEN instance.
    Host=100.104.255.128/26                #The VPC egress address of the dedicated API Gateway instance.
    HostRegionId=cn-shanghai
    HostVpcId=vpc-uf65amr4k3aepd0u4gnxa     #The ID of vpc-api-access. API Gateway deployed in the China (Shanghai) region can connect to the CEN over this VPC.                        

専用API GatewayインスタンスのVPC出力アドレスを取得するには、API Gatewayコンソールの [インスタンス] ページに移動します。

チケットが処理された後、CENコンソールで中国 (上海) および中国 (張家口-北京冬季オリンピック) リージョンに設定されたルートを表示できます。 カスタムルートは、指定した設定パラメーターに基づいて追加されます。

  1. バックエンドサービスタイプとしてVPCを使用してAPIを作成します。

    シナリオ1手順2で説明した操作に従います。

  2. VPC経由のAPI Gatewayへのアクセス権限を設定します。

    シナリオ1手順3で説明した操作に従います。

  3. VPC上のAPIグループのドメイン名を有効にします。

    シナリオ1手順4で説明した操作に従います。

  4. 関数を作成します。

    中国 (張家口-北京冬季オリンピック) リージョンにデプロイされたFunction Computeインスタンスで、アプリケーションを作成し、Python環境で実行される関数を作成します。 この関数の内容を次の図に示します。

  5. Function ComputeのVPCアクセスを設定します。

    vpc-fc-accessでvSwitchを作成します。 次に、Function Computeコンソールにログインし、必要な設定を実行します。 動作は、シナリオ1ステップ6で説明したものと同様である。

  6. テストの関数を実行します。

    この機能を実行すると、このVPCサブドメインを使用して、API Gatewayで公開されているAPIにアクセスできます。

制限事項

  • 専用のAPI Gatewayインスタンスのみを使用できます。