SlideShare une entreprise Scribd logo
1  sur  58
Kinesis Firehoseを使ってみた
2017/09/21 D-Cube勉強会
株式会社ビズリーチ エンジニア 三澤正木
【登壇者プロフィール】
ミサワ マサキ
名前: 三澤 正木
職業: エンジニア(現在の業務は、主にWEBアプリ開発担当)
所属: 株式会社ビズリーチ キャリアトレック事業部
http://careertrek.com
GitHub: https://github.com/MasakiMisawa
趣味: 野球(観る専)、ランニング、旅行 etc
以下のURLから閲覧、DL可能です。
* イベント終了後もしばらく公開しておきますが、削除する可能性もあるので必要な方はDLしておいてください。
【今回のスライド】
http://www.slideshare.net/MisawaMasaki
アジェンダ
・Chapter1 そもそも Amazon Kinesis って?
→ Amazon Kinesis の簡単な概要説明です
・Chapter2 Kinesis Firehoseの使い方
→ Kinesis Firehoseに挿入した値を、任意の場所に転送完了させるまでの一連の流れです
・Chapter3 Kinesis Firehoseを使って実現できそうなこと
→ 自分なりに考えるKinesis Firehoseを使えばこんなこと、あんなことが実現できそうという紹介です
・Chapter4 Kinesis Firehoseを使用したデータ転送を実演してみる
→ 時間が余ればになりますが、Kinesis Firehoseを使用したデータ転送を実演しようと思っています。
・etc 質疑応答
→ さいごに質疑応答の時間を設ける予定でいます
Chapter1:そもそも Amazon Kinesis って?
Amazon Kinesis は、AWS(Amazon Web Service)の用意したスト
リーミングデータ向けのプラットフォームで、大容量のデータを低コ
ストで収集、分析、処理、転送する事が可能なサービスです。
大量に流れてくるログデータなどを一時保存(Kinesisへの保存期間は
デフォルトで24時間、最大7日まで延長可能)し、分析をしたり任意の
形に加工した後に任意の各種データストレージに転送するところまで
をやってくれます。
Chapter1:そもそも Amazon Kinesis って?
大量のデータを低コストで溜め込み、溜め込んだデータを取得して各
種展開するという意味では、AWSの中で割とよく使われているSQS
(Simple Queue Service)に近いイメージですが、
1. SQSよりも大量、大容量のデータを受ける事が可能
* SQSでは秒間数百のリクエストをさばく事ができないが、Kinesisではそれが可能
* 1レコードの最大容量がSQSは256KBまでだが、Kinesisは1MBまで保存可能
1. 溜め込むだけでなく、分析や加工をしてくれたり、各種AWSサー
ビスに転送する処理もやってくれる(Kinesisすべてではない)
の2点が大きな違いであり、Kinesisを使う上での利点です。
Chapter1:そもそも Amazon Kinesis って?
一口にKinesisと言っても、用途毎に以下の3種類が存在します。
1. Kinesis Streams
→ 挿入されたデータをリアルタイムで加工してデータ転送を行いたい場合などに使用し
ます。
1. Kinesis Firehose
→ 複雑な転送用コードを書かずにコンソール画面での設定だけでデータ転送を行いたい
場合などに使用します。今回扱うメインテーマです。
1. Kinesis Analytics
→ 挿入されたデータに対して予め用意したSQLの実行結果を転送したい場合などに使用
します。2017/09現在では東京リージョン非対応になっています。
Chapter1:そもそも Amazon Kinesis って?
Kinesis Streams
Streams(小川)という名前が示すとおり、流れてくる大容量データをリアルタイムで加
工して扱いたい場合に使用され、データロード間隔の短さが最大の特徴となっています。
ストリーミングデータなどの絶え間なく入ってくるデータをリアルタイムで処理できるメ
リットがある一方、入ってきたデータを加工したり、加工後のデータを任意のデータスト
アに転送する為のプログラムコードは自前で用意しておく必要があったりなど
データを溜めておく場所の提供と、データが入ってきたタイミングで
のイベント発火だけは用意するから、後は使う側で自由にやってね!
という、使う人は選ぶものの、割と自由度の高いサービスになっているのが特徴です。
Chapter1:そもそも Amazon Kinesis って?
Kinesis Streams
Chapter1:そもそも Amazon Kinesis って?
Kinesis Streams
尚、Kinesis Streams 内に挿入されたデータを加工、保存先へ転送させる為のプログラムコ
ードを実行させるには、以下の二つの方法が一般的です。
1. Kinesis Streams にデータが入ってきたことをイベントトリガーに発火させる
Lambda function 内に加工、保存先への転送コードを書いておき自動実行。
1. cronなどの定期実行処理でKinesis Streamsからデータを取得し、取得したデータを
加工、保存先への転送を実行
● Kinesis Streamsから手動でデータを取得した場合、取得後もKinesis Streams内に対象データは残り
続ける仕様になっている為、既処理済のデータか未処理のデータかを判別可能にする為に取得した
レコードのシーケンス番号や取得日時を保存しておき、次回取得時に前回取得したレコード以降の
レコードを取得するように管理する必要があります。
Chapter1:そもそも Amazon Kinesis って?
Kinesis Streams
Kinesis Streamsにデータが入った事をイベントトリガーに発火するLambda functionの
例
Chapter1:そもそも Amazon Kinesis って?
Kinesis Streams
Kinesis Streams では扱える最大データ容量をシャードという概念で管理しており、設定す
るシャード数により扱える最大データ容量を増やすことができます。
ただ、設定するシャード容量を増やすとその分利用料金も増えていくので、使用するデー
タ容量に応じて適切なシャード数を設定する必要があります。
(後からシャードを追加、削除する事は可能)
Kinesis Streams に関してはこの設定シャード数が使用する上での重要な肝になってくる為、
利用料金についても使用するユーザ側で制御する形になっているなど、ここでもカスタム
要素の強いサービスである点が感じられます。
Chapter1:そもそも Amazon Kinesis って?
Kinesis Firehose
各種AWSサービス間のデータ転送を行うことが可能なサービスであり、複雑な保存先への
転送用プログラムコードを書く必要がなく、GUIのコンソール画面での簡単な設定だけで
データ転送を行えることが特徴です。
Firehoseは英語で消化ホースという意味を持ちますが、Kinesis Firehose に対してデータを
挿入し、挿入したデータを指定した保存先に対して転送するこのサービスは、正にそんな
イメージですね。
これまで一部のリージョンでのみ使用可能になっていた為東京リージョンでの使用ができ
ませんでしたが、2017年8月に東京リージョンでの使用が解禁されて使用可能になりまし
た!
Chapter1:そもそも Amazon Kinesis って?
Kinesis Firehose
Kinesis Firehose に挿入されたデータの転送先には、以下の3つが選択可能です。
1. Amazon S3
→ オンラインストレージで、静的ファイルなどを低料金で保存可能なサービスです。
1. Amazon Redshift
→ 大容量のデータを低価格で保存可能なデータベースで、分析用途などで使用されます。
1. Amazon Elasticsearch Service
→ 目的の文字列を含むドキュメントを高速に抽出可能なAWS上の全文検索エンジンです。
Chapter1:そもそも Amazon Kinesis って?
Kinesis Firehose
Kinesis Firehose Amazon S3 data flow overview
Chapter1:そもそも Amazon Kinesis って?
Kinesis Firehose
Kinesis Firehose Amazon Redshift data flow overview
Chapter1:そもそも Amazon Kinesis って?
Kinesis Firehose
Kinesis Firehose Amazon Elasticsearch data flow overview
Chapter1:そもそも Amazon Kinesis って?
Kinesis Firehose
Chapter1:そもそも Amazon Kinesis って?
Kinesis Firehose
Kinesis Firehose を使用する場合の利用料金は、サービスを介して送信するデータ容量に対
してのみ発生する形になっている為、Kinesis Streams におけるシャード数のユーザ側によ
る設定などが一切必要ありません。
Kinesis Streams が使う人を選ぶカスタム要素の強いサービスなのに対して、Kinesis
Firehose は、複雑な設定などの管理が不要なサービスであるという事が、利用料金の算出
方法からも見受けられます。
Chapter1:そもそも Amazon Kinesis って?
→ Kinesis Firehose と Kinesis Streamsの使い分け
Kinesis に対して挿入されたデータを加工、任意の保存先に転送すると
いう目的は同じの為、混同しやすい Kinesis Firehose と Kinesis
Streams ですが、それぞれ以下のような特徴がある為、用途により使
い分けると便利です。
Chapter1:そもそも Amazon Kinesis って?
- Kinesis Firehose
特徴:
- 転送時に自前でコードを用意する必要がなく、GUIのコンソールで簡単設定可能
- 使用するデータ容量の増減があった場合でも、ユーザ側での設定変更が不要
- データロードの間隔が最短で60秒からの為、リアルタイム描画などには不向き
向いている使用用途:
- KVSのレコードやアプリケーションログなどの大容量データを分析用データベースに
転送したり、自動バックアップ保存したりなど
→ Kinesis Firehose と Kinesis Streamsの使い分け
Chapter1:そもそも Amazon Kinesis って?
- Kinesis Streams
特徴:
- データロードが1秒以下の間隔で可能な為、リアルタイムでの処理に向いている
- データ加工や、保存先への転送の為に自前でコードを用意し、実行させる必要有
- 設定するシャード数により扱えるデータ容量と利用料金が変動
向いている使用用途:
- ストリーミングデータをリアルタイムで変化させるグラフで表示させたりなど
→ Kinesis Firehose と Kinesis Streamsの使い分け
Chapter1:そもそも Amazon Kinesis って?
結論:
Kinesis Firehose は、ゼロ管理の非エンジニアでも
扱えるようなサービス
Kinesis Streams は、細かい設定が可能なユーザカス
タム用サービス
→ Kinesis Firehose と Kinesis Streamsの使い分け
Chapter1:そもそも Amazon Kinesis って?
Kinesis Analytics
流れてくる大容量データに対して予め用意しておいたSQLを実行し、実行結果を保存先の
各種データストアに転送できるサービスです。
実行するSQLは標準のSQLクエリがサポートされている為、プログラミング言語などを学ば
なくても一般的なSQLの知識があれば使える点など、使用可能になるまでの敷居が低めに
設定されており、非エンジニアでも使えそうなところも嬉しい点です。
ただ、2017年9月現在では東京リージョンでの使用が不可能になっている点に注意が必要
です。
Chapter1:そもそも Amazon Kinesis って?
Kinesis Analytics
Chapter1:そもそも Amazon Kinesis って?
Kinesis Analytics
Chapter2:Kinesis Firehose の使い方
概要が分かったところで、Kinesis Firehoseを
使用してデータ転送を行う一連のフローなど、
実際の使い方を見ていきましょう。
Chapter2:Kinesis Firehose の使い方
AWSコンソール画面TOP から Kinesis を選択します。
Chapter2:Kinesis Firehose の使い方
Firehoseの欄の、Firehose コンソールに移動ボタンを選択します。
Chapter2:Kinesis Firehose の使い方
最初は何も作られていない為、Create Delivery System ボタンを選択して新規作成します。
Chapter2:Kinesis Firehose の使い方
作成するKinesis Firehose の stream name を設定します。
Delivery stream name の欄に作成する Kinesis Firehose の名前を入力します。
stream nameは作成したKinesisを一意に識別する為の名前で後から変更が不可能な為、な
るべく一目で分かるような名前を付けておきましょう。
今回は本勉強会のテスト用のKinesisだった為、「dcube-test-kinesis-firehose」という名前
で作成しています。
Chapter2:Kinesis Firehose の使い方
データ挿入元の指定で、直接PutするかKinesis Streamsから自動転送するかを選択
Choose source では、Kinesis Firehoseに入れるデータの挿入元を指定します。
2017年9月現在では、自作コードなどでKinesis Firehoseに対して直接データを挿入するか、
Kinesis Streamsに入ってきたデータを自動で転送するかの二択が選択可能です。
今回は、Kinesis Firehoseに対して直接データを挿入する方式を選択しています。
Chapter2:Kinesis Firehose の使い方
受け取ったレコードに対してLambda functionで変換(加工)を行うかを指定
受け取ったデータに対して何かしらの加工を施したい場合に設定する項目で、加工したい
場合にはKinesis Firehoseにデータが入ってきたことをトリガーに発火するLambda
functionを設定する事が可能で、変換後のデータを保存先に転送する事ができます。
今回は、Disabled(加工は行わない)を選択しています。
Chapter2:Kinesis Firehose の使い方
データを転送する保存先をどこにするかを設定
受け取ったデータを転送する保存先をどこにするかの設定項目です。
2017年9月現在では、Amazon S3、Amazon Redshift、Amazon Elasticsearch Serviceの
3つが選択可能になっています。
今回は、転送先をAmazon S3に設定しています。
Chapter2:Kinesis Firehose の使い方
保存先の詳細情報を設定します。(Amazon S3 を保存先に選択した場合)
データを転送する保存先をAmazon S3に指定した場合の詳細設定項目です。
S3 Bucket欄で保存先のバケットを設定し、Prefix欄で保存先ファイルパスの接頭語を指定
できます(デフォルトの保存先ファイルパスは、YYYY/MM/DD/HH/ 配下になっており、
省略した場合はバケット直下にYYYY/MM/DD/HH/ファイル名のパスで保存されます)
今回は、本勉強会用に作成した「dcube-test-bucket」を保存先バケットに設定し、管理
を容易にする為にデフォルトPrefixの前に test-dir/ をつけて保存するようにしています。
Chapter2:Kinesis Firehose の使い方
データロードの間隔を設定します。
Kinesis Firehose に挿入されたデータをAmazon S3に転送する間隔を設定する項目です。
データロードを行うタイミングは、
- 対象データのサイズがBuffer sizeで指定した値を超える
- 前回のデータロード実行時からBuffer interval で設定した秒数を経過
のどちらかの条件を満たしたタイミングで実行されます。
今回は、Buffer sizeはデフォルトの5MBのままにし、Buffer intervalだけ1分毎に転送を行
うようにする為に60秒に設定しています。
Chapter2:Kinesis Firehose の使い方
Amazon S3に保存するファイルに対して圧縮と暗号化を行うかを設定します。
Amazon S3に保存する際にファイル圧縮と暗号化を行なってから保存をしたい場合に設定
する項目です。
今回はサンプル実行の為、ファイル圧縮も暗号化も行わなずに保存するように設定してい
ます。
Chapter2:Kinesis Firehose の使い方
エラーログの出力設定を行います。
Kinesis Firehoseに挿入されたデータを加工して保存先のAmazon S3に転送したい場合に使
用するLambda functionの変換処理内でエラーが発生した場合や、Amazon S3へのデー
タ転送時に失敗した場合などにエラーログを出力するかどうかの設定項目です。
出力設定にしている状態でエラーが発生した場合は、エラーログがCloudWatch内に出力
されるようになります。
今回は、エラー発生時に出力するように設定しています。
Chapter2:Kinesis Firehose の使い方
転送処理の実行ロールを設定します。
Kinesis Firehoseのデータを保存先に転送を行う処理の実行ロール(権限)を設定します。
実行ロールは、「該当処理内でAWSのどのサービスに対してどのレベルのアクセスを許可
するか」というアクセス可能なサービスと、そのサービスに対するアクセス許可レベル
(読み込みのみ許可 or 書き込みも許可 etc)を設定するもので、転送処理で保存する保存
先へのアクセス権限を設定しておく必要があります。
Kinesis Firehoseを新規作成時には、「Create new or Choose」ボタンから実行ロールの
編集画面に遷移することで、デフォルトで保存先サービスへのアクセス権限が設定された
状態の実行ロールを作成可能なようになっています。
Chapter2:Kinesis Firehose の使い方
実行ロールの詳細設定を行います。
デフォルトでfirehose_delivery_roleという実行権限が選択されているので、画面右下の
「許可」ボタンを押して転送処理に紐づける実行ロールを確定させます。
(ポリシードキュメントを表示を開くと、Amazon S3サービスへの各種アクセス権限が設
定されている事が確認できるはずです)
Chapter2:Kinesis Firehose の使い方
作成した内容を確認し、問題がなければ作成します。
これまでに設定した項目が全て確認可能な最終確認画面に遷移後、設定内容が間違ってい
ないか一通り確認し、問題がなければ「Create delivery stream」ボタンで作成します。
Chapter2:Kinesis Firehose の使い方
Kinesis FirehoseのTOP画面に作成したstreamが表示される事を確認します。
作成が完了するとKinesis FirehoseのTOP画面に表示されるようになります。
Chapter2:Kinesis Firehose の使い方
Kinesis Firehose側の準備が整ったので、作成
したKinesis Firehoseにデータを挿入して
Amazon S3に転送してみましょう。
Chapter2:Kinesis Firehose の使い方
Kinesis Firehose に値を入れる自作処理作成
今回は、Kinesis Firehoseに値を入れる方法を自作コードなどから直接
値を入れる形式を指定した為、実行環境の用意が簡単なPythonで簡単
なスクリプトコードを作成してデータを挿入してみます。
Chapter2:Kinesis Firehose の使い方
Kinesis Firehose に値を入れる自作処理作成
Kinesis Firehoseに値を挿入するコード作成の前に、コード上で使用する
Kinesis Firehoseにアクセス可能なIAMUserのクレデンシャルを取得します。
以下の手順でIAM ユーザを作成し、クレデンシャル情報を保存します。
1. コンソール画面TOPからセキュリティ認証情報 → ユーザー → ユーザーを追加選択
1. ユーザー名に適当な名前(test-firehose-full-access-user など)を入力
1. アクセスの種類は、「プログラムによるアクセス」を選択
1. 既存のポリシーを直接アタッチを選択後、AmazonKinesisFirehoseFullAccessを選択
1. ユーザーの作成を選択後、.csvファイルのダウンロードボタンでファイルをDL
1. DLしたファイルを開き、クレデンシャル情報を控えておく
Chapter2:Kinesis Firehose の使い方
Kinesis Firehose に値を入れる自作処理作成
次に、PythonからAWSの各種サービス(今回のKinesis Firehose含
む)へのアクセスを行う為のライブラリであるboto3を用意します。
boto3はpythonからAWSの各種サービスを行う為のAmazonが提供し
ている公式ライブラリですが、ローカルマシン含むサーバ上ではデフ
ォルトで用意されていない為、pipを使用してインストールする必要が
あります。
Chapter2:Kinesis Firehose の使い方
Kinesis Firehose に値を入れる自作処理作成
全ての用意が整ったところで、以下のサンプルコードのようなものを
用意、コンソールから実行してKinesis Firehoseに値を挿入します。
Chapter2:Kinesis Firehose の使い方
Kinesis Firehose に値を入れる自作処理作成
Kinesis Firehoseのデータロード間隔が60秒間隔の為、60秒経過後に転送後の保存
先に指定したS3バケットを確認するとファイルが作成されているはずです。
Chapter2:Kinesis Firehose の使い方
Kinesis Firehose に値を入れる自作処理作成
Amazon S3から転送後のファイルをダウンロードして中身を確認して
みると、Pythonコード上で送ったテスト文字列が正しく入っている事
が確認できます。
Chapter3:Kinesis Firehose を使って実現できそうなこと
1. 中身の参照が難しいKVSのデータを、分析用データベースに転送
大量のデータを溜め込み、レコード取得時に取得したいレコードを一意に識別でき
るKeyを指定して対象レコードを取得する使い方をするKVS(Key-Value Store)で
すが、大量のデータを溜め込めるメリットもある一方、データを取得する際に必ず
Key を指定しなければならず、溜め込んだデータを分析用途などで使用するのには
あまり向いていない面もあります。
この問題を解消する為に、KVSのデータを Kinesis に流し、更に Kinesis から分析用
途で使用するデータベースに転送すれば、溜め込んだ大量のデータに対して分析よ
用のクエリを実行することが可能になり、KVSのデメリットを解消できそうです。
Chapter3:Kinesis Firehose を使って実現できそうなこと
AWSのサービスで考えると、KVSはDynamoDBが
該当し、分析用途で使用するデータベースは
Amazon Redshiftが該当する為、DynamoDBに入
ってきたレコードをKinesis Firehoseに一度流し、
Kinesis Firehoseが受け取ったレコードの情報を
Amazon Redshiftに転送すると良さそうです。
Chapter3:Kinesis Firehose を使って実現できそうなこと
DynamoのレコードをRedshiftに転送するイメージ図
Chapter3:Kinesis Firehose を使って実現できそうなこと
2. アプリケーションログなどの時系列ログデータをビジュアライズ表示
各種アプリケーションが出力するログ情報はサービスを運用していく上で非常に大
事な情報として使用可能ですが、これらの情報をそのまま見ようとすると grep コ
マンドなどを毎回使用しながらでないと見たい情報を見る事ができません。
この問題を解決する為に、各種ログ情報を時系列にまとめた上で、人間が見る用に
最適化した状態を予め作成しておき、見たい時に見たい情報をすぐに見れるような
環境を作成しておけば、日々の業務効率が大きく上がりそうです。
Chapter3:Kinesis Firehose を使って実現できそうなこと
AWSのサービスで考えると、時系列で溜めたデー
タを見れるようにするのはAmazon
Elasticsearch Serviceが該当する為、各種アプリ
ケーションのログ情報をKinesis Firehoseに挿入す
るようにし、Kinesis Firehoseが受け取ったレコー
ドの情報をAmazon Elasticsearch Serviceに転送、
KibanaからElastisearchに入れられたデータを参
照してビジュアライズ表示させるのが良さそうで
す。
Chapter3:Kinesis Firehose を使って実現できそうなこと
こんな感じで綺麗に表示させたい!
Chapter3:Kinesis Firehose を使って実現できそうなこと
各種アプリケーションの時系列ログをKibanaで参照するイメージ図
Chapter4 :Kinesis Firehose を使用したデータ転送を実演してみる
時間が余れば実際にデータ転送処理が実行され
るところを実演してみます。
ご静聴ありがとうございました。

