API Gateway コンソールを使用したステージのセットアップ - Amazon API Gateway

API Gateway コンソールを使用したステージのセットアップ

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

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

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

  2. REST API を選択します。

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

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

  5. [ステージ名] に、名前を入力します(例: prod)。

    注記

    ステージ名には、英数字、ハイフン、およびアンダースコアのみ含めることができます。最大長は 128 文字です。

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

  7. [デプロイメント] には、このステージに関連付ける既存の API デプロイの日付と時刻を選択します。

  8. [追加設定] では、ステージの追加設定を指定できます。

  9. [テーブルの作成] を選択します。

ステージ設定の更新

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

API Gateway コンソールを使用したステージ設定の更新

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

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

  2. REST API を選択します。

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

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

  5. [ステージの詳細] セクションで、[編集] を選択します。

  6. (オプション) [ステージの説明] で、説明を編集します。

  7. [その他の設定] で、以下の設定を変更します。

    キャッシュ設定

    ステージの API キャッシュを有効にするには、[API キャッシュをプロビジョニング] をオンにします。次に、[デフォルトのメソッドレベルのキャッシュ][キャッシュキャパシティ][キャッシュデータを暗号化][キャッシュの有効期限 (TTL)]、およびキーごとのキャッシュの無効化の要件を設定します。

    デフォルトのメソッドレベルのキャッシュをオンにするか、特定のメソッドについてメソッドレベルのキャッシュをオンにするまで、キャッシュはアクティブになりません。

    キャッシュ設定の詳細については、「API キャッシュを有効にして応答性を強化する」を参照してください。

    注記

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

    スロットリング設定

    この API に関連付けられたすべてのメソッドに対してステージレベルのスロットリング目標を設定するには、[スロットリング] をオンにします。

    [Rate] (レート) に目標レートを入力します。これは、トークンバケットにトークンを追加するレート (秒あたりのリクエスト数) です。ステージレベルのレートは、アカウントレベルのレート (REST API の設定および実行に関する API Gateway クォータ で指定) を超えないものとします。

    [バースト] に目標バーストレートを入力します。バーストレートとは、トークンバケットの容量です。これにより、目標レートよりも多くのリクエストが一定の期間にわたって許可されます。このステージレベルのバーストレートは、アカウントレベルのバーストレート (REST API の設定および実行に関する API Gateway クォータ で指定) を超えないものとします。

    注記

    スロットリングレートはハードリミットではなく、ベストエフォートベースで適用されます。場合によっては、クライアントは設定されている目標を超えることがあります。コストの管理や API へのアクセスのブロックを行う際にスロットリングに依存しないでください。AWS Budgets を使用してコストをモニタリングすること、および AWS WAF を使用して API リクエストを管理することを検討してください。

    ファイアウォールと証明書の設定

    AWS WAF ウェブ ACL をステージに関連付けるには、[ウェブ ACL] ドロップダウンリストからウェブ ACL を選択します。必要に応じて、[Block API Request if WebACL cannot be evaluated (Fail- Close) (WebACL を評価できない場合は API リクエストをブロックする (フェイルクローズ))] を選択します。

    ステージのクライアント証明書を選択するには、[クライアント証明書] ドロップダウンメニューから証明書を選択します。

  8. [Save] を選択します。

  9. この API Gateway API のこのステージに関連付けられているすべてのメソッドで Amazon CloudWatch Logs を有効にするには、[ログとトレース] セクションで [編集] を選択します。

    注記

    CloudWatch Logs を有効にするには、ユーザーの代わりに API Gateway が CloudWatch Logs に情報を書き込むことを可能にする IAM ロールの ARN も指定する必要があります。そのためには、[API] メインナビゲーションペインから [設定] を選択します。次に、[CloudWatch ログロール] に 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" } ] }

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

  10. [CloudWatch Logs] ドロップダウンメニューからログ記録レベルを選択します。ログ記録レベルは、以下のとおりです。

    • オフ — この段階ではログ記録はオンになっていません。

    • エラーのみ — ログ記録はエラーに対してのみ有効になっています。

    • エラーと情報ログ — ログ記録はすべてのイベントに対して有効になっています。

    • リクエストとレスポンスの完全なログ — 詳細なログ記録がすべてのイベントに対して有効になっています。このログは API のトラブルシューティングに役立ちますが、機密データが記録される可能性があります。

      注記

      本稼働用 API には、[リクエストとレスポンスの完全なログ] を有効にしないことをお勧めします。

  11. API Gateway から CloudWatch に API callsLatencyIntegration latency400 errors500 errors の API メトリクスをレポートするには、[詳細なメトリクス] を選択します。CloudWatch の詳細については、「Amazon CloudWatch ユーザーガイド」の「基本モニタリングと詳細モニタリング」を参照してください。

    重要

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

  12. 送信先へのアクセスログを有効にするには、[カスタムのアクセスログ] をオンにします。

  13. [アクセスログの送信先 ARN] に、ロググループまたは Firehose ストリームの ARN を入力します。

    Firehose の ARN 形式は arn:aws:firehose:{region}:{account-id}:deliverystream/amazon-apigateway-{your-stream-name} です。Firehose ストリームの名前は amazon-apigateway-{your-stream-name} にする必要があります。

  14. [ログの形式] にログの形式を入力します。ログ形式の例について詳しくは、「API Gateway での CloudWatch によるログの形式」を参照してください。

  15. API ステージで AWS X-Ray トレースを有効にするには、[X-Ray トレース] を選択します。詳細については、「X-Ray を使用した REST API へのユーザーリクエストのトレース」を参照してください。

  16. [Save changes] (変更の保存) をクリックします。API を再デプロイして新しい設定を有効にします。

ステージレベルの設定のオーバーライド

以下の有効になっているステージレベルの設定をオーバーライドできます。オプションによっては、AWS アカウントに追加料金がかかる場合があります。

API Gateway コンソールを使用したステージレベルの設定のオーバーライド

API Gateway コンソールを使用してステージレベルの設定をオーバーライドするには
  1. メソッドのオーバーライドを設定するには、セカンダリナビゲーションペインでステージを展開し、メソッドを選択します。

    セカンダリナビゲーションペインでステージを展開し、メソッドを選択します。
  2. 次に、[メソッドオーバーライド][編集] を選択します。

  3. メソッドレベルの CloudWatch 設定を有効にするには、CloudWatch Logs でログ記録レベルを選択します。

  4. メソッドレベルの詳細メトリクスを有効にするには、[詳細なメトリクス] を選択します。アカウントではメソッドレベルの CloudWatch メトリクスへのアクセスに対して課金されますが、API レベルまたはステージレベルのメトリクスでは課金されません。

  5. メソッドレベルのスロットリングを有効にするには、[スロットリング] を選択します。適切なメソッドレベルのオプションを入力します。スロットリングの詳細については、「API リクエストを調整してスループットを向上させる」を参照してください。

  6. メソッドレベルのキャッシュを設定するには、[メソッドキャッシュを有効にする] を選択します。[ステージの詳細] でデフォルトのメソッドレベルのキャッシュ設定を変更しても、この設定には影響しません。

  7. [Save] を選択します。

ステージを削除する

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

警告

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

API Gateway コンソールを使用したステージの削除

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

  2. REST API を選択します。

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

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

  5. プロンプトが表示されたら、「confirm」と入力し、[削除] を選択します。