🐡

Data Firehoseでprefixのタイムゾーンが変更可能になった

2024/02/17に公開

2024/02/17 Data Firehose(旧Kinesis)でのバケットプリフィックスのタイムゾーンを指定できるようなりました。これまではUTCのみでした。
https://aws.amazon.com/about-aws/whats-new/2024/02/amazon-data-firehose-time-zone-bucket-prefixes/

設定

(作成はデフォルトでよいので省略)

Settingsを見ると確かにS3 bucket and S3 error output prefix time zoneという項目が追加されています。これをAsia/TokyoにすればJSTになります。

比較する

変更したらどうなるかを見てみます。
デフォルト、UTC
フォルダ構造が2024/02/17/00/ になっていて、オブジェクトのNameの中にある時間表記が、LastModifiedの時間(JST)と9時間ずれていることがわかります。(Firehoseのバッファを1分にしているのでその分もずれがあります)


JST設定に変更
Asia/Tokyoに変更しました。
フォルダは2024/02/17/00/`、Nameの表記もJSTになっています。

まとめ

  • JSTなのかUTCなのか迷うときもあったので、地味ですが嬉しいアップデートですね。
  • 注意点としては、Firehoseを作成後でも変えられるので、途中で命名規則が変わることもある、ということでしょうか。
  • (上記の時間差を見ると、1分2秒ずれているので、FirehoseからS3に格納されまでが2秒というこなんでしょうかね、あまり意識していませんでした)

おまけ

以前、このような実装をしました。
SNS通知が大量にきてしまうときFirehoseでUTCで1時間ごとに作られるS3バケットに溜めておいて、まとめて取りに行く、ということをやっていました。

https://medium.com/@shimo164/hourly-query-firehose-s3-bucket-with-eventbridge-and-lambda-a484e85eede8

Discussion