Help us understand the problem. What is going on with this article?

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

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でログ欠損しないために

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした