3Dアプリの行動履歴ログを獲得する為に参考にした資料の備忘録
経緯
とあるサービスでユーザーの行動解析を行う際に、ログデータを受け取ってなるべくリアルタイムに加工して出力するシステムが必要になったので、どう構築していくか調査することになりました。 その際にとても有用だと感じた資料を残しておきます。備忘録です。
概要
ログ管理のベストプラクティス
AWS Japanのソリューションアーキテクトの方の資料です。AWSを使う場合にはたくさんの定石を知ることができて役立ちました。
秒間数万のログをいい感じにするアーキテクチャ
- Cookpadのログへの考え方からシステムの変遷まで書かれていて、ログというものへの全体像を実感するのにとても役立ちました
【AWS summit 2016 Tokyo 発表内容】タウンワークにおけるサーバーレスアーキテクチャデザイン
サーバーレスアーキテクチャのパターン別ユースケース
各要素
Kinesis
データの一時受けに便利です。KinesisはStreamsとFirehoseとAnalyticsの3つのサービスにわかれています
Kinesis Streams
Kinesis Streamsの公式ページで、結局ここが一番わかり易いです。
Kinesis Firehose
Kinesis Firehoseの公式ページがとてもわかり易いです。
Amazon Kinesis StreamsとAmazon Kinesis Firehoseは何が違うのか
Amazon Kinesis StreamとAmazon Kinesis FirehoseのAPIを比較する #reinvent
AWS Kinesis Firehoseを動かして見る
KafkaとAWS Kinesisの比較
AWS以外のサービスとの比較、AWSにとらわれないシステム構成などを学ぶことができました
fluent-plugin-kinesisでKinesis Streamsにログを送信する
実用例としてとても参考になりました。
fluent-plugin-kinesis-firehoseでAmazon Kinesis Firehoseにログを転送する
のfirehose版で、こちらも参考になりました。
結合例
ストリーム型(kinesis stream)のAWS Lambdaの同時起動数とデータの取り方を整理
Kinesis Streams と Lambda との組み合わせ方について勉強になりました
Fluentd&Kinesis&Lambdaによる柔軟で高可用性なログ収集基盤の構築
- Fluentd -> Kinesis -> Lambda -> [S3, DynamoDB...] などの流れが明快にわかってとても参考になります
API Gateway / Lambda / Kinesis を使ったストリーミングなバッチ実行基盤の実装
考察が乗っていてとてもわかりやすいです
Kinesis Producer Library(KPL)とfluentdとLambdaを連携してKinesisのスループットを上げる
2つ目の記事に関して解説が追加された記事になります。わかりやすい。
Data Storage
Amazon DynamoDB
公式ですので、とりあえず目を通します
API Gateway
とりあえずAPI Gatewayはとっても便利という印象でした。 EC2がいいのか、API Gateway + Lambdaがいいのかとか色々悩みましたが、そもそもいろんな使い方があることが勉強になります。
以下、入門編という感じで資料です。
API ホスト名としてのカスタムドメイン名の設定 - Amazon API Gateway
【新機能】Amazon API GatewayがACM (AWS Certificate Manager)に対応。簡単に独自ドメインAPIがSSL化。 | Developers.IO
API Gateway リソースの CORS を有効にする - Amazon API Gateway
API Gateway API のリクエストパラメータをマッピングする - Amazon API Gateway
Amazon API GatewayからAWS Lambdaにパラメータを渡す方法 - Qiita
EC2からLambdaへの移行
AWS 謹製 aws-serverless-express を使って APIGateway + Lambda + Node + Express で RESTful サービスの雛形を最速で作る - Qiita
expressでEC2に構築済のサービスをLambdaに移行していきたかったので、役立ちました
AWS LambdaからIAM RoleのCredential情報を取得し、RedshiftのCOPY処理に利用する
結局毎回権限周りであれこれチグハグするので、こうした記事は大変助かります