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

API Gateway:VPC内のリソースをAPIのバックエンドサービスとして使用する

最終更新日:Jan 22, 2025

このトピックでは、高可用性 (HA) バックエンドサービスを作成する方法について説明します。 仮想プライベートクラウド (VPC) 内のElastic Compute Service (ECS) インスタンスとClassic Load Balancer (CLB) インスタンスは、どちらもAPIのバックエンドサービスとして使用できます。

概要

Alibaba Cloud VPCでは、カスタムIPアドレス、CIDRブロック、ルートテーブル、ゲートウェイに基づいて分離ネットワークを構築できます。 API Gatewayを使用すると、VPCにデプロイされたリソースのAPIを作成できます。 VPC内のリソースをAPIのバックエンドサービスとして使用するには、まずAPI Gatewayにリソースへのアクセスを許可する必要があります。

1. VPC内のリソースにアクセスするためのAPI Gatewayの承認

VPC内のリソースを使用してAPIを作成するには、まずAPI Gatewayにリソースへのアクセスを許可する必要があります。 API Gatewayにリソースへのアクセスを許可するには、リソースとアクセスポート (CLBインスタンスのポート443やECSインスタンスのポート80など) を指定する必要があります。

  • 承認後、API Gatewayは指定されたポートを介してVPCのリソースにアクセスできます。

  • この承認により、API GatewayはVPC内のリソースにアクセスしてAPIを呼び出すことができます。

  • API Gatewayは、許可されたポートを介してアクセスすることが許可されたリソースのみにアクセスできます。 たとえば、API GatewayがVPC内のCLBインスタンスのポート80のみを介してリソースにアクセスすることを許可した場合、API GatewayはVPC内のCLBインスタンスのポート80のみを介してリソースにアクセスできます。

VPCのECSインスタンスとCLBインスタンスは、APIのバックエンドサービスとして使用できます。

  • ECSインスタンス: VPCアクセス権限を作成するときに、[VPCアクセスの作成] ダイアログボックスの [インスタンスID] または [IPアドレス] フィールドに、ECSインスタンスのIDまたはプライベートIPアドレスを入力します。

  • CLBインスタンス: 内部CLBインスタンスのみサポートされます。 VPCアクセス許可を作成するときは、[VPCアクセスの作成] ダイアログボックスの [インスタンスID] または [IPアドレス] フィールドに、CLBインスタンスのIDまたはプライベートIPアドレスを入力します。

2. HAアーキテクチャの構築

HAアーキテクチャを構築するには、APIのバックエンドサービスとして内部CLBインスタンスを使用することを推奨します。 CLBインスタンスは、転送ポリシーに基づいて複数のECSインスタンスにアクセストラフィックを分散するために使用できます。 これにより、システム全体のパフォーマンスとアプリケーションの可用性が向上します。

2.1 VPCでのインスタンスの作成

VPCでCLBおよびECSインスタンスを購入および作成します。 この例では、CLBインスタンスはECSインスタンスのポート80をリッスンし、NginxはECSインスタンスにデプロイされています。 内部CLBインスタンスを使用する必要があることに注意してください。

2.2 API GatewayによるVPCへのアクセス許可

API Gatewayコンソールにログインします。 左側のナビゲーションウィンドウで、[APIの管理] > [VPC] を選択します。 [VPCアクセス権限付与] ページで、[権限付与の作成] をクリックします。 [VPCアクセスの作成] ダイアログボックスで、VPCアクセス名、VPC Id、インスタンスIDまたはIPアドレス、およびポート番号のパラメーターを設定します。 CLBまたはECSインスタンス上のサイト (vhost) にアクセスするドメイン名を指定する場合は、[ホスト] フィールドでドメイン名を設定できます。

説明

VPCアクセス名: 現在の権限付与エントリの名前。 APIを作成するときに、この権限を選択する必要があります。 その後の管理を容易にするために、名前がAPI Gatewayで一意であることを確認してください。

2.3 APIの作成Create an API

VPCタイプのバックエンドサービスでAPIを作成する手順は、他のタイプのバックエンドサービスでAPIを作成する手順と同じです。 詳細については、「APIの作成」をご参照ください。

アプリケーションの作成方法と権限付与方法の詳細については、「VPC内のサービスをバックエンドサービスとして使用するAPIの作成」をご参照ください。

2.4 APIのテストTest the API

次のいずれかの方法を使用してAPIをテストできます。

2.5 セキュリティ

API Gatewayは、内部ネットワークを介してVPC内のバックエンドサービスを呼び出します。 より高いセキュリティが必要な場合、または内部CLBインスタンスにブラックリストとホワイトリストが設定されている場合は、API Gatewayの出力IPアドレスのトラフィックを許可する必要があります。 CLBインスタンスのブラックリストとホワイトリストの設定の詳細については、CLBドキュメントのアクセス制御の有効化トピックを参照してください。

ECSインスタンスのセキュリティグループを設定した場合、API Gatewayの出力IPアドレスのトラフィックを許可するセキュリティグループルールを追加する必要があります。 ECSインスタンスにセキュリティグループルールを追加する方法については、「セキュリティグループルールの追加」をご参照ください。

API Gatewayの出力IPアドレスを取得する方法については、「VPC内のリソースをバックエンドサービスとして使用してAPIを作成する」をご参照ください。

よくある質問

API GatewayはパブリックCLBインスタンスをサポートしていますか。

いいえ。API Gatewayは、VPCタイプのバックエンドサービスを使用するAPIの内部CLBインスタンスのみをサポートします。 インターネット経由でCLBインスタンスにアクセスする場合は、HTTP/HTTPSタイプのバックエンドサービスを使用するAPIを作成できます。

API Gatewayに複数のVPCへのアクセスを許可できますか。

はい。 複数のVPCにデプロイされている複数のリソースをAPIのバックエンドサービスとして使用する必要がある場合は、API Gatewayコンソールで複数の承認エントリを作成して、API GatewayがこれらのVPCにアクセスすることを承認できます。

API GatewayにVPCへのアクセスを許可できないのはなぜですか。

API GatewayにVPCへのアクセスを許可できない場合は、VPCのID、バックエンドサービスがデプロイされているインスタンスのID、および入力したポート番号が正しいかどうかを確認します。 VPCが存在するリージョンに権限付与エントリが作成されていることを確認します。

VPCアクセス許可はVPCのセキュリティに影響しますか。

  • いいえ、VPCのセキュリティは影響を受けません。 API Gatewayは、VPCへのアクセスを許可した後にのみ、VPC内のリソースを呼び出します。

  • さらに、承認されたAPI Gatewayインスタンスのみがリソースを呼び出すことができます。

  • バックエンドサービスとして使用されるECSおよびCLBインスタンスのアクセス制御ポリシーを設定できます。

API Gatewayは異なるリージョンのVPCをサポートしていますか。

はい。Cloud Enterprise Network (CEN) を使用して、API Gatewayが他のリージョンのVPCにアクセスできるようにすることができます。 CENの設定方法の詳細については、「CENとは」をご参照ください。