Contenu connexe

Tendances

20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / GlacierAmazon Web Services Japan
 
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)Amazon Web Services Japan
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 ResolverAmazon Web Services Japan
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...Amazon Web Services Japan
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPNAmazon Web Services Japan
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)Amazon Web Services Japan
 
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipelineAmazon Web Services Japan
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQLAmazon Web Services Japan
 
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows ServerAmazon Web Services Japan
 
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...Amazon Web Services Japan
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS BatchAmazon Web Services Japan
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBSAmazon Web Services Japan
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation Amazon Web Services Japan
 
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理Amazon Web Services Japan
 
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatchAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAmazon Web Services Japan
 
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted ZoneAmazon Web Services Japan
 

Tendances (20)

20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
 
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
 
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
 
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
 
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation
 
Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理Amazon Kinesis Familyを活用したストリームデータ処理
Amazon Kinesis Familyを活用したストリームデータ処理
 
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
 
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
 
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
 
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
 

Similaire à Kinesis Firehoseを使ってみた

はじめてのAws lambda
はじめてのAws lambdaはじめてのAws lambda
はじめてのAws lambdadcubeio
 
はじめてのAWS Lambda
はじめてのAWS LambdaはじめてのAWS Lambda
はじめてのAWS LambdaMasaki Misawa
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoKyosuke Inoue
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションMasahiko Ebisuda
 
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例Yutaro Ono
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in TokyoKyosuke Inoue
 
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来Shinpei Ohtani
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春Kondo Hitoshi
 
