チュートリアル: プライベート統合を使用して REST API を作成する
このチュートリアルでは、Amazon VPC で実行される Amazon ECS サービスに接続する REST API を作成します。Amazon VPC 外のクライアントは、API を使用して Amazon ECS サービスにアクセスできます。
チュートリアルの所要時間は約 1 時間です。まず、CloudFormation テンプレートを使用して Amazon VPC と Amazon ECS サービスを作成します。次に、API Gateway コンソールを使用して VPC リンク V2 を作成します。VPC リンクは、API Gateway が Amazon VPC で実行されている Amazon ECS サービスにアクセスすることを許可します。次に、VPC リンク V2 を使用して Amazon ECS サービスに接続する REST API を作成します。最後に、API をテストします。
REST API を呼び出すと、API Gateway は VPC リンク V2 を介して Amazon ECS サービスにリクエストをルーティングし、サービスからの応答を返します。
注記
このチュートリアルは以前に HTTP API でサポートされていましたが、現在は VPC リンク V2 を使用する REST API でもサポートされるようになりました。
このチュートリアルを完了するには、AWS アカウントと、コンソールへのアクセス権がある AWS Identity and Access Management ユーザーが必要です。詳細については、「API Gateway を使用するようにセットアップする」を参照してください。
トピック
ステップ 1: Amazon ECS サービスを作成する
Amazon ECS は、クラスターで Docker コンテナを簡単に実行、停止、管理できるようにするコンテナ管理サービスです。このチュートリアルでは、Amazon ECS によって管理されるサーバーレスインフラストラクチャでクラスターを実行します。
この CloudFormation テンプレートをダウンロードして解凍すると、Amazon VPC を含むサービスのすべての依存関係が作成されます。テンプレートを使用して、Application Load Balancer を使用する Amazon ECS サービスを作成します。
CloudFormation スタックを作成するには
https://console.aws.amazon.com/cloudformation
で CloudFormation コンソール を開きます。 -
[スタックの作成] を選択し、[With new resources (standard) 新しいリソースを使用 (標準)] を選択します。
-
[Specify template (テンプレートの指定)] で、[Upload a template file (テンプレートファイルのアップロード)] を選択します。
-
ダウンロードしたテンプレートを選択します。
-
[Next (次へ)] を選択します。
-
[Stack name] (スタックの名前) で、
rest-api-private-integrations-tutorialと入力し、[Next] (次へ) を選択します。 -
[Configure stack options] (スタックオプションの設定) で、[Next] (次へ) を選択します。
-
[Capabilities] (機能) で、CloudFormation がアカウントに IAM リソースを作成できることを承認します。
-
[次へ] を選択し、[送信] を選択します。
CloudFormation は ECS サービスをプロビジョニングします。これには数分かかる場合があります。CloudFormation スタックのステータスが CREATE_COMPLETE の場合は、次のステップに進む準備ができています。
ステップ 2: VPC リンクを作成する
VPC リンクは、API Gateway が Amazon VPC 内のプライベートリソースにアクセスすることを許可します。VPC リンクを使用して、クライアントが REST API を介して Amazon ECS サービスにアクセスできるようにします。
VPC リンクを作成するには
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
メインナビゲーションペインで、[VPC リンク]、[作成] の順に選択します。
メインナビゲーションペインを開くには、必要に応じて、メニューアイコンを選択します。
-
[VPC リンクバージョンを選択] で、[VPC リンク V2] を選択します。
-
[名前] に「
private-integrations-tutorial」と入力します。 -
[VPC] で、ステップ 1 で作成した VPC を選択します。名前は [RestApiStack] で始まります。
-
[Subnets] (サブネット) で、VPC 内の 2 つのプライベートサブネットを選択します。名前の末尾は
PrivateSubnetです。 -
[セキュリティグループ]では、
private-integrations-tutorialで始まり、RestApiStack/RestApiTutorialService/Service/SecurityGroupの説明を持つグループ ID を選択します。 -
[作成] を選択します。
VPC リンク V2 を作成すると、API Gateway は、VPC にアクセスするために Elastic Network Interface をプロビジョニングします。プロセスには数分かかることがあります。その間、API を作成できます。
ステップ 3: REST API を作成する
REST API は、Amazon ECS サービスの HTTP エンドポイントを提供します。
REST API を作成するには
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
[Create API] (API を作成) を選択し、[REST API] で [Build] (構築) を選択します。
-
[Name] (名前) には
private-integration-apiを入力します。 -
[IP アドレスの種類] には [IPv4] を選択します。
[API の作成] を選択します。
API を作成したら、メソッドを作成します。
-
[メソッドを作成] を選択して、次の操作を行います。
[メソッドタイプ] では、
GETを選択します。[統合タイプ] で、[VPC リンク] を選択します。
[VPC プロキシ統合] を有効にします。
[HTTP メソッド] で、[
GET] を選択します。-
[VPC リンク] で、前の手順で作成した VPC リンク V2 を選択します。
-
[統合ターゲット] には、ステップ 1 で CloudFormation テンプレートを使用して作成したロードバランサーを入力します。名前は [rest-] で始まる必要があります。
-
[エンドポイント URL] に「
http://private-integrations-tutorial.com」と入力します。URL は、統合リクエストの
Hostヘッダーを設定するために使用されます。この場合、ホストヘッダーはprivate-integrations-tutorialです。 [メソッドの作成] を選択します。
プロキシ統合で、API はテストできる状態になります。
ステップ 4: API をテストする
次に、API メソッドの呼び出しをテストします。
API をテストするために
API Gateway コンソール (https://console.aws.amazon.com/apigateway
) にサインインします。 -
API を選択します。
[テスト] タブを選択します。タブを表示するには、右矢印ボタンを選択する必要がある場合があります。
[テスト] を選択します。
API の応答が、アプリケーションが Amazon ECS で実行されていることを示すウェルカムメッセージであることを確認します。
ステップ 5: API をデプロイする
次に、API をデプロイします。
API をデプロイするには
[API のデプロイ] を選択します。
[ステージ] で [新規ステージ] を選択します。
[Stage name (ステージ名)] に
Prodと入力します。(オプション) [説明] に説明を入力します。
[デプロイ] を選択します。
ステップ 6: API を呼び出す
API がデプロイされたら、それを呼び出すことができます。
API を呼び出すには
-
ウェブブラウザに呼び出し URL を入力します。
URL は次のようになります。
https://abcd123.execute-api.us-east-2.amazonaws.com/Prodブラウザが API に
GETリクエストを送信します。 -
API の応答が、アプリケーションが Amazon ECS で実行されていることを示すウェルカムメッセージであることを確認します。
Amazon VPC で実行される Amazon ECS サービスを正常に作成し、VPC リンク V2 を持つ API Gateway REST API を使用して Amazon ECS サービスにアクセスすると、ウェルカムメッセージが表示されます。
ステップ 7: クリーンアップ
不要なコストを回避するには、このチュートリアルで作成したリソースを削除します。次の手順では、VPC リンク V2、CloudFormation スタック、および REST API を削除します。
REST API を削除するには
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
[API] ページで API を選択します。[Actions] (アクション)、[Delete] (削除) の順に選択し、選択を確定します。
VPC リンクを削除するには
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
[VPC link] (VPC リンク) を選択します。
-
VPC リンクを選択し、[Delete] (削除) を選択して、選択を確定します。
CloudFormation スタックを削除するには
CloudFormation コンソール (https://console.aws.amazon.com/cloudformation
) を開きます。 -
CloudFormation スタックを選択します。
-
[Delete] (削除) を選択し、選択を確定します。