Amazon API Gateway
開発者ガイド

API Gateway コンソールを使用してステージをセットアップする

新しいステージを作成する

最初のデプロイ後に、さらにステージを追加して既存のデプロイに関連付けることができます。API Gateway コンソールを使用して新しいステージを作成して使用するか、API をデプロイするときに既存のステージを選択できます。通常は、API を再デプロイする前に、API デプロイに新しいステージを追加できます。これを API Gateway コンソールで行うには、次の手順に従います。

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

  2. [API] ナビゲーションペインで、API の下の [ステージ] を選択します。

  3. [ステージ] ナビゲーションペインから、[作成] を選択します。

  4. [ステージの作成] で、[ステージ名] に prod などのステージ名を入力します。

  5. オプションで、[ステージの説明] にステージの説明を入力します。

  6. [Deployment (デプロイメント)] ドロップダウンリストで、このステージに関連付ける既存の API デプロイの日付と時刻を選択します。

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

ステージ設定の更新

API が正常にデプロイされると、ステージにデフォルト設定が入力されます。API キャッシュやログ記録などのステージ設定は、コンソールまたは API Gateway REST API を使用して変更できます。以下では、API Gateway コンソールの [ステージエディター] を使用してその方法を示します。

API Gateway コンソールによるステージ設定の更新