クラウドとは何か / what is cloud computing (1.4 / 2017.07)
クラウドとは何か / what is cloud computing (1.4 / 2017.07)クラウドとは何か / what is cloud computing (1.4 / 2017.07)
クラウドとは何か / what is cloud computing (1.4 / 2017.07)Arichika TANIGUCHI
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternTakekazu Omi
 
20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告真吾 吉田
 
CFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerCFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerKazuto Kusama
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイiwata jaws-ug
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Sotaro Kimura
 
Applibot presents Smartphone Game on AWS
Applibot presents Smartphone Game on AWSApplibot presents Smartphone Game on AWS
Applibot presents Smartphone Game on AWSKenta Yasukawa
 
レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】Yasuhito Yabe
 
アプリ開発&チーム管理で 役立った拡張機能
アプリ開発&チーム管理で役立った拡張機能アプリ開発&チーム管理で役立った拡張機能
アプリ開発&チーム管理で 役立った拡張機能Masaki Suzuki
 

Similaire à Kinesis Firehoseを使ってみた (20)

はじめてのAws lambda
はじめてのAws lambdaはじめてのAws lambda
はじめてのAws lambda
 
はじめてのAWS Lambda
はじめてのAWS LambdaはじめてのAWS Lambda
はじめてのAWS Lambda
 
