CloudWatch Logsの機能「Vended Logs」について調べてみた
みなさん、こんにちは。
AWS事業本部コンサルティング部の芦沢(@ashi_ssan)です。
みなさんはCloudWatch LogsのVended Logsという機能についてご存知でしょうか?
私は知りませんでした。
サラッと調べましたが、Vended logsとは何かについて正直あまり理解できませんでした。
そこで本エントリでは、私がAWS公式ドキュメントをじっくり眺めて理解した内容を簡単に紹介したいと思います
忙しい人のためのまとめ
- Vended Logsは、CloudWatch Logs経由でS3 / CloudWatch Logs / Kinesis Data Firehoseに出力されるAWSサービスに関する特定のログ
- 従量制割引料金が利用でき、配信するログ量が増えるほど大きく割引される
- よく高いと言われるCloudWatch Logsの利用料金の大きな部分を占めているのは
取り込み料金(0.76USD/GB)
だが、Vended LogsをS3やKinesis Data Firehoseへ配信する場合その半分の配信料金(0.38USD/GB)
が発生することに注意
調べてみた
Vended Logsとは
AWS公式ドキュメント - CloudWatchの特徴に以下のような記述があります。
Amazon CloudWatch Logs サービスを使用すると、リソース、アプリケーション、サービスのログをほぼリアルタイムで収集し、保存できます。ログには主なカテゴリが 3 つあります。
1 つ目は、Vended Logs です。これは、お客様に代わって AWS のサービスがネイティブに発行するログです。現在、Amazon VPC フローログと Amazon Route 53 ログの 2 種類に対応しています。
2 つ目は、AWS のサービスによって公開されたログです。現在、30 種類以上の AWS のサービスが CloudWatch にログを発行しています。Amazon API Gateway、AWS Lambda、AWS CloudTrail など、多くのサービスが対象となっています。
3 つ目は、カスタムログです。これらは、ユーザー独自のアプリケーションやオンプレミスのリソースから取得されるログです。
Vended Logsは、お客様に代わって AWS のサービスがネイティブに発行するログです
との記述があり、この内容から、AWSのサービスによって公開されたログやカスタムログとは異なるものであるとわかりました。
Vended LogsではないAWSリソースのログやアプリケーションのログはそのままCloudWatch Logsに格納されます。Vended Logsの対象のログをS3に出力する場合、CloudWatch(Logs)を経由して出力することになります。
ここまでの私の理解を表した図を作成しました。ご査収ください。
(間違っていたらごめんなさい)
Vended Logsの対象ログについて
次に、CloudWatchの料金ページを確認すると、Vended Logsについてのより詳細な記述がありました。
Vended Logs は、AWS のサービスがお客様に代わってネイティブに発行する、AWS のサービスに関する特定のログであり、従量制割引料金で利用できます。 サポートしているサービスログは、CloudWatch Logs、Simple Storage Service (Amazon S3)、Amazon Kinesis Data Firehose に配信される以下のログです。
Vended logsがサポートしているサービスログは、CloudWatch Logs、S3、Kinesis Data Firehoseに配信される以下のログです。
- CloudWatch Logsへの配信
- Amazon VPC フローログ
- Amazon Route 53 パブリック DNS クエリログ
- Amazon Route 53 Resolver クエリログ
- Amazon ElastiCache for Redis ログ
- API Gateway Access ログ
- AWS Step Functions Express と Standard ログ
- Managed Streaming for Kafka (MSK) ログ
- Web Application Firewall (WAF) ログ
- AWS Network Firewall アラートとフローログ
- Storage Gateway File Audit と Health ログ
- Chime メディアクオリティメトリクスと Session Initiation Protocol メッセージログ
- Evidently ログ
- SageMaker ログ
- AWS Elemental MediaTailor ログ
- S3への配信
- VPC フローログ
- AWS Global Accelerator フローログ
- Route 53 Resolver クエリログ
- CloudFront アクセスログ
- EC2 スポットインスタンスログ
- Network Load Balancer アクセスログ
- Evidently ログ
- MSK ログ
- AWS Network Firewall アラートとフローログ
- WAF ログ
- Kinesis Data Firehoseへの配信
- MSK ログ
- Route 53 Resolver クエリログ
- ElastiCache for Redis ログ
- Evidently ログ
Vended Logsの料金について
Vended Logsは従量制の割引料金で利用できます。
東京リージョンの場合、それぞれのサービスに対する配信料金は以下のように変化します。
取り込むデータ量 | CloudWatch Logsへの配信 | S3への配信 | Kinesis Data Firehoseへの配信 |
---|---|---|---|
0〜10TBまで | 0.76USD/GB | 0.38USD/GB | 0.38USD/GB |
10TB〜30TBまで | 0.38USD/GB | 0.228USD/GB | 0.228USD/GB |
30TB〜50TBまで | 0.152USD/GB | 0.114USD/GB | 0.114USD/GB |
50TB以降 | 0.076USD/GB | 0.076USD/GB | 0.076USD/GB |
料金の観点で気をつけなければいけない点は、とくにVended LogsをS3やKinesis Data Firehoseに配信する場合についてです。
今回の調査以前の私の認識として、CloudWatch Logsの利用料金は高い
というイメージがありました。
改めてCloudWatch Logsの利用料金を眺めると、CloudWatch Logsの料金といってもデータの取り込みと保存(アーカイブ)の2種類があり、取り込みの料金は保存(アーカイブ)の20倍以上の利用費であることに気づきました。
種類 | 料金 |
---|---|
収集データの取り込み | 0.76USD/GB |
保存 (アーカイブ) | 0.033USD/GB |
今回紹介しているVended Logsはログデータを配信する機能で、Vended LogsをCloudWatch Logsに配信する場合は、CloudWatch Logsへの取り込み料金と同じ(0.76USD/GB)です。
また、S3やKinesis Data Firehoseに配信する場合はその半分の料金(0.38USD/GB)
だが、S3のデータ保存の料金(0.025USD/GB,S3 Standard)と比較するとかなり高価な料金
となっています。
ログを保存するストレージサービスを選定する際、安易にS3とCloudWatch Logsの料金を比較してしまうと、CloudWatch Logsの料金がかなり高く見えます しかし、S3に保存する場合もVPCフローログやWAFログ、CloudFrontログなどよく利用されるサービスのログがVended Logsの対象になっているようにVended Logsの料金が発生する場合はたくさんあるため、Vended Logsを意識した利用料金計算を行わないと、思ったようなコストメリットが得られないことに気付かされました。
まとめ
- Vended Logsは、CloudWatch Logs経由でS3/CloudWatch Logs/Kinesis Data Firehoseに出力されるAWSサービスに関する特定のログ
- 従量制割引料金が利用でき、配信するログ量が増えるほど大きく割引される
- よく高いと言われるCloudWatch Logsの利用料金の大きな部分を占めているのは
取り込み料金(0.76USD/GB)
だが、Vended LogsをS3やKinesis Data Firehoseへ配信する場合その半分の配信料金(0.38USD/GB)
が発生することに注意
最後に
今回は、CloudWatch LogsのVended Logsについて調べてみました。
CloudWatch Logsは高い、とだけ覚えていてその利用料金について正しく認識できていなかったことを反省しました。
みなさんもAWSのコストはしっかり調べて正しく理解しましょう。
以上、AWS事業本部コンサルティング部の芦沢(@ashi_ssan)でした。