インフラチームがお届けするブログリレーです!既に公開されている記事もありますので、こちらから他のメンバーの投稿もぜひチェックしてみてください!
はじめに
クラウドインテグレーション事業部の言上です。
ここ最近はクラウド環境の最適化提案などを行なっております。
その中で、注目のアップデートがあり、情報の整理と検証を実施しましたのでご紹介します。
注目のアップデート「Lambdaのログの出力先を選択が可能となった」
2025/5/1にLambdaのアップデートがありました。
- CloudWatch Logsの料金が利用量に応じて段階的に下がる
- Lambdaのログ出力先として、CloudWatch Logs に加え、Amazon S3とAmazon Data Firehoseが選択できる
特に2番目が注目のアップデートです。
今まではLambdaのログはCloudWatch Logsにしか出力が出来ませんでした。
CloudWatch Logsの料金は意外と高く、クラウド最適化の提案を進める中で、CloudWatch Logsの料金がAWS利用料を押し上げてるケースも少なくありませんでした。
また、ログを長期保管したい場合、CloudWatch Logsは料金面であまり向いていなく、S3に移したい場合がありますが、利用者側で転送の仕組みを作る必要があるという課題もありました。
LambdaのログがS3に出力できるようになったことで、料金面や機能面の改善が期待できるアップデートになります。
料金について
CloudWatch Logsの料金は以下の2つに区分されます。
- 取り込み($0.76/GB)
- 保管($0.033/GB)
特に取り込みの料金が高く、仮に月1TBログが取り込まれた場合、$760(約114,000円)程度の料金が発生します。
新しいS3の取り込みは、CloudWatch Logs標準と比べ、半分の料金となるため、利用しやすい料金となりました。
また、保管料もCloudWatch Logsより安く、S3への転送の仕組みも不要となるため、長期保管を行う場合はS3に保管することで最適な料金で利用できると言えます。
メリットは、CloudWatch Logsに保管するより、安くログ保管を利用できることです。
デメリットは、ログの確認に仕組みが必要になります。
CloudWatch Logsでは時系列にログが保管され、GUIでの確認も簡単でした。
一方で、S3に保管する場合は、Amazon Athena等のログを参照する仕組みが必要になります。
ここは運用とコストを天秤にかけ、選択する必要があると考えます。
設定方法について
Lambdaの設定 > モニタリングおよび運用ツール > 設定からロギング設定の編集を押下します。
以下の設定を行い、保存をすることで、出力先がCloudWatch LogsからAmazon S3に変更されます。
- Destination serviceを「Amazon S3」
- Cloudwatch delivery log groupは任意の設定(新しく作るのであれば「Create~」、既存のグループを利用するのであれば「Existing~」)
- Log group nameは任意の名前
- Destination S3 Bucketは「出力先のバケット名」
- IAM role for CloudWatch delivery log groupはログ転送用のIAMロールを設定
- このIAMロールはCloudWatch LogsからS3またはFirehoseへログを転送する設定を行う必要があります。
- Lambdaで利用するので、信頼関係をLambdaからで設定して、エラーが発生して少し詰まりました。
バケット名/AWSLosg/アカウントID/リージョン名/グループ名/YYYY/MM/DDのディレクトリ配下に出力されます。
おわりに
Lambdaのログの出力先を変更するメリデメと設定内容は以上となります。
CloudWatch Logsは地味ながらコストがかさむサービスになるため、利用シーンに応じて使い分けをしていきたいですね!
本記事をお読みいただき、ありがとうございました。