LoginSignup
6
0

More than 3 years have passed since last update.

AWS初心者がFirehoseを使ってみたので感想

Last updated at Posted at 2019-12-19

Fringe81アドベントカレンダー2019の20日目です。
tuaaasa a.k.a ちゃりがお送りします。

始めに述べておきますが、私は半年ほど前からAWSを使い始めた初心者です。

そんな私が先日業務内で、
AWS Kinesisの機能の一つであるKinesis Data Firehoseに触れました。
今回はその感想をまとめます。
CloudFormationを用いてデプロイしたので、合わせてそちらも話します。

Kiensis

https://aws.amazon.com/jp/kinesis/
より以下抜粋

ストリーミングデータをリアルタイムで収集、処理、分析することが簡単になる

また、完全マネージドサービスなので、ストリームデータをKinesisに任せちゃえばいい感じにやってくれます。

本題のFirehose

https://aws.amazon.com/jp/kinesis/data-firehose/
より以下抜粋

ストリーミングデータをデータレイクやデータストア、分析ツールに確実にロードする最も簡単な方法です。
image.png

今回私はRedshiftにロードしました。

嬉しいこと

完全マネージドサービスのおかげで、難しいことを考える必要がなかった

データロードの重複防止とかエラー時のリトライとか、煩わしいことをFirehoseがやってくれる点非常に助かりますね。
また、エラーログも残してくれるのもうれしいです。

つらいこと

Redshiftへのパブリックアクセスを可能にしてあげなければいけない

Amazon Redshift クラスターへの VPC アクセス

これですね。

不正データが1件でも入ってくると直近の正常なデータも全て欠損してしまう

FirehoseでRedshiftにロードする場合、

  1. 一旦S3にアップロード
  2. manifestという複数のデータを一つにまとめたデータの集合を作成
  3. manifestをCOPYコマンドでロード

という形をとっています。
これのおがげで不正データが含まれるmanifestはエラー対象となりロードされないのですね。

対処法

1回COPYコマンドあたり、1万件まではエラー処理させないオプションを追加することで正常なデータのみロードさせました。

スクリーンショット 2019-12-19 16.52.21.png

ただ、1万1件目はエラーとなってしまうのと、
不正データの内容がFirehoseでロギングできないことには注意が必要です。

おまけ

CloudFormationで設定できない項目がある

RedshiftにロードするためのS3アップロードとは別に、
ストリームデータのバックアップができる。

現在()この機能をCloudFormationでは設定できない模様。(以下2019年10月15日に返答されたサポートメールの内容)

Screen Shot 2019-12-03 at 18.06.33.png

おわり

実際に稼働していないので、実績ができたらまた報告しようかなと思います。
ありがとうございました。

参考

CloudWatch LogsのログをprivateなVPCにあるRedshiftに投入
AWS Kinesis Firehoseでログ欠損しないために

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0