0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

API Gateway アクセスログの送信先をCloudWatchロググループ ⇨ Firehoseストリームへ変更する

Last updated at Posted at 2025-03-05

はじめに

API Gateway アクセスログの送信先をCloudWatchロググループ ⇨ Firehoseストリームへ変更する対応を行ったので備忘録として記録しておきます。

目次

  1. 対応内容🔖
  2. Firehoseストリームの作成
  3. APIGatewayログとトレースの編集
  4. processing-failedフォルダへ記録される場合
  5. まとめ📝
  6. 参考文献🌟

対応内容🔖

送信先変更に伴い、必要な作業は以下の2ステップです。

  1. API Gateway アクセスログの送信先およびS3へのログデータ配信元となるFirehoseストリームを新規作成する。
  2. API Gatewayのログとトレースの編集にて、作成したFirehoseストリームARNをアクセスログの送信先として設定する。

ただ、実際試してみていくつか注意点・沼った部分ありましたのでそこも含めて以降に詳細を記載します!
※以降、添付上のリソース名等はマスクしていますのでご了承ください。

Firehoseストリームの作成

まずは、アクセスログの送信先となるFirehoseストリームを作成します。

  • AWSコンソールからFirehoseストリームで検索 > Amazon Data Firehoseのページを開く > 右上にあるFirehose ストリームを作成をクリック

Firehoseストリーム名の詳細

  • ストリーム名を入力
  • ソース:Direct PUTを選択
  • 送信先:Amazon S3を選択
  • データ変換・動的パーティショニング:なし
  • 変更を保存をクリック

スクリーンショット 2025-03-05 10.04.33.png
👆ストリーム名は必ずamazon-apigateway-から始まる名前にしてください❗️

amazon-apigateway-と付かないストリームは、AWS公式ガイド > 5 > bの注記の通り、API Gatewayのアクセスログの送信先ARNとして設定できません❗️

レコードを編集、変換、および転換

  • 何もせずに変更を保存をクリック

スクリーンショット 2025-03-05 10.09.09.png

送信先の設定

  • ログデータの配信先となるS3バケットURLを入力
  • S3バケットプレフィックスは、apigateway/等の分かりやすいものを入力
  • バッファサイズ・バッファ間隔を入力
  • その他設定はデフォルトのまま、変更を保存をクリック

スクリーンショット 2025-03-05 10.11.40.png
スクリーンショット 2025-03-05 10.14.08.png
スクリーンショット 2025-03-05 10.16.39.png

サーバー側の暗号化を編集

  • 何もせずに変更を保存をクリック

スクリーンショット 2025-03-05 10.17.52.png

Amazon CloudWatch エラーのログ記録を編集

  • 何もせずに変更を保存をクリック
    (自分の場合、本Firehoseストリームはアクセスログ配信専用のため無効)

スクリーンショット 2025-03-05 10.18.09.png

サービスアクセスを編集

  • 既存のIAMロールを選択から対象となるロールを選択(※なければ要作成)
  • 変更を保存をクリック

スクリーンショット 2025-03-05 10.18.25.png

タグを編集

  • 必要あれば任意のタグを追加
    例:環境名やプロジェクト名
     ・キー:Env、値:dev
     ・キー:Project、値:myProject

スクリーンショット 2025-03-05 10.20.05.png

APIGatewayログとトレースの編集

Firehoseストリームが作成できれば、あとはそれをAPI Gatewayのアクセスログの送信先として設定するだけです!

  • API Gatewayを開く > API > 対象APIを選択 > ステージ > ログとトレースの編集
  • アクセスログの送信先 ARNへ上記で新規作成したFirehoseストリームARNを設定
  • 変更を保存をクリック

スクリーンショット 2025-03-05 10.01.07.png

対応内容としては以上です❗️
この後は、ログの配信先となっているS3バケットへ意図する問題なくログが記録されるか確認してみてください。

processing-failedフォルダへ記録される場合

Firehoseストリームの設定に問題がなければ、API Gatewayから直接Firehoseストリーム経由でS3バケットへログが配信されるかと思います。
ただ仮に、S3バケット内のprocessing-failedフォルダにログが記録されるようであれば以下をご確認ください❗️

  • Firehoseストリームのサービスアクセスで設定しているIAMロールにアクセス権限があるか
  • Firehoseストリームの詳細で、データ変換が有効化されていないか
    ⇨ データ変換はCloudWatchLogsへログを記録する際に必要な設定です。
      なので、直接Firehoseストリーム経由でS3保存であれば不要な設定となります。

スクリーンショット 2025-03-05 10.04.33.png

まとめ📝

  • API Gateway アクセスログの送信先として設定するFirehoseストリーム名は、必ずイニシャルにamazon-apigateway-を付ける必要がある。
  • S3へのログ配信時にprocessing-failedになる場合は、以下を確認すると良い。
    • IAMロール側のアクセス権限が許可されているか
    • Firehoseストリームのデータ変換が有効化されていないか

参考文献🌟

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?