狠狠撸

狠狠撸Share a Scribd company logo
スタートアップでも使える!
"ビッグデータ×リアルタイム処理"
導入事例
SUZUKI Kei
スタートアッフ?て?も使える!  ヒ?ック?テ?ータ×リアルタイム処理- 導入事例
鈴木圭
TECHSCORE 編集長
シナジーマーケティング
お話しすること
大規模 CRM システムに
"ビッグデータ × リアルタイム処理"
を導入するまでの取り組みをご紹介します。
コンテンツ
実現したこと
AWS を選ぶ理由
サービスの裏側
経験値を上げる
お金のはなし
実現したこと
AWS を選ぶ理由
サービスの裏側
経験値を上げる
お金のはなし
AWS を活用して実現したこと
エンドユーザの行動をトリガーとして、
リアルタイムにメール配信する機能を実現。
大量の行動履歴データに対して、
リアルタイムにセグメンテーションする。
実現したこと
AWS を選ぶ理由
サービスの裏側
経験値を上げる
お金のはなし
安いレンタルサーバで良いんじゃないの?
AWS なら実現できて、
レンタルサーバでは実現できないこと。
???なんてあるのか?
AWS を選ぶ理由
サーバ調達期間を大幅短縮できる。
負荷に応じてスケーリングしやすい。
数々のマネージドサービスが助けてくれる。
EC2, RDS, S3, Route53, VPC, CloudWatch,
ElastiCache, Kinesis, DynamoDB, SQS, EMR,
Lambda, API Gateway, CloudFormation,
Glacier, ELB, ...
実現したこと
AWS を選ぶ理由
サービスの裏側
経験値を上げる
お金のはなし
システム構成
AWS + On-Premises のハイブリッド構成
マイクロサービス気味にサービス分割
サービス間を API で繋ぐ
RESTful API でやりとり
クライアントライブラリを提供する
分散されたモノリス(Distributed Monolith)
デプロイ
今はバラバラなやり方をしている
Jenkins, Artifactory,
Ansible, Gradle, Cloud Formation
実現したこと
AWS を選ぶ理由
サービスの裏側
経験値を上げる
お金のはなし
基本的なこと
自動化する
障害が発生することを前提に作る
Cloud Design Pattern などのプラクティス
etc..
EC2 インスタンスが落ちる?
実は EC2 はピンピンしている
ネットワークの一時的な不調/障害
EC2 に対する死活監視が通信エラーになる
ネットワーク障害
リトライ処理しろ、冪等に作れって言うけれど??
?適切な ConnectTimeout, ReadTimeout を設定
?エラーになったら少し待ってからリトライ
?冪等にするにはデータを一意に識別するものが必要
本質は Key-Value ストアだ
Scan リクエストを減らすことが鍵
最初はキー検索しか無かったのに??
条件指定で検索する必要が出てきて辛くなった。
複雑な条件指定で検索する必要が出て RDS に変更。
簡単な条件=DynamoDB, 複雑な条件=RDS
前提が変わってもそれに合うサービスが提供されている。
DynamoDB
碍颈苍别蝉颈蝉で疎结合に繋ぐ(1/4)
碍颈苍别蝉颈蝉で疎结合に繋ぐ(2/4)
碍颈苍别蝉颈蝉で疎结合に繋ぐ(3/4)
碍颈苍别蝉颈蝉で疎结合に繋ぐ(4/4)
実現したこと
AWS を選ぶ理由
サービスの裏側
経験値を上げる
お金のはなし
コスト内訳
コストを下げる
EC2 のインスタンス数
EC2 のインスタンスタイプ
EC2 のリザーブドインスタンス
DynamoDB のキャパシティ指定
Kinesis のシャード数
RDS のインスタンス数
CloudWatch の監視間隔
etc..
コストをかける
サポートプランを上げた
(デベロッパーからビジネスに変更)
コストコントロールのポイント
ときどき見直す。
「今」に合わせて調整する。
まとめ
まとめ
IaaS としてのメリットは当然ある
各種マネージドサービスを活用する
巨人の肩に乗れたら勝ち

More Related Content

スタートアッフ?て?も使える! ヒ?ック?テ?ータ×リアルタイム処理- 導入事例