JavaOne2017参加報告 Microservices topic & approach #jjug
JavaOne2017参加報告 Microservices topic & approach #jjugJavaOne2017参加報告 Microservices topic & approach #jjug
JavaOne2017参加報告 Microservices topic & approach #jjug
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
 
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
 
Zynga
ZyngaZynga
Zynga
 
Aws privte20110406 arai
Aws privte20110406 araiAws privte20110406 arai
Aws privte20110406 arai
 
クラウドとは何か / what is cloud computing (1.4 / 2017.07)
クラウドとは何か / what is cloud computing (1.4 / 2017.07)クラウドとは何か / what is cloud computing (1.4 / 2017.07)
クラウドとは何か / what is cloud computing (1.4 / 2017.07)
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design Pattern
 
20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告
 
CFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerCFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service Broker
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
 
Applibot presents Smartphone Game on AWS
Applibot presents Smartphone Game on AWSApplibot presents Smartphone Game on AWS
Applibot presents Smartphone Game on AWS
 
レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】
 
アプリ開発&チーム管理で 役立った拡張機能
アプリ開発&チーム管理で役立った拡張機能アプリ開発&チーム管理で役立った拡張機能
アプリ開発&チーム管理で 役立った拡張機能
 

Plus de dcubeio

AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」dcubeio
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料dcubeio
 
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)dcubeio
 
