

# チュートリアル: プライベート統合を使用して REST API を作成する
<a name="getting-started-with-private-integration"></a>

このチュートリアルでは、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 でもサポートされるようになりました。

![\[このチュートリアルで作成する REST API の概要。\]](http://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/private-integration-rest.png)


このチュートリアルを完了するには、AWS アカウントと、コンソールへのアクセス権がある AWS Identity and Access Management ユーザーが必要です。詳細については、「[API Gateway を使用するようにセットアップする](setting-up.md)」を参照してください。

**Topics**
+ [ステップ 1: Amazon ECS サービスを作成する](#rest-api-private-integration-create-ecs-service)
+ [ステップ 2: VPC リンクを作成する](#http-api-private-integration-vpc-link)
+ [ステップ 3: REST API を作成する](#http-api-private-integration-create-api)
+ [ステップ 4: API をテストする](#rest-api-private-integration-test-api)
+ [ステップ 5: API をデプロイする](#rest-api-private-integration-deploy-api)
+ [ステップ 6: API を呼び出す](#rest-api-private-integration-call)
+ [ステップ 7: クリーンアップ](#rest-api-private-integration-cleanup)

## ステップ 1: Amazon ECS サービスを作成する
<a name="rest-api-private-integration-create-ecs-service"></a>

Amazon ECS は、クラスターで Docker コンテナを簡単に実行、停止、管理できるようにするコンテナ管理サービスです。このチュートリアルでは、Amazon ECS によって管理されるサーバーレスインフラストラクチャでクラスターを実行します。

[この CloudFormation テンプレート](samples/rest-private-integration-tutorial.zip)をダウンロードして解凍すると、Amazon VPC を含むサービスのすべての依存関係が作成されます。テンプレートを使用して、Application Load Balancer を使用する Amazon ECS サービスを作成します。

**CloudFormation スタックを作成するには**

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソール を開きます。

1. [**スタックの作成**] を選択し、[**With new resources (standard) 新しいリソースを使用 (標準)**] を選択します。

1. [**Specify template (テンプレートの指定)**] で、[**Upload a template file (テンプレートファイルのアップロード)**] を選択します。

1. ダウンロードしたテンプレートを選択します。

1. [**Next (次へ)**] を選択します。

1. [**Stack name**] (スタックの名前) で、**rest-api-private-integrations-tutorial** と入力し、[**Next**] (次へ) を選択します。

1. [**Configure stack options**] (スタックオプションの設定) で、[**Next**] (次へ) を選択します。

1. [**Capabilities**] (機能) で、CloudFormation がアカウントに IAM リソースを作成できることを承認します。

1. **[次へ]** を選択し、**[送信]** を選択します。

CloudFormation は ECS サービスをプロビジョニングします。これには数分かかる場合があります。CloudFormation スタックのステータスが **CREATE\$1COMPLETE** の場合は、次のステップに進む準備ができています。

## ステップ 2: VPC リンクを作成する
<a name="http-api-private-integration-vpc-link"></a>

VPC リンクは、API Gateway が Amazon VPC 内のプライベートリソースにアクセスすることを許可します。VPC リンクを使用して、クライアントが REST API を介して Amazon ECS サービスにアクセスできるようにします。

**VPC リンクを作成するには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. メインナビゲーションペインで、**[VPC リンク]**、**[作成]** の順に選択します。

   メインナビゲーションペインを開くには、必要に応じて、メニューアイコンを選択します。

1. **[VPC リンクバージョンを選択]** で、**[VPC リンク V2]** を選択します。

1. [**名前**] に「**private-integrations-tutorial**」と入力します。

1. [**VPC**] で、ステップ 1 で作成した VPC を選択します。名前は **[RestApiStack]** で始まります。

1. [**Subnets**] (サブネット) で、VPC 内の 2 つのプライベートサブネットを選択します。名前の末尾は `PrivateSubnet` です。

1. **[セキュリティグループ]**では、`private-integrations-tutorial` で始まり、`RestApiStack/RestApiTutorialService/Service/SecurityGroup` の説明を持つグループ ID を選択します。

1. **[作成]** を選択します。

VPC リンク V2 を作成すると、API Gateway は、VPC にアクセスするために Elastic Network Interface をプロビジョニングします。プロセスには数分かかることがあります。その間、API を作成できます。

## ステップ 3: REST API を作成する
<a name="http-api-private-integration-create-api"></a>

REST API は、Amazon ECS サービスの HTTP エンドポイントを提供します。



**REST API を作成するには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. [**Create API**] (API を作成) を選択し、[**REST API**] で [**Build**] (構築) を選択します。

1. **[Name]** (名前) には **private-integration-api** を入力します。

1. **[IP アドレスの種類]** には **[IPv4]** を選択します。

1. **[API の作成]** を選択します。

   API を作成したら、メソッドを作成します。

1. **[メソッドを作成]** を選択して、次の操作を行います。

   1. **[メソッドタイプ]** では、`GET` を選択します。

   1. **[統合タイプ]** で、**[VPC リンク]** を選択します。

   1. **[VPC プロキシ統合]** を有効にします。

   1. **[HTTP メソッド]** で、[`GET`] を選択します。

   1. **[VPC リンク]** で、前の手順で作成した VPC リンク V2 を選択します。

   1. **[統合ターゲット]** には、ステップ 1 で CloudFormation テンプレートを使用して作成したロードバランサーを入力します。名前は **[rest-]** で始まる必要があります。

   1. **[エンドポイント URL]** に「`http://private-integrations-tutorial.com`」と入力します。

      URL は、統合リクエストの `Host` ヘッダーを設定するために使用されます。この場合、ホストヘッダーは **private-integrations-tutorial** です。

   1. **[メソッドの作成]** を選択します。

      プロキシ統合で、API はテストできる状態になります。

## ステップ 4: API をテストする
<a name="rest-api-private-integration-test-api"></a>

次に、API メソッドの呼び出しをテストします。

**API をテストするために**

1. API Gateway コンソール ([https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)) にサインインします。

1. API を選択します。

1. **[テスト]** タブを選択します。タブを表示するには、右矢印ボタンを選択する必要がある場合があります。

1. **[テスト]** を選択します。

   API の応答が、アプリケーションが Amazon ECS で実行されていることを示すウェルカムメッセージであることを確認します。

## ステップ 5: API をデプロイする
<a name="rest-api-private-integration-deploy-api"></a>

次に、API をデプロイします。

**API をデプロイするには**

1. [**API のデプロイ**] を選択します。

1. **[ステージ]** で **[新規ステージ]** を選択します。

1. [**Stage name (ステージ名)**] に **Prod** と入力します。

1. (オプション) **[説明]** に説明を入力します。

1. **[デプロイ]** を選択します。

## ステップ 6: API を呼び出す
<a name="rest-api-private-integration-call"></a>

API がデプロイされたら、それを呼び出すことができます。

**API を呼び出すには**

1. ウェブブラウザに呼び出し URL を入力します。

   URL は次のようになります。`https://abcd123.execute-api.us-east-2.amazonaws.com/Prod`

   ブラウザが API に`GET`リクエストを送信します。

1. API の応答が、アプリケーションが Amazon ECS で実行されていることを示すウェルカムメッセージであることを確認します。

   Amazon VPC で実行される Amazon ECS サービスを正常に作成し、VPC リンク V2 を持つ API Gateway REST API を使用して Amazon ECS サービスにアクセスすると、ウェルカムメッセージが表示されます。

## ステップ 7: クリーンアップ
<a name="rest-api-private-integration-cleanup"></a>

不要なコストを回避するには、このチュートリアルで作成したリソースを削除します。次の手順では、VPC リンク V2、CloudFormation スタック、および REST API を削除します。

**REST API を削除するには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. [**API**] ページで API を選択します。[**Actions**] (アクション)、[**Delete**] (削除) の順に選択し、選択を確定します。

**VPC リンクを削除するには**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1. [**VPC link**] (VPC リンク) を選択します。

1. VPC リンクを選択し、[**Delete**] (削除) を選択して、選択を確定します。

**CloudFormation スタックを削除するには**

1. CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. CloudFormation スタックを選択します。

1. [**Delete**] (削除) を選択し、選択を確定します。