Amazon Kinesis Data Firehoseの料金が高かった

TL;DR

  • ログ1行のサイズが5KB以下なら5KBとして料金計算される

経緯

仕事でAmazon Kinesis Data Firehoseを使う機会があり、本番導入してみたところ料金が高かった。一日数千円。。

改めてログ量、ログサイズから自分で計算してみた。
CloudWatchからFirehoseの IncomingBytesIncomingRecordsが見れるのでそれをもとに 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に直接置くように変更した。悲しい。
あとちゃんと料金の計算方法を把握しないとだめですね(当たり前)。