20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料dcubeio
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話dcubeio
 
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)dcubeio
 
BizReach x Marketo連携
BizReach x Marketo連携BizReach x Marketo連携
BizReach x Marketo連携dcubeio
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】dcubeio
 
春の脆弱性祭り 2017/06/13
春の脆弱性祭り 2017/06/13春の脆弱性祭り 2017/06/13
春の脆弱性祭り 2017/06/13dcubeio
 
DynamoDBを導入した話
DynamoDBを導入した話DynamoDBを導入した話
DynamoDBを導入した話dcubeio
 
Play2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことPlay2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことdcubeio
 
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー! すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー! dcubeio
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料dcubeio
 
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜dcubeio
 
【freee】プロダクトマネージャーの仕事と魅力
【freee】プロダクトマネージャーの仕事と魅力【freee】プロダクトマネージャーの仕事と魅力
【freee】プロダクトマネージャーの仕事と魅力dcubeio
 
【ビズリーチ】プロダクトマネージャーの仕事と魅力
【ビズリーチ】プロダクトマネージャーの仕事と魅力【ビズリーチ】プロダクトマネージャーの仕事と魅力
【ビズリーチ】プロダクトマネージャーの仕事と魅力dcubeio
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botdcubeio
 
HR Tech x 機械学習 導入事例紹介
HR Tech x 機械学習 導入事例紹介HR Tech x 機械学習 導入事例紹介
HR Tech x 機械学習 導入事例紹介dcubeio
 
Scalaマクロ入門 bizr20170217
Scalaマクロ入門 bizr20170217 Scalaマクロ入門 bizr20170217
Scalaマクロ入門 bizr20170217 dcubeio
 
機械学習を支えるX86 64の拡張命令セットを読む会 20170212
機械学習を支えるX86 64の拡張命令セットを読む会 20170212機械学習を支えるX86 64の拡張命令セットを読む会 20170212
機械学習を支えるX86 64の拡張命令セットを読む会 20170212dcubeio
 

Plus de dcubeio (20)

AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
AWS Summit Tokyo 2019登壇資料「DevOpsの劇的改善!古いアーキテクチャから王道のマネージドサービスを活用しフルリプレイス! 」
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
 
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
 
20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料20171206 d3 health_tech発表資料
20171206 d3 health_tech発表資料
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話
 
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
 
BizReach x Marketo連携
BizReach x Marketo連携BizReach x Marketo連携
BizReach x Marketo連携
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】
 
春の脆弱性祭り 2017/06/13
春の脆弱性祭り 2017/06/13春の脆弱性祭り 2017/06/13
春の脆弱性祭り 2017/06/13
 
DynamoDBを導入した話
DynamoDBを導入した話DynamoDBを導入した話
DynamoDBを導入した話
 
Play2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだことPlay2 scalaを2年やって学んだこと
Play2 scalaを2年やって学んだこと
 
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー! すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
すごーい!APIドキュメントを更新するだけでAPIが自動テストできちゃう!たのしー!
 
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
 
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
Bitcoin x Slack でマイクロペイメントを実現! 〜生活の必要上割り勘botを作るまで〜
 
【freee】プロダクトマネージャーの仕事と魅力
【freee】プロダクトマネージャーの仕事と魅力【freee】プロダクトマネージャーの仕事と魅力
【freee】プロダクトマネージャーの仕事と魅力
 
【ビズリーチ】プロダクトマネージャーの仕事と魅力
【ビズリーチ】プロダクトマネージャーの仕事と魅力【ビズリーチ】プロダクトマネージャーの仕事と魅力
【ビズリーチ】プロダクトマネージャーの仕事と魅力
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
 
HR Tech x 機械学習 導入事例紹介
HR Tech x 機械学習 導入事例紹介HR Tech x 機械学習 導入事例紹介
HR Tech x 機械学習 導入事例紹介
 
Scalaマクロ入門 bizr20170217
Scalaマクロ入門 bizr20170217 Scalaマクロ入門 bizr20170217
Scalaマクロ入門 bizr20170217
 
機械学習を支えるX86 64の拡張命令セットを読む会 20170212
機械学習を支えるX86 64の拡張命令セットを読む会 20170212機械学習を支えるX86 64の拡張命令セットを読む会 20170212
機械学習を支えるX86 64の拡張命令セットを読む会 20170212
 

