Amazon Kinesis Data Firehoseの料金が高かった
TL;DR
- ログ1行のサイズが5KB以下なら5KBとして料金計算される
経緯
仕事でAmazon Kinesis Data Firehoseを使う機会があり、本番導入してみたところ料金が高かった。一日数千円。。
改めてログ量、ログサイズから自分で計算してみた。
CloudWatchからFirehoseの IncomingBytes
や IncomingRecords
が見れるのでそれをもとに https://aws.amazon.com/jp/kinesis/data-firehose/pricing/ のページを見ながら計算したが、請求額と合わない。
で、AWSサポートにお問い合わせしたところ、自分の料金計算方法の認識が間違っていた。
Firehoseの料金ページには以下が書かれている。
料金は Amazon Kinesis Data Firehose に取り込まれたデータの量に基づきます。 データの量は、このサービスに送信したデータレコードの数に、直近の 5 KB の倍数に切り上げた各レコードのサイズを乗算した値として計算されます
つまり、どんなにログ1行のサイズが小さくても5KBとして計算される。
そしてCloudWatchに表示されているIncomingBytes
は実際のログサイズであり、5KBへ切り上げ後の値ではない。
結局、5KBに切り上げされると実際のログサイズで計算したよりも10倍以上高くなってしまうので、Firehoseを使うのは諦めて、FluentdでS3に直接置くように変更した。悲しい。
あとちゃんと料金の計算方法を把握しないとだめですね(当たり前)。