これらのステップでは、すでに API をステージにデプロイしていることを前提としています。

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

  2. [API] ペインで、API を選択し、[ステージ] を選択します。

  3. [ステージ] ペインで、ステージの名前を選択します。

  4. [ステージエディター] ペインで、[設定] タブを選択します。

  5. ステージの API キャッシュを有効にするには、[キャッシュ設定] セクションの [API キャッシュを有効化] オプションを選択します。次に、[キャッシュキャパシティー]、[キャッシュデータを暗号化する]、[キャッシュ有効期限 (TTL)] の適切なオプションと関連値を選択し、キーごとのキャッシュの無効化の要件を選択します。

    ステージレベルのキャッシュ設定の詳細については、「API キャッシュを有効にする」を参照してください。

    重要

    API ステージの API キャッシュを有効にすると、AWS アカウントに対して API キャッシュの使用料金が発生することがあります。キャッシュは AWS 無料利用枠の対象ではありません。

    ヒント

    また、個別のメソッドに対してステージレベルのキャッシュ設定を上書きすることができます。これを行うには、[ステージ] セカンダリナビゲーションペインでステージを展開し、メソッドを選択します。次に、[ステージエディター] に戻り、[設定] の [このメソッドの上書き] オプションを選択します。[キャッシュ設定] エリアで、[メソッドキャッシュの有効化] を設定またはオフにするか、その他の必要なオプションをカスタマイズできます。メソッドレベルのキャッシュ設定の詳細については、「API キャッシュを有効にする」を参照してください。

  6. この API Gateway API のこのステージに関連付けられたすべてのメソッドに対して Amazon CloudWatch Logs を有効にするには、以下の手順を実行します。

    1. [CloudWatch Settings (CloudWatch の設定)] セクションで、[Enable CloudWatch Logs (CloudWatch Logs の有効化)] オプションを選択します。

      ヒント

      メソッドレベルの CloudWatch 設定を有効にするには、[ステージ] セカンダリナビゲーションペインの下のステージを展開し、対象の各メソッドを選択します。次に、[ステージエディター] で、[設定] の [このメソッドの上書き] を選択します。[CloudWatch Settings (CloudWatch の設定)] エリアで、[Log to CloudWatch Logs (CloudWatch Logs へのログ記録)] およびその他の必要なオプションを選択してから、[変更の保存] を選択します。

      重要

      アカウントではメソッドレベルの CloudWatch メトリクスに対して課金されますが、API またはステージレベルのメトリクスに対しては課金されません。

    2. [ログレベル] で、エラーレベルのエントリのみが CloudWatch Logs に書き込まれるようにするには [エラー] を選択し、すべての [エラー] イベントとその他の通知イベントを含めるには、[情報] を選択します。

    3. API コールのリクエストとレスポンスのすべての情報を記録するには、[リクエスト/レスポンスデータをすべてログ] を選択します。[リクエスト/レスポンスデータをすべてログ] オプションが選択されていない限り、機密データは記録されません。

    4. API Gateway から CloudWatch に対して、API callsLatencyIntegration latency400 errors、および 500 errors の API メトリクスをレポートするには、[詳細 CloudWatch メトリクスを有効化] オプションを選択します。CloudWatch の詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。

    5. [Save Changes] を選択します。新しい設定は、新しいデプロイの後に有効になります。

      重要

      すべてのメソッドまたは一部のメソッドのみに対して CloudWatch Logs を有効にするには、IAM ユーザーに代わって CloudWatch Logs に情報を書き込むことを API Gateway に許可する IAM ロールの ARN も指定する必要があります。そのためには、[API] メインナビゲーションペインから [設定] を選択します。次に、[CloudWatch ログのロール ARN] テキストフィールドに IAM ロールの ARN を入力します。一般的なアプリケーションのシナリオでは、IAM ロールは次のアクセスポリシーステートメントを含む AmazonAPIGatewayPushToCloudWatchLogs の管理ポリシーをアタッチできます。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": "*" } ] }

      IAM ロールには、以下の信頼関係ステートメントも含まれている必要があります。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

      CloudWatch の詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。

  7. この API に関連付けられたすべてのメソッドに対してステージレベルのスロットリング制限を設定するには、[Default Method Throttling] セクションで次の操作を行います。

    1. [スロットリングを有効にする] を選択します。

    2. [レート] に、API Gateway が 429 Too Many Requests レスポンスを返さずに対応できるステージレベルの定常の最大リクエスト数/秒を入力します。このステージレベルのレート制限は、アカウントレベルのレート制限 (REST API の設定と実行に関する API Gateway の制約 で指定) を超えないものとします。

    3. [バースト] に、API Gateway が 429 Too Many Requests レスポンスを返さずに対応できるステージレベルの同時リクエストの最大数を入力します。このステージレベルのバーストは、アカウントレベルのバースト制限 (REST API の設定と実行に関する API Gateway の制約 で指定) を超えないものとします。

  8. メソッド別のステージレベルのスロットリングをオーバーライドするには、[Stages (ステージ)] セカンダリナビゲーションペインでステージを展開し、メソッドを選択して、[Settings (設定)] の [Override for this method (このメソッドのオーバーライド)] を選択します。[Method Throttling (メソッドスロットリング)] セクションで、適切なオプションを選択します。

  9. AWS WAF ウェブ ACL をステージに関連付けるには、[ウェブ ACL] ドロップダウンリストからウェブ ACL を選択します。

    注記

    必要に応じて、[ウェブ ACL を作成する] を選択して新しいブラウザタブで AWS WAF コンソールを開き、ウェブ ACL を作成し、API Gateway コンソールに戻ってウェブ ACL をステージに関連付けます。

  10. 必要に応じて、[Block API Request if WebACL cannot be evaluated (Fail- Close) (WebACL を評価できない場合は API リクエストをブロックする (フェイルクローズ))] を選択します。

  11. API ステージの AWS X-Ray トレースを有効にするには:

    1. [ステージエディター] ペインで、[ログ/トレース] タブを選択します。

    2. X-Ray トレースを有効にするには、[X-Ray トレース] の下の [X-Ray トレースの有効化] を選択します。

    3. X-Ray コンソールでサンプリングルールを設定するには、[X-Ray サンプリングルールの設定] を選択します。

    4. 必要に応じて、[X-Ray サンプリングルールの設定] を選択して X-Ray コンソールに移動し、サンプリングルールを設定します。

    詳細については、「AWS X-Ray を使用した API Gateway API の実行のトレース」を参照してください。

  12. [Save Changes] を選択します。ステージに API をデプロイした後で、新しい設定が有効になります。

API のステージの削除

ステージが不要になったら、それを削除して未使用のリソースに対する請求を避けることができます。API Gateway コンソールを使用してステージを削除する方法について以下に説明します。

警告

ステージを削除すると、対応する API の一部または全部を API 発信者が使用できなくなる場合があります。ステージの削除は元に戻すことができません。ただし、ステージを再作成して同じデプロイに関連付けることができます。

API Gateway コンソールを使用してステージを削除する

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

  2. ステージの API 名を含むボックスで、[ステージ] を選択します。

  3. [ステージ] ペインで、削除するステージを選択してから [ステージの削除] を選択します。

  4. プロンプトが表示されたら、[削除] を選択します。