API Gateway のログを CloudWatch ログで確認する方法

2026年6月20日

はじめに

AWS API Gateway を Lambda と組み合わせて REST API を構築する際、Lambda 単体のテストでは正常に 200 レスポンスが返るのに、実際の API リクエストでは期待通りのレスポンスが返らないケースがあります。こういった問題を切り分けるには、API Gateway 側のログを CloudWatch に出力して確認するのが有効です。

本記事では API Gateway の CloudWatch ログを有効化する手順を解説します。設定には IAM ロールの作成が必要で、手順を知らないと途中でエラーが発生して詰まりがちです。同じところで躓いた方の参考になれば幸いです。

前提として、API Gateway は作成済みの状態とします。作成方法は以下の記事をご参照ください。

CloudWatch ログ有効化の手順

ステップ1:CloudWatch ログを有効化する(エラーが発生)

API Gateway のログはステージごとに設定します。ステージの「ログ / トレース」タブを開き、「CloudWatch ログを有効化」のチェックボックスをオンにして保存してみましょう。

API Gateway ステージのログ/トレースタブ — CloudWatch ログを有効化のチェックボックス

すると、以下のエラーメッセージが表示されます。

CloudWatch Logs role ARN must be set in account settings to enable logging

「CloudWatch Logs role ARN must be set in account settings to enable logging」エラー表示

このエラーは、CloudWatch に書き込む権限を持つ IAM ロールが API Gateway に紐付けられていないことが原因です。

ステップ2:IAM ロールが必要な理由

API Gateway の「設定」メニューを開くと、「CloudWatch ログのロール ARN」を入力するフィールドがあります。他のサービスでは IAM ロールが自動作成されることもありますが、API Gateway の CloudWatch 連携では手動でロールを作成し、ARN を設定する必要があります。

API Gateway 設定画面の「CloudWatch ログのロール ARN」入力フィールド

ステップ3:IAM ロールを作成する

IAM のコンソールを開き、「ロール」メニューから新しいロールを作成します。

IAM コンソールのロール作成画面

信頼されたエンティティとして 「API Gateway」 を選択し、次のステップへ進みます。

ロール作成でエンティティとして API Gateway を選択する画面

アタッチするポリシーには AmazonAPIGatewayPushToCloudWatchLogs が最初から選択されています。このポリシーで API Gateway から CloudWatch への書き込み権限が付与されるため、変更せずにそのまま次のステップへ進みます。

AmazonAPIGatewayPushToCloudWatchLogs ポリシーが選択されているロール作成画面

ロール名と説明を入力してロールの作成を完了します。

IAM ロールの名前と説明を入力する最終確認画面

ロールが作成されたら、作成したロールをクリックして詳細画面を開きます。概要欄に表示されている ロールの ARN をコピーしておきます。

IAM ロールの詳細画面でロール ARN をコピーする操作

ステップ4:API Gateway にロール ARN を設定する

API Gateway のコンソールに戻り、「設定」メニューの「CloudWatch ログのロール ARN」フィールドにコピーした ARN を貼り付けて保存します。

API Gateway 設定画面に IAM ロール ARN を貼り付けて保存する操作

ステップ5:CloudWatch ログを再度有効化する

ステージの「ログ / トレース」タブに戻り、改めて CloudWatch ログを有効化して保存します。今回はエラーが発生せず、正常に設定が完了します。

CloudWatch ログ有効化が正常に完了したステージ設定画面

CloudWatch でログを確認する

CloudWatch のコンソールを開き、「ロググループ」に移動します。API-Gateway-Execution-Logs_XXXXXX という名前のロググループが作成されていれば設定は完了です。

CloudWatch ロググループ一覧に API-Gateway-Execution-Logs が表示されている画面

API リクエストを送信した後にロググループを確認すると、リクエストの詳細や処理の流れを示すログが記録されています。

CloudWatch ロググループに記録された API Gateway の実行ログ

まとめ:API Gateway の CloudWatch ログ有効化で得た知見

本記事では API Gateway のログを CloudWatch で確認できるようにする手順を解説しました。

  • API Gateway の CloudWatch ログ有効化には、事前に専用の IAM ロール(AmazonAPIGatewayPushToCloudWatchLogs ポリシー付き)の作成が必要
  • IAM ロール作成後、API Gateway の「設定」画面でロール ARN を登録してから、ステージ側の CloudWatch ログを有効化する順序が重要
  • 設定完了後は CloudWatch の「ロググループ」に API-Gateway-Execution-Logs_XXXXXX が自動作成され、リクエストの実行ログを確認できる
  • Lambda と API Gateway を組み合わせたデバッグの際に、ログを見ることでエラー箇所の切り分けが容易になる