Mais conteúdo relacionado
Semelhante a aws seminer_so-net_public (20)
aws seminer_so-net_public
- 1. クラウド連携による BI 構築事例
www.so-net.ne.jp
April 6, 2011
ソネットエンタテインメント株式会社
サービス開発部
安田 崇浩
So-net Entertainment Corporation
Service Development Department
Takahiro YASUDA
Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 2. 本日の発表の概要
• 広告配信の事業を行っています
• この事業にとって BI(≒データ分析による意思決定) は重要です
• BIシステムの機能は、蓄積、分析、閲覧です
• 蓄積に Amazon Simple Storage Service (S3) を
分析に Amazon Elastic MapReduce を
閲覧に Salesforce Force.com のクラウドサービスを組み合わせて
システムを開発しました
2 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 3. 自己紹介
• 氏名: 安田 崇浩
• 所属: ソネットエンタテインメント株式会社 サービス開発部
• 最近の開発
• 2006-2009
• ブログ解析 のシステムを開発
• サービス名: 「Blog Keyword Visualizer」「近未来予報ツギクル」「バズク
ル」
• Amazon Web Services EC2 を活用
• 2010-2011
• 広告配信事業 の分析システムを開発
• サービス名: アドネットワーク 「TRUST CLICK」
• Amazon Web Services Elastic MapReduce, S3
Salesforce Force.com を活用
3 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 4. 会社紹介
■ 社名 ソネットエンタテインメント株式会社
■ 上場証券取引所 東証1部 (証券コード:3789)
■ 設立 1995年11月
■ サービス開始 1996年 1月
■ 株主 ソニーグループ 58.2%
(2010年9月末現在)
その他株主 41.8%
■ 資本金 79億65百万円 (2010年9月末現在)
■ 従業員数 445名 (単体 2010年12月末現在)
1,199名 (連結 2010年12月末現在)
4 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 5. 会社紹介
会社名 ソネット・メディア・ネットワークス株式会社
(英文表記: So-net Media Networks Corporation)
代表取締役 穂谷野 智
設立 平成12年3月21日
所在地 〒141-6009
東京都品川区大崎2丁目1番1号 ThinkPark Tower
tel. 03(5435)7930(代表) fax. 03(5435)7932
会社HP http://www.so-netmedia.jp/
事業内容 インターネットマーケティング事業
株主 ソネットエンタテインメント株式会社
持株比率 100%
5 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 7. 広告配信事業のデータ分析の重要性
• 広告を どのメディアサイトに、どのバナーを、どのくらいの量で、どの時
間帯に、どのようなユーザーに配信するか の設定が重要です
• この設定によって アドネットワークのパフォーマンス(クリック率、コン
バージョン率)が変化します
• 広告の配信ログを分析し、この設定を決めています
AD
AD
時間帯
AD AD
AD サイト
AD
AD AD
入稿 フリークエンシー 配信
AD
クリエイティブ
AD
AD
広告主様 広告配信設定
7 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 8. データ分析の要件
• 広告配信のデータ分析システムの要件は大きく3つ
• 蓄積
• 広告の配信ログを最低2年分を蓄積したい
• 分析
• 蓄積した広告配信ログに対して、集計、抽出など様々な分析を行い
たい
• 閲覧
• 広告配信の設定に役立てるために、分析結果をWebブラウザで閲覧
したい
8 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 9. 蓄積
9 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 10. 「蓄積」するデータの特徴
• 広告配信ログの特徴
• メディアサイトの ページビュー (PV) に比例して増加
• メディアサイトの数 : 約6,000
• 広告配信ログのサイズ
• 1日間のログのサイズ ( gzip 圧縮済み)
• 10 GByte / 日
• 2年間のログのサイズ
• 10 GByte x 365日 x 2年間 = 7.2 TByte
• ログのサイズは、増加傾向
10 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 11. 「蓄積」の要件と解決策
• 要件
• 2年間の広告配信ログ 7.2 TByte を保存したい
• クラウド利用前
• 10 TByteクラスの容量のストレージ製品が必要
• 初期投資: 数百万円~
• 運用費: 6U 以上のラックスペースによる運用が必要(数万円~)
• コストと効果のバランスが合わずストレージ製品は未導入
• 既存システムではログの一部の保存のみ実施
• 分析に制限が発生
• クラウド利用後
• 広告配信ログの保存先としてAmazon Simple Storage Service (S3) を利用
• 10 TByte の1カ月間の利用料金: 約1250 USD/month ≒ 10万円 / 月
• すべてのデータの分析が可能に
11 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 12. 「蓄積」S3
• AWS Simple Storage Service (S3) に保存して問題ないか?
• 個人情報
• 広告ログ配信データは広告主様やメディアサイト様の顧客情報などの個
人情報は含まない
• US の S3 サーバーに保存しても問題がないデータ
• 信頼性
• 可用性(availability): 99.99% をSLAにより保証
• 耐久性(durability): 99.999999999%
• アクセスコントロール
• ACL : ファイル単位のRead, Write権限の設定
• Bucket Policy : Bucket単位のRead, Write権限の設定, IPアドレス制限
• Identity and Access Management(IAM)
• 特定のアクセス権を持ったユーザーを任意に作成
12 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 13. 「蓄積」S3 の Region
• 利用している Region
• 「分析」でAWS Elastic MapReduce を利用しているため
US-East Region を利用
• アップロード時の転送速度
• 東京からUS-EastのS3へのアップロード速度は 約200 ~ 500Kbps
• 10 GByte のファイルをアップロードすると
10GByte x 8 bit / 500Kbps = 約 45 時間
• Tips: 同時接続してもアップロード速度は変わらない
13 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 14. 「蓄積」アップロード方法
• アップロード方法
• ファイルを一定のサイズに分割
• 合計10GByte のファイルを 50MByte x 200個 に分割 AWS S3
• 同時接続でアップロード Upload
• JetS3t Toolkit を利用し、
分割
同時10接続でアップロード
• アップロード処理時間
• 50MByte x 8bit / 0.2 ~ 0.5Mbps x 200個 / 同時10接続 = 約4.5 ~ 11時間
• エラー処理
• HTTP エラーは、少なくない割合で発生
• リトライ処理の実装が重要。JetS3t Toolkit のリトライ実装を利用
14 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 15. 「蓄積」S3 の URL 設計
• ログファイルのS3のURL設計
• スラッシュ / で区切り、日付で階層化
• AWS Management Console, S3Fox で閲覧する際に便利
• 例
• http://foo-bucket/title=bar/year=2011/month=01/day=01/001.gz
• http://foo-bucket/title=bar/year=2011/month=01/day=01/002.gz
• Amazon Elastic MapReduce の入力として URL prefix と ワイルドーカー
ドが利用可能
• 年単位, 月単位, 日単位の入力が容易
• 例
• http://foo-bucket/title=bar/year=2011/*/*
• http://foo-bucket/title=bar/year=2011/month=01/*
15 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 16. 「分析」
16 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 17. 「分析」の要件
• 広告の配信ログのサイズ
• 1日: 10 GByte, 2年間: 7.2 TByte
• 分析の要件は大きく2つ
• 大量のデータの集計
• 統計解析ツール、データマイニングツールで解析が難しいサイズの
集計
• 例
• 数ヶ月間以上のユニークユーザー数など
• ツール向けのデータ抽出
• 統計解析ツール、データマイニングツール向けに条件を指定して、
データを抽出
17 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 18. 「分析」の実行環境の検討
• 7.2 TByte のデータをREAD するとどのくらいの時間がかかるか?
• HDD の読み取り速度 : 50MByte/秒
• 7.2TByte ÷ 50 MByte/秒 = 40時間
• 大容量データの解析
• MapReduce
• コンピューター機器のクラスター上で、巨大なデータセットに対し
分散並列処理を行うのを支援する目的で、Googleによって考案さ
れたソフトウェアフレームワーク。(Wikipedia より)
• MapReduce の実行環境
• Apache Hadoop
• Apache の Open Source Project
• AWS Elastic MapReduce
• Amazon の Web Service
18 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 19. 「分析」Apache Hadoop と AWS EMR
Apache Hadoop AWS EMR
形態 Open Source Project Web Service
サーバーリソース 自前で構築したクラスタの On Demand で AWS の
サーバーリソース サーバーリソースを利用
初期費用 クラスタ構築サーバー費 なし
運用費用 サーバー運用費 AWS EMR, S3 の利用料
入出力のストレー HDFS AWS Simple Storage
ジ Service(S3)
19 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 20. 「分析」入出力のストレージの比較検討
Apache Hadoop AWS EMR
入出力のストレージ HDFS AWS Simple Storage Service(S3)
• HDFS
• 自前で構築したクラスタ環境で動作する分散ファイルシステム
• ファイル管理する部分に単一障害点がある
• AWS Simple Storage Service (S3)
• インターネット用のストレージサービス
• 低コスト、高可用性(availability)、高耐久性(durability)
• 検討結果
• HDFS は、自社の運用経験が少ないためファイル損失の恐れあり
• HDFS を利用する場合、別のストレージ製品にファイルの保存の必要があ
ると判断
• データの性質や S3 の機能から AWS S3 上に保存しても問題ないと判断
20 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 21. 「分析」利用環境の比較
Apache Hadoop AWS EMR
サーバーリソース 自前で構築したクラスタの On Demand で AWS の
サーバーリソース サーバーリソースを利用
初期費用 クラスタ構築サーバー費 なし
運用費用 サーバー運用費 AWS EMR, S3 の利用料
• 状況
• MapReduce の処理が決まっておらず、必要なサーバー台数が不明
• 検討結果
• 数台-100台超まで柔軟にサーバー数を利用可能な AWS EMR を使用
• 現在のAWS EMR の利用状況
• 1時間毎 2台使用の処理から1ヵ月毎 80台使用の処理まで様々
• 利用するサーバー数にバラつきがあり、結果的に AWS EMR に向き
21 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 22. AWS EMR の所感
• 良い点
• MapReduce処理のサーバー数にバラつきがある場合、コストが最適化され
る
• Hadoop クラスタを構築、運用するインフラエンジニアが不要
• 集計処理ごとにコストが算出できるので、費用対効果がわかりやすい
• Reduce 処理でメモリ不足のエラーが発生した場合、メモリの大きいインス
タンスタイプに変更することで暫定対応が可能
• 悪い点
• サーバーリソースのモニタリング機能がないため、パフォーマンスチューニ
ングが難しい
• 現場の判断で EMR を実行しているため、月額の予算をオーバーすること
がある
• 開発時のデプロイと実行に時間がかかり、開発サイクルが少し遅い
22 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 23. 「蓄積」と「分析」の連携
23 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 24. 「蓄積」と「分析」の連携
• 要件
• 広告配信ログを S3 にアップロードした後に、
そのログを入力とするMapReduce 処理を起動したい
• 解決策
• AWS Simple Queue Service (SQS) を利用
24 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 25. 「蓄積」と「分析」の連携
• AWS Simple Queue Service (SQS)
• AWS の Queue サービス
• 短い文字列のMessage を登録、参照、削除ができる
• 厳密なFIFO(First In First Out) ではない
• AWS Elastic MapReduce へ通知方法
• アップロードしたファイルの URL を Message として Queue に登録
• Queue を定期的に参照するバッチを実装
• Queue から参照した message に応じて、
AWS Elastic MapReduce を起動
25 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 26. 「蓄積」と「分析」の連携の流れ
1. 2011/1/1 のログファイルを AWS
S3 にアップロード
• http://foo-
bucket/title=bar/year=2011/month=
01/day=01/001.gz
2. AWS SQS に message を登
• “http://foo-
bucket/title=bar/year=2011/mont
h=01/day=01/001.gz”
3. SQS から message を取得 (polling)
4. 2011/1/1 のユニークユーザーを
集計する AWS EMR の処理を起動
26 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 27. 閲覧
27 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 28. 「閲覧」の要件
• 要件
• 社員が利用する業務アプリケーション
• AWS Elastic MapReduce (EMR) で処理した結果を Web ブラウザで
表示
• 表示形式は、グラフ、表
• テータの閲覧権限の管理
• 広告配信の設定画面との連携
• 実装方法
• Salesforce Force.com を利用
28 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 29. 「閲覧」Force.com
• Salesforce Force.com
• PaaS 型のクラウドサービス
• インフラ、データベース、インテグレーション、ロジック、ユーザーイン
ターフェースといった、クラウドコンピューティングモデルのアプリ
ケーション開発に必要とされる要素を備えている (Wikipedia より)
• 採用した目的
• 業務アプリケーションの開発生産性の高さ
• 認証、認可の機能の実装コストの削減
• アプリケーションサーバー, 認証サーバーの運用コスト削減
29 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 30. 「閲覧」Force.com と AWS S3 のデータ連携
• 当初の設計方針
• AWS EMR が出力した AWS S3 上のデータを定期的に Force.com の DB
へインポート
• Force.com の DB のデータをレポート機能を利用して、グラフ表示
• Force.com の DB と容量の問題
• 初期データベースの空き容量は 1 GByte
• 1レコードで 約 2 KByte 消費, 約 50 万レコード で 1 GByte 消費
• データベースの容量追加コスト と 想定利用容量 のバランスが合わず
30 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 31. 「閲覧」Ajax の利用
• 問題
• Force.com の DB を利用せず AWS S3
のデータを表示できないか?
• 解決策
• Ajax を利用
• JavaScript で
AWS S3 のデータを取得し、表示
• 良い点
• Force.com の 追加DB を利用しないことによるコスト抑制
• 認証、ページのアクセス権の管理は Force.com の機能を利用
• AWS IAM を利用し、 IP アドレス によるアクセス制限が厳密に
• 悪い点
• Force.com の レポート機能が利用できない
• クロスドメイン問題 : saleseforce.com と s3.amazonaws.com
31 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 32. 「閲覧」AWS Access Key, Secret Key の管理
• 問題
• AWS Access Key, Secret Key の管理をどうするか ?
• AWS Access Key, Secret Key
AWS S3, SimpleDB, SQS 等に Read, WriteするためのID, Password
• Force.com に AWS から発行された Access Key, Secret Key を配置したく
ない
• 解決策
• AWS Identity and Access Management (IAM) を利用し、必要な権限のみ
保持したAccess Key, Secret Key を作成
• AWS Identity and Access Management (IAM)
• ユーザーの追加, アクセスリソース(S3 bucket)の制限, アクセス条件
(Read/Write, IPアドレス, アクセス時間)の制限など
• 例: 社内IPアドレスから S3 foo-bucket の Read のみ可能なユーザー
32 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 33. 「閲覧」AWS Access Key, Secret Key in Force.com
• 次の権限を持ったAWS Access Key, Secret Key を AWS IAM で作成
• 社内のIPアドレス:202.0.113.0 から AWS S3 “foo-bucket” への Read 権限
• もし漏洩した場合、同じ社内の誰かからアクセスされる恐れ
• Secret Key はForce.com のロジック内で Hash 化
33 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 34. 「閲覧」ID, Password
• Force.com から AWS S3 へアクセスする設計の場合
• 次の権限を持ったAWS Access Key, Secret Key を AWS IAM で作成
• Force.com の IP Address Range:202.0.113.0/24 から
AWS S3 “foo-bucket” への Read 権限
• もし漏洩した場合、他の Force.com ユーザーからアクセスされる恐れ
34 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 35. まとめ
35 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 36. 「蓄積」のまとめ
• AWS Simple Storage Service (S3) を利用して、広告配信ログを「蓄積」
• 分割し、並列でアップロード
36 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 37. 「分析」まとめ
• AWS Elastic MapReduce を利用して「分析」機能を実装
• AWS Simple Queue Service(SQS) を利用して
S3 へアップロード後に AWS EMR を起動
37 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 38. 「閲覧」まとめ
• Salesforce Force.com を利用して「閲覧」機能を実装
• Ajax を利用し AWS EMR の出力データを Force.com の画面に表示
38 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 39. まとめ
• 広告配信ログのBIシステムを AWS S3, EMR, Salesforce Force.com を
組み合わせて構築しました
• AWS Simple Storage Service(S3), Elastic MapReduce (EMR)
• 大規模データを分析するシステム開発としては取り組みやすい
• 運用コストが低い
• Salesforce Force.com
• 業務アプリケーションの機能が揃っており開発速度は速い
• 技術サポートの対応が早い
• 運用コストが低い
• 様々なクラウドサービスの良い点を組み合わせることで、
要件にあったシステムを開発できる
39 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.
- 40. END
40 Copyright © 2011 So-net Entertainment Corporation, All rights reserved.