CloudWtach Logs と S3 のログ料金の比較
はじめに
ログ料金の削減にあたり、意外と知らないことが多かったので記録します。この記事では CloudWatch Logs と S3 について比較します。
Vended Logs とは
Vended Logs とは、AWS サービスが発行するログ特定のログです。VPC フローログ、AWS Network Firewall アラート・フローログ、WAF ログなどが該当します。
これらログはアプリケーションログと異なり、S3 や Kinesis Data Firehose が出力先だとしても、CloudWatch Logs 経由で配信されることになります。
ログ料金
ロギングにかかる料金は以下の計算で求まります。
ログ料金 = ログ配信料金 + ログ保管料金
Vended Logs
サービス | 項目 | 単価 | 100 GB の料金 |
---|---|---|---|
CloudWatch Logs | ログ配信 | 0.76 USD/GB | 76 USD/月 |
CloudWatch Logs | ログ保管 | 0.033 USD/GB | 3.3 USD/月 |
S3 | ログ配信 | 0.38 USD/GB | 38 USD/月 |
S3 | ログ保管 | 0.025 USD/GB | 2.5 USD/月 |
ログ料金は ログ配信に対する料金が支配的 であること、CloudWtach Logs に比べ S3 は ログ配信料が半額 であることがわかります。
ログ量が 100 GB 程度なら、月数十ドルの差になります。このログ量を出力するシステムの稼働料金からすると少ないコストかもしれませんが、ログが複数あると無視できない金額になりそうです。
S3 に保管し検索したい場合、Athena を利用する必要があるので、ログ分析の取り回しとコストの勘案が必要です。
ログ保管料金も保管先によって差があるのですが、ログ配信料金と比べて微々たるものなので、保存期間を指定さえしていれば大きな差にはなりにくいでしょう。
アプリケーションログ
アプリケーションログの場合は話が変わります。CloudWatch Logs にログを配信する場合、料金は固定でかかります。一方 インターネットから S3 へデータ転送受信(イン)の料金は無料 です。
S3 の場合、支配的であるログ配信料金をカットできる のでコスト面では非常に有利です。ただし NAT-Gateway を経由する場合、VPC エンドポイントを経由する場合は、それぞれのリソースの維持費と処理料がかかるので単純には比較できません(データ転送量は同一リージョンと仮定すると無料)。
アプリケーションログの配信料金について無理やり比較してみます。
保存方式 | 課金項目 | 単価 | 100 GB の料金 | 備考 |
---|---|---|---|---|
インターネットから CloudWatch Logs | ログ配信 | 0.76 USD/GB | 76 USD/月 | - |
インターネットから S3 | ログ配信 | 0 USD/GB | 0 USD/月 | - |
NAT-Gateway から S3 | リソース維持 + データ処理 | 0.062 USD/時 + 0.062 USD/GB | 50.84 USD/月 | 1AZ |
VPCエンドポイント (Interface) から S3 | リソース維持 + データ処理 | 0.014 USD/時 + 0.01 USD/GB | 11.08 USD/月 | 1AZ |
AZ 数、データ処理量、VPC エンドポイントの種類などパラメータが多すぎて比較が難しいのですが、この条件下でも S3 を出力先とするほうがコスト削減になります。
AWS の基本ではありますが、可能ならインターネットゲートウェイ経由、難しければ VPC エンドポイント経由で処理することで大幅なコスト削減になりそうです。
まとめ
CloudWtach Logs は高いと聞きますが、その正体はログ配信(収集・取り込み)でした。ログ検索等に問題がなければ S3 を配信先にする検討をしてみてはいかがでしょうか。
こんな単純なテーマでも料金計算が難しいのは結構ツラいです。完璧に見積もるのは不可能だと思われ、現在の利用料金から支配的な項目を削減するよう見直す運用が大事だと感じました。
Discussion