Kinesis Firehoseを使ってみた

  • 2. 【登壇者プロフィール】 ミサワ マサキ 名前: 三澤 正木 職業: エンジニア(現在の業務は、主にWEBアプリ開発担当) 所属: 株式会社ビズリーチ キャリアトレック事業部 http://careertrek.com GitHub: https://github.com/MasakiMisawa 趣味: 野球(観る専)、ランニング、旅行 etc
  • 4. アジェンダ ・Chapter1 そもそも Amazon Kinesis って? → Amazon Kinesis の簡単な概要説明です ・Chapter2 Kinesis Firehoseの使い方 → Kinesis Firehoseに挿入した値を、任意の場所に転送完了させるまでの一連の流れです ・Chapter3 Kinesis Firehoseを使って実現できそうなこと → 自分なりに考えるKinesis Firehoseを使えばこんなこと、あんなことが実現できそうという紹介です ・Chapter4 Kinesis Firehoseを使用したデータ転送を実演してみる → 時間が余ればになりますが、Kinesis Firehoseを使用したデータ転送を実演しようと思っています。 ・etc 質疑応答 → さいごに質疑応答の時間を設ける予定でいます
  • 5. Chapter1:そもそも Amazon Kinesis って? Amazon Kinesis は、AWS(Amazon Web Service)の用意したスト リーミングデータ向けのプラットフォームで、大容量のデータを低コ ストで収集、分析、処理、転送する事が可能なサービスです。 大量に流れてくるログデータなどを一時保存(Kinesisへの保存期間は デフォルトで24時間、最大7日まで延長可能)し、分析をしたり任意の 形に加工した後に任意の各種データストレージに転送するところまで をやってくれます。
  • 6. Chapter1:そもそも Amazon Kinesis って? 大量のデータを低コストで溜め込み、溜め込んだデータを取得して各 種展開するという意味では、AWSの中で割とよく使われているSQS (Simple Queue Service)に近いイメージですが、 1. SQSよりも大量、大容量のデータを受ける事が可能 * SQSでは秒間数百のリクエストをさばく事ができないが、Kinesisではそれが可能 * 1レコードの最大容量がSQSは256KBまでだが、Kinesisは1MBまで保存可能 1. 溜め込むだけでなく、分析や加工をしてくれたり、各種AWSサー ビスに転送する処理もやってくれる(Kinesisすべてではない) の2点が大きな違いであり、Kinesisを使う上での利点です。
  • 7. Chapter1:そもそも Amazon Kinesis って? 一口にKinesisと言っても、用途毎に以下の3種類が存在します。 1. Kinesis Streams → 挿入されたデータをリアルタイムで加工してデータ転送を行いたい場合などに使用し ます。 1. Kinesis Firehose → 複雑な転送用コードを書かずにコンソール画面での設定だけでデータ転送を行いたい 場合などに使用します。今回扱うメインテーマです。 1. Kinesis Analytics → 挿入されたデータに対して予め用意したSQLの実行結果を転送したい場合などに使用 します。2017/09現在では東京リージョン非対応になっています。
  • 8. Chapter1:そもそも Amazon Kinesis って? Kinesis Streams Streams(小川)という名前が示すとおり、流れてくる大容量データをリアルタイムで加 工して扱いたい場合に使用され、データロード間隔の短さが最大の特徴となっています。 ストリーミングデータなどの絶え間なく入ってくるデータをリアルタイムで処理できるメ リットがある一方、入ってきたデータを加工したり、加工後のデータを任意のデータスト アに転送する為のプログラムコードは自前で用意しておく必要があったりなど データを溜めておく場所の提供と、データが入ってきたタイミングで のイベント発火だけは用意するから、後は使う側で自由にやってね! という、使う人は選ぶものの、割と自由度の高いサービスになっているのが特徴です。
  • 9. Chapter1:そもそも Amazon Kinesis って? Kinesis Streams
  • 10. Chapter1:そもそも Amazon Kinesis って? Kinesis Streams 尚、Kinesis Streams 内に挿入されたデータを加工、保存先へ転送させる為のプログラムコ ードを実行させるには、以下の二つの方法が一般的です。 1. Kinesis Streams にデータが入ってきたことをイベントトリガーに発火させる Lambda function 内に加工、保存先への転送コードを書いておき自動実行。 1. cronなどの定期実行処理でKinesis Streamsからデータを取得し、取得したデータを 加工、保存先への転送を実行 ● Kinesis Streamsから手動でデータを取得した場合、取得後もKinesis Streams内に対象データは残り 続ける仕様になっている為、既処理済のデータか未処理のデータかを判別可能にする為に取得した レコードのシーケンス番号や取得日時を保存しておき、次回取得時に前回取得したレコード以降の レコードを取得するように管理する必要があります。
  • 11. Chapter1:そもそも Amazon Kinesis って? Kinesis Streams Kinesis Streamsにデータが入った事をイベントトリガーに発火するLambda functionの 例
  • 12. Chapter1:そもそも Amazon Kinesis って? Kinesis Streams Kinesis Streams では扱える最大データ容量をシャードという概念で管理しており、設定す るシャード数により扱える最大データ容量を増やすことができます。 ただ、設定するシャード容量を増やすとその分利用料金も増えていくので、使用するデー タ容量に応じて適切なシャード数を設定する必要があります。 (後からシャードを追加、削除する事は可能) Kinesis Streams に関してはこの設定シャード数が使用する上での重要な肝になってくる為、 利用料金についても使用するユーザ側で制御する形になっているなど、ここでもカスタム 要素の強いサービスである点が感じられます。
  • 13. Chapter1:そもそも Amazon Kinesis って? Kinesis Firehose 各種AWSサービス間のデータ転送を行うことが可能なサービスであり、複雑な保存先への 転送用プログラムコードを書く必要がなく、GUIのコンソール画面での簡単な設定だけで データ転送を行えることが特徴です。 Firehoseは英語で消化ホースという意味を持ちますが、Kinesis Firehose に対してデータを 挿入し、挿入したデータを指定した保存先に対して転送するこのサービスは、正にそんな イメージですね。 これまで一部のリージョンでのみ使用可能になっていた為東京リージョンでの使用ができ ませんでしたが、2017年8月に東京リージョンでの使用が解禁されて使用可能になりまし た!
  • 14. Chapter1:そもそも Amazon Kinesis って? Kinesis Firehose Kinesis Firehose に挿入されたデータの転送先には、以下の3つが選択可能です。 1. Amazon S3 → オンラインストレージで、静的ファイルなどを低料金で保存可能なサービスです。 1. Amazon Redshift → 大容量のデータを低価格で保存可能なデータベースで、分析用途などで使用されます。 1. Amazon Elasticsearch Service → 目的の文字列を含むドキュメントを高速に抽出可能なAWS上の全文検索エンジンです。
  • 15. Chapter1:そもそも Amazon Kinesis って? Kinesis Firehose Kinesis Firehose Amazon S3 data flow overview
  • 16. Chapter1:そもそも Amazon Kinesis って? Kinesis Firehose Kinesis Firehose Amazon Redshift data flow overview
  • 17. Chapter1:そもそも Amazon Kinesis って? Kinesis Firehose Kinesis Firehose Amazon Elasticsearch data flow overview
  • 18. Chapter1:そもそも Amazon Kinesis って? Kinesis Firehose
  • 19. Chapter1:そもそも Amazon Kinesis って? Kinesis Firehose Kinesis Firehose を使用する場合の利用料金は、サービスを介して送信するデータ容量に対 してのみ発生する形になっている為、Kinesis Streams におけるシャード数のユーザ側によ る設定などが一切必要ありません。 Kinesis Streams が使う人を選ぶカスタム要素の強いサービスなのに対して、Kinesis Firehose は、複雑な設定などの管理が不要なサービスであるという事が、利用料金の算出 方法からも見受けられます。
  • 20. Chapter1:そもそも Amazon Kinesis って? → Kinesis Firehose と Kinesis Streamsの使い分け Kinesis に対して挿入されたデータを加工、任意の保存先に転送すると いう目的は同じの為、混同しやすい Kinesis Firehose と Kinesis Streams ですが、それぞれ以下のような特徴がある為、用途により使 い分けると便利です。
  • 21. Chapter1:そもそも Amazon Kinesis って? - Kinesis Firehose 特徴: - 転送時に自前でコードを用意する必要がなく、GUIのコンソールで簡単設定可能 - 使用するデータ容量の増減があった場合でも、ユーザ側での設定変更が不要 - データロードの間隔が最短で60秒からの為、リアルタイム描画などには不向き 向いている使用用途: - KVSのレコードやアプリケーションログなどの大容量データを分析用データベースに 転送したり、自動バックアップ保存したりなど → Kinesis Firehose と Kinesis Streamsの使い分け
  • 22. Chapter1:そもそも Amazon Kinesis って? - Kinesis Streams 特徴: - データロードが1秒以下の間隔で可能な為、リアルタイムでの処理に向いている - データ加工や、保存先への転送の為に自前でコードを用意し、実行させる必要有 - 設定するシャード数により扱えるデータ容量と利用料金が変動 向いている使用用途: - ストリーミングデータをリアルタイムで変化させるグラフで表示させたりなど → Kinesis Firehose と Kinesis Streamsの使い分け
  • 23. Chapter1:そもそも Amazon Kinesis って? 結論: Kinesis Firehose は、ゼロ管理の非エンジニアでも 扱えるようなサービス Kinesis Streams は、細かい設定が可能なユーザカス タム用サービス → Kinesis Firehose と Kinesis Streamsの使い分け
  • 24. Chapter1:そもそも Amazon Kinesis って? Kinesis Analytics 流れてくる大容量データに対して予め用意しておいたSQLを実行し、実行結果を保存先の 各種データストアに転送できるサービスです。 実行するSQLは標準のSQLクエリがサポートされている為、プログラミング言語などを学ば なくても一般的なSQLの知識があれば使える点など、使用可能になるまでの敷居が低めに 設定されており、非エンジニアでも使えそうなところも嬉しい点です。 ただ、2017年9月現在では東京リージョンでの使用が不可能になっている点に注意が必要 です。
  • 25. Chapter1:そもそも Amazon Kinesis って? Kinesis Analytics
  • 26. Chapter1:そもそも Amazon Kinesis って? Kinesis Analytics
  • 27. Chapter2:Kinesis Firehose の使い方 概要が分かったところで、Kinesis Firehoseを 使用してデータ転送を行う一連のフローなど、 実際の使い方を見ていきましょう。
  • 29. Chapter2:Kinesis Firehose の使い方 Firehoseの欄の、Firehose コンソールに移動ボタンを選択します。
  • 30. Chapter2:Kinesis Firehose の使い方 最初は何も作られていない為、Create Delivery System ボタンを選択して新規作成します。
  • 31. Chapter2:Kinesis Firehose の使い方 作成するKinesis Firehose の stream name を設定します。 Delivery stream name の欄に作成する Kinesis Firehose の名前を入力します。 stream nameは作成したKinesisを一意に識別する為の名前で後から変更が不可能な為、な るべく一目で分かるような名前を付けておきましょう。 今回は本勉強会のテスト用のKinesisだった為、「dcube-test-kinesis-firehose」という名前 で作成しています。
  • 32. Chapter2:Kinesis Firehose の使い方 データ挿入元の指定で、直接PutするかKinesis Streamsから自動転送するかを選択 Choose source では、Kinesis Firehoseに入れるデータの挿入元を指定します。 2017年9月現在では、自作コードなどでKinesis Firehoseに対して直接データを挿入するか、 Kinesis Streamsに入ってきたデータを自動で転送するかの二択が選択可能です。 今回は、Kinesis Firehoseに対して直接データを挿入する方式を選択しています。
  • 33. Chapter2:Kinesis Firehose の使い方 受け取ったレコードに対してLambda functionで変換(加工)を行うかを指定 受け取ったデータに対して何かしらの加工を施したい場合に設定する項目で、加工したい 場合にはKinesis Firehoseにデータが入ってきたことをトリガーに発火するLambda functionを設定する事が可能で、変換後のデータを保存先に転送する事ができます。 今回は、Disabled(加工は行わない)を選択しています。
  • 34. Chapter2:Kinesis Firehose の使い方 データを転送する保存先をどこにするかを設定 受け取ったデータを転送する保存先をどこにするかの設定項目です。 2017年9月現在では、Amazon S3、Amazon Redshift、Amazon Elasticsearch Serviceの 3つが選択可能になっています。 今回は、転送先をAmazon S3に設定しています。
  • 35. Chapter2:Kinesis Firehose の使い方 保存先の詳細情報を設定します。(Amazon S3 を保存先に選択した場合) データを転送する保存先をAmazon S3に指定した場合の詳細設定項目です。 S3 Bucket欄で保存先のバケットを設定し、Prefix欄で保存先ファイルパスの接頭語を指定 できます(デフォルトの保存先ファイルパスは、YYYY/MM/DD/HH/ 配下になっており、 省略した場合はバケット直下にYYYY/MM/DD/HH/ファイル名のパスで保存されます) 今回は、本勉強会用に作成した「dcube-test-bucket」を保存先バケットに設定し、管理 を容易にする為にデフォルトPrefixの前に test-dir/ をつけて保存するようにしています。
  • 36. Chapter2:Kinesis Firehose の使い方 データロードの間隔を設定します。 Kinesis Firehose に挿入されたデータをAmazon S3に転送する間隔を設定する項目です。 データロードを行うタイミングは、 - 対象データのサイズがBuffer sizeで指定した値を超える - 前回のデータロード実行時からBuffer interval で設定した秒数を経過 のどちらかの条件を満たしたタイミングで実行されます。 今回は、Buffer sizeはデフォルトの5MBのままにし、Buffer intervalだけ1分毎に転送を行 うようにする為に60秒に設定しています。
  • 37. Chapter2:Kinesis Firehose の使い方 Amazon S3に保存するファイルに対して圧縮と暗号化を行うかを設定します。 Amazon S3に保存する際にファイル圧縮と暗号化を行なってから保存をしたい場合に設定 する項目です。 今回はサンプル実行の為、ファイル圧縮も暗号化も行わなずに保存するように設定してい ます。
  • 38. Chapter2:Kinesis Firehose の使い方 エラーログの出力設定を行います。 Kinesis Firehoseに挿入されたデータを加工して保存先のAmazon S3に転送したい場合に使 用するLambda functionの変換処理内でエラーが発生した場合や、Amazon S3へのデー タ転送時に失敗した場合などにエラーログを出力するかどうかの設定項目です。 出力設定にしている状態でエラーが発生した場合は、エラーログがCloudWatch内に出力 されるようになります。 今回は、エラー発生時に出力するように設定しています。
  • 39. Chapter2:Kinesis Firehose の使い方 転送処理の実行ロールを設定します。 Kinesis Firehoseのデータを保存先に転送を行う処理の実行ロール(権限)を設定します。 実行ロールは、「該当処理内でAWSのどのサービスに対してどのレベルのアクセスを許可 するか」というアクセス可能なサービスと、そのサービスに対するアクセス許可レベル (読み込みのみ許可 or 書き込みも許可 etc)を設定するもので、転送処理で保存する保存 先へのアクセス権限を設定しておく必要があります。 Kinesis Firehoseを新規作成時には、「Create new or Choose」ボタンから実行ロールの 編集画面に遷移することで、デフォルトで保存先サービスへのアクセス権限が設定された 状態の実行ロールを作成可能なようになっています。
  • 42. Chapter2:Kinesis Firehose の使い方 Kinesis FirehoseのTOP画面に作成したstreamが表示される事を確認します。 作成が完了するとKinesis FirehoseのTOP画面に表示されるようになります。
  • 43. Chapter2:Kinesis Firehose の使い方 Kinesis Firehose側の準備が整ったので、作成 したKinesis Firehoseにデータを挿入して Amazon S3に転送してみましょう。
  • 44. Chapter2:Kinesis Firehose の使い方 Kinesis Firehose に値を入れる自作処理作成 今回は、Kinesis Firehoseに値を入れる方法を自作コードなどから直接 値を入れる形式を指定した為、実行環境の用意が簡単なPythonで簡単 なスクリプトコードを作成してデータを挿入してみます。
  • 45. Chapter2:Kinesis Firehose の使い方 Kinesis Firehose に値を入れる自作処理作成 Kinesis Firehoseに値を挿入するコード作成の前に、コード上で使用する Kinesis Firehoseにアクセス可能なIAMUserのクレデンシャルを取得します。 以下の手順でIAM ユーザを作成し、クレデンシャル情報を保存します。 1. コンソール画面TOPからセキュリティ認証情報 → ユーザー → ユーザーを追加選択 1. ユーザー名に適当な名前(test-firehose-full-access-user など)を入力 1. アクセスの種類は、「プログラムによるアクセス」を選択 1. 既存のポリシーを直接アタッチを選択後、AmazonKinesisFirehoseFullAccessを選択 1. ユーザーの作成を選択後、.csvファイルのダウンロードボタンでファイルをDL 1. DLしたファイルを開き、クレデンシャル情報を控えておく
  • 46. Chapter2:Kinesis Firehose の使い方 Kinesis Firehose に値を入れる自作処理作成 次に、PythonからAWSの各種サービス(今回のKinesis Firehose含 む)へのアクセスを行う為のライブラリであるboto3を用意します。 boto3はpythonからAWSの各種サービスを行う為のAmazonが提供し ている公式ライブラリですが、ローカルマシン含むサーバ上ではデフ ォルトで用意されていない為、pipを使用してインストールする必要が あります。
  • 47. Chapter2:Kinesis Firehose の使い方 Kinesis Firehose に値を入れる自作処理作成 全ての用意が整ったところで、以下のサンプルコードのようなものを 用意、コンソールから実行してKinesis Firehoseに値を挿入します。
  • 48. Chapter2:Kinesis Firehose の使い方 Kinesis Firehose に値を入れる自作処理作成 Kinesis Firehoseのデータロード間隔が60秒間隔の為、60秒経過後に転送後の保存 先に指定したS3バケットを確認するとファイルが作成されているはずです。
  • 49. Chapter2:Kinesis Firehose の使い方 Kinesis Firehose に値を入れる自作処理作成 Amazon S3から転送後のファイルをダウンロードして中身を確認して みると、Pythonコード上で送ったテスト文字列が正しく入っている事 が確認できます。
  • 50. Chapter3:Kinesis Firehose を使って実現できそうなこと 1. 中身の参照が難しいKVSのデータを、分析用データベースに転送 大量のデータを溜め込み、レコード取得時に取得したいレコードを一意に識別でき るKeyを指定して対象レコードを取得する使い方をするKVS(Key-Value Store)で すが、大量のデータを溜め込めるメリットもある一方、データを取得する際に必ず Key を指定しなければならず、溜め込んだデータを分析用途などで使用するのには あまり向いていない面もあります。 この問題を解消する為に、KVSのデータを Kinesis に流し、更に Kinesis から分析用 途で使用するデータベースに転送すれば、溜め込んだ大量のデータに対して分析よ 用のクエリを実行することが可能になり、KVSのデメリットを解消できそうです。
  • 51. Chapter3:Kinesis Firehose を使って実現できそうなこと AWSのサービスで考えると、KVSはDynamoDBが 該当し、分析用途で使用するデータベースは Amazon Redshiftが該当する為、DynamoDBに入 ってきたレコードをKinesis Firehoseに一度流し、 Kinesis Firehoseが受け取ったレコードの情報を Amazon Redshiftに転送すると良さそうです。
  • 53. Chapter3:Kinesis Firehose を使って実現できそうなこと 2. アプリケーションログなどの時系列ログデータをビジュアライズ表示 各種アプリケーションが出力するログ情報はサービスを運用していく上で非常に大 事な情報として使用可能ですが、これらの情報をそのまま見ようとすると grep コ マンドなどを毎回使用しながらでないと見たい情報を見る事ができません。 この問題を解決する為に、各種ログ情報を時系列にまとめた上で、人間が見る用に 最適化した状態を予め作成しておき、見たい時に見たい情報をすぐに見れるような 環境を作成しておけば、日々の業務効率が大きく上がりそうです。
  • 54. Chapter3:Kinesis Firehose を使って実現できそうなこと AWSのサービスで考えると、時系列で溜めたデー タを見れるようにするのはAmazon Elasticsearch Serviceが該当する為、各種アプリ ケーションのログ情報をKinesis Firehoseに挿入す るようにし、Kinesis Firehoseが受け取ったレコー ドの情報をAmazon Elasticsearch Serviceに転送、 KibanaからElastisearchに入れられたデータを参 照してビジュアライズ表示させるのが良さそうで す。
  • 57. Chapter4 :Kinesis Firehose を使用したデータ転送を実演してみる 時間が余れば実際にデータ転送処理が実行され るところを実演してみます。