Successfully reported this slideshow.

デブサミ2013【14-D-6】Yahoo! JAPANの新しいクラウドストレージサービス~Yahoo! JAPANがRiakを選んだ理由とは?~

2,716 views

Published on

ヤフー株式会社は、KVSで注目されている「Riak」を採用したクラウドストレージサービスを提供しています。
本サービスでは、Yahoo! JAPANの圧倒的なITリソース、テクノロジーを低価格で手間なく簡単に利用することができます。
また、スケールメリットを享受いただくことで、トータルでのコスト削減に大きく貢献し、ビジネスの発展を強力にサポートします。
本セッションでは、「Riak」のインストールから構築方法まで、デモを交えて解説します。さらに、「Riak」の最新プロダクトトピックやユーザー事例もご紹介します。

Published in: Technology
  • Be the first to comment

デブサミ2013【14-D-6】Yahoo! JAPANの新しいクラウドストレージサービス~Yahoo! JAPANがRiakを選んだ理由とは?~

  1. 1. Yahoo! JAPANの新しいクラウドストレージサービス JAPANの JAPANがRiakを んだ理由とは?~ 理由とは ~Yahoo! JAPANがRiakを選んだ理由とは?~ ヤフー株式会社 マーケティングソリューションカンパニー 新規事業本部 阪田 浩隆 2013年2月14日(木)
  2. 2. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 1 自己紹介
  3. 3. 氏名:阪田 浩隆(さかた ひろたか) 入社年:2004年10月 担当業務実績: - 社内認証システム開発 - ビジネス系認証システム開発 - 社内ツール系開発 - 分散KVS 開発・保守・運用 - オブジェクトストレージ 開発 現在:Riak開発部隊(Yahoo! JAPAN内)2 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  4. 4. • アジェンダ • Yahoo! JAPANを支える技術 • KVS • データレプリケーション • オブジェクトストレージ • Riak概要 • Product一覧 • アーキテクチャ概要 • インストールから起動まで • Riak EDS • Riak CS • 簡易デモ • Yahoo! JAPANの新しいクラウドストレージ • なぜRiakを選んだのか3 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  5. 5. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 417年のKVSの歴史がある 実はYahoo! JAPANには
  6. 6. 創業当時(1996年)から、 データを扱うプラットフォームとして 分散KVSを使用している ※当時はまだクライアントサーバーシステムが主流であり、現在のWebが主流 のスタイルではなかった • 独自開発 • 大規模データ • 例)ユーザーデータ • 分散処理 • スケールアウト • 複数DCでのデータレプリケーション5 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  7. 7. Yahoo! JAPANの技術 • 独自の技術で基盤を構築している • Yahoo! Inc.とYahoo! JAPANで開発したコアテクノロジー を元に、強靭な基盤を築いている • このテクノロジーを利用して、 Yahoo! JAPANのサービスは成り立っている6 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  8. 8. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 7。すまりあがとこるな異は示表の際実。すでルプンサは面画 Yahoo! JAPANの技術
  9. 9. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 8。すまりあがとこるな異は示表の際実。すでルプンサは面画 Yahoo! JAPANコアテクノロジー Yahoo! JAPANの技術
  10. 10. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 9。すまりあがとこるな異は示表の際実。すでルプンサは面画 KVS Yahoo! JAPANコアテクノロジー Yahoo! JAPANの技術
  11. 11. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 10。すまりあがとこるな異は示表の際実。すでルプンサは面画 CDN 広告技術 KVS Yahoo! JAPANコアテクノロジー 課金システム 認証システム Yahoo! JAPANの技術
  12. 12. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 11。すまりあがとこるな異は示表の際実。すでルプンサは面画 CDN 広告技術 RDBMS KVS ストレージ Yahoo! JAPANコアテクノロジー 課金システム 認証システム Yahoo! JAPANの技術
  13. 13. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 12。すまりあがとこるな異は示表の際実。すでルプンサは面画 CDN 広告技術 RDBMS KVS ストレージ 強靭なコアテクノロジー Yahoo! JAPANコアテクノロジー 課金システム 認証システム Yahoo! JAPANの技術
  14. 14. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 13データレプリケーションシステム Yahoo! JAPANの
  15. 15. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 14 • スケールアウト • 独自開発 す データレプリケーションシステムが存在しまYahoo! JAPANには
  16. 16. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 15 KVS 例えば
  17. 17. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 16 →負荷分散が必要 KVS・どこかのサービスが負荷をかけると全体に影響する →レイテンシが問題になる・フロントサーバーがDCをまたがる構成になった場合 発生する問題
  18. 18. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 172.負荷分散1.レイテンシ問題の解決レプリケーションにより KVS DC 3 KVS KVS DC 1 DC 2 データレプリケーション
  19. 19. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 18 オブジェクトストレージYahoo! JAPANにおける
  20. 20. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 19 • データレプリケーション • スケールアウト • 独自開発オブジェクトストレージが存在します 実はYahoo! JAPANには・・・
  21. 21. • 開発コンセプト(2009年7月開発スタート) • 容量無制限 • 無限にスケールアウトする • 安価 • とにかく利用価格を安くする • データの集中管理 • 集中管理する事で無駄をなくし、コスト削減を徹底する • 使いやすいI/F • REST形式のAPIを提供 • 高パフォーマンス • 可用性20 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  22. 22. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 21。すまりあがとこるな異は示表の際実。すでルプンサは面画 Yahoo!ロコ プレイス • Yahoo!ブックストア • Yahoo!天気・災害 • Yahoo!ボックス • Yahoo! JAPAN内での利用実績(一部ご紹介)
  23. 23. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 22• 数PBのデータが格納されている• サーバー台数が数千台に達している 数TB/day のアップロードを受けている• Yahoo!ボックスサービス開始から 実際のトラフィック
  24. 24. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 23 KVS KVS ・・・・ KVS ・・・・ 独自KVS ・・・・ ・・・・ストレージエンジン Farm Farm データ Farm メタ API用使未はでスクッボ!oohaY※CDN(大容量配信) アプリケーション アーキテクチャ
  25. 25. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 24 • 変更する理由は後ほど 更予定です り提供開始しましたが、より良いアーキテクチャへ変• Yahoo!クラウド ストレージとして、2012年9月初旬よ Yahoo!クラウド ストレージとして提供
  26. 26. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 25 Riak概要
  27. 27. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 26 Product一覧
  28. 28. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 27• クラスタ間レプリケーションが可能 • 複数クラスタの構築が可能 • エンタープライズ版のRiak • Riak EDS • 単一クラスタの構築が可能 • OSS版のKVSエンジン • Riak
  29. 29. • Riak CS • オブジェクトストレージ • Object(ファイル)はRiak / Riak EDSに保 存される • Riak / Riak EDSが無いと動作しない • 機能としてはAPIの役割を果たす • 認証 • 大容量ファイルの分割配置など28 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  30. 30. • コンポーネント一覧 コンポーネント名 コンポーネント名 役割 OSS 有償 Riak 分散型KVSエンジン ○ Riak EDS 分散型KVSエンジン ○ クラスタ間レプリケーションが可能 Riak CS オブジェクトストレージAPI ○ Stanchion リクエストシリアライズ管理API ○29 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  31. 31. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 30Riakアーキテクチャ概要
  32. 32. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 31 Riak Cluster基本構成 Riak
  33. 33. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 32 Riak Clusterデータを冗長化して保持 &コンシステントハッシュでデータを格納 Riak
  34. 34. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 33 Riak Cluster Client サービス継続 ※ダウンしても他のノードが各ノードが全てAPI Riak
  35. 35. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 34 Cluster B replication Cluster A Riak Riakクラスタ間のレプリケーションが可能 Riak EDS(有償版)
  36. 36. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 35 Cluster B replication Cluster A Riak RiakProxy Proxy通常の使用方法 Riak EDS
  37. 37. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 36 Stanchion Cluster Riak ・・・・・・・・・・・・ Riak CS Cluster基本構成 Riak CS
  38. 38. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 37 Cluster B Cluster A Riak Riak replicationRiak CS Riak CS ・・・・ ・・・・ Stanchion Proxy Proxy通常の使用方法 Riak CS
  39. 39. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 38インストール方法
  40. 40. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 39 • レプリケーションの設定 • クラスタの構築 • 1nodeの構築インストールから起動まで Riak / Riak EDS
  41. 41. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 40 • 起動 • 設定ファイルの編集 • インストール • パッケージダウンロード • 作業の流れ
  42. 42. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 41• お使いの環境に合わせてダウンロードしてください• http://basho.com/resources/downloads/ • 以下のサイトからダウンロード • パッケージダウンロード • 1nodeの構築
  43. 43. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 42$ sudo yum install riak-1.2.1-1.el6.x86_64.rpm CentOS 6の環境でインストールする場合 • インストール • 1nodeの構築
  44. 44. • 1nodeの構築 • 設定ファイル編集 その1 $ sudo vi /etc/riak/app.config ローカルに環境がある場合は、 設定ファイルの編集は、特には不要。 ネットワーク環境にある場合で、 IPアドレスが指定されている場合は、以下を編集 {http, [ {"127.0.0.1", 8098 } ]}, ↓ {http, [ {“独自環境のIPアドレス", 8098 } ]},43 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  45. 45. • 1nodeの構築 • 設定ファイル編集 その2 $ sudo vi /etc/riak/vm.args ローカルに環境がある場合は、 設定ファイルの編集は、特には不要。 ネットワーク環境にある場合で、 IPアドレスが指定されている場合は、以下を編集 -name riak@127.0.0.1 ↓ -name riak@独自環境のIPアドレス44 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  46. 46. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 45 $← この表示が出ることを確認 pong $ riak ping • 確認 その1 特に、何もレスポンスはありません $ riak start • 起動 • 1nodeの構築
  47. 47. • 1nodeの構築 • 確認 その2 $ sudo riak-admin member_status ================================= Membership ================================= •Status その1 Pending Node 確認 Ring --------------------------------- valid 100.0% -- ‘riak@127.0.0.1 --------------------------------- Valid:1 / Leaving:0 / Exiting:0 / Joining:0 / Down:0 ↑ この表示が出ることを確認46 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  48. 48. • 1nodeの構築 • 確認 その3 $ sudo riak-admin ring_status ============= Claimant ============= Claimant: ‘riak@127.0.0.1 Status: up •Ring Ready: true 確認 その1 ========= Ownership Handoff ========== No pending changes. ========= Ownership Handoff ========== All nodes are up and reachable ↑ この表示が出ることを確認47 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  49. 49. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 48 このコマンドで、表示確認 ↑ $ sudo riak-admin member_status • 確認$ riak-admin cluster join riak@[IPアドレス] • 設定(コマンド) • クラスタの構築
  50. 50. • レプリケーションの設定(有償版のみ) • 設定ファイル編集 $ sudo vi /etc/riak/app.config レプリケーション設定(以下 サンプル)を追加反映 {riak_repl, [ {fullsync_on_connect, true}, {fullsync_interval, 360}, {data_root, “/var/lib/riak/riak_repl"}, {queue_size, 104857600}, {server_max_pending, 5}, {client_ack_frequency, 5} ]},49 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  51. 51. • レプリケーションの設定(有償版のみ) • レプリケーション設定 $ riak-repl add-listener ‘riak@自分自身のIP’ ‘自分自身のIP’ 9010 コマンド実行後は、特に何も出力しません $ riak-repl add-site ‘同期先のIP’ 9010 クラスタ名 コマンド実行後は、特に何も出力しません50 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  52. 52. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 51 このコマンドで、表示確認 ↑ $ riak-repl status • 確認• レプリケーションの設定(有償版のみ)
  53. 53. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 52 コマンド実行後は、特に何も出力しません $ riak-repl start-fullsync • 同期開始• レプリケーションの設定(有償版のみ)
  54. 54. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 53どの場面で利用するのが良いのか
  55. 55. • 高速にデータアクセスさせたい場合 • 集合から単一データを高速に取得したい場合 • 将来的にデータ件数/容量が増える事 が確実である場合 • スケールアウトが必須の場合 • 運用コストを軽減したい場合 • システムが巨大化してしまい、運用コスト軽減を検討 したい • サーバー、人件費の両方54 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  56. 56. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 55 • Riakとの接続設定 • Stanchionの構築 • 1nodeの構築インストールから起動まで Riak CS
  57. 57. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 56 • 起動 • 設定ファイルの編集 • インストール • パッケージダウンロード • Riak CS/Stanchion • 作業の流れ
  58. 58. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 57 • 有償版のみ • パッケージの種類
  59. 59. • Riak CSの構築 • 1nodeの構築 • パッケージダウンロード • 開発トライアル登録後、ダウンロードURLが案内される • インストール CentOS 6の環境でインストールする場合 $ sudo yum install riak-cs_1.2.0.el6.x86_64.rpm58 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  60. 60. • 設定ファイル編集 $ sudo vi /etc/riak-cs/app.config ローカルに環境がある場合は、 設定ファイルの編集は、特には不要。 ネットワーク環境にある場合で、 IPアドレスが指定されている場合は、以下を編集 {cs_ip, "127.0.0.1"}, ↓ {cs_ip, "独自環境のIPアドレス"},59 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  61. 61. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 60{stanchion_ip, “独自環境のIPアドレス"}, ↓{stanchion_ip, “127.0.0.1"}, {riak_ip, "独自環境のIPアドレス"}, ↓ {riak_ip, "127.0.0.1"},
  62. 62. • 設定ファイル編集 $ sudo vi /etc/riak-cs/vm.args ローカルに環境がある場合は、 設定ファイルの編集は、特には不要。 ネットワーク環境にある場合で、 IPアドレスが指定されている場合は、以下を編集 -name riak@127.0.0.1 ↓ -name riak@独自環境のIPアドレス61 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  63. 63. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 62 pong $ sudo riak-cs ping • 確認 ok $ sudo riak-cs start • 起動
  64. 64. • Stanchionの構築 • 1nodeの構築 • パッケージダウンロード • Riak-CSと同じです • インストール CentOS 6の環境でインストールする場合 $ sudo yum install stanchion-1.0.1-1.el6.x86_64.rpm63 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  65. 65. • 設定ファイル編集 $ sudo vi /etc/stanchion/app.config ローカルに環境がある場合は、 設定ファイルの編集は、特には不要。 ネットワーク環境にある場合で、 IPアドレスが指定されている場合は、以下を編集 {stanchion_ip, "127.0.0.1"}, ↓ {stanchion_ip, "独自環境のIPアドレス"},64 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  66. 66. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 65 {anonymous_user_creation, true}, ↓ {anonymous_user_creation, false}, {riak_ip, "独自環境のIPアドレス"}, ↓ {riak_ip, "10.1.1.192"},
  67. 67. • 設定ファイル編集 $ sudo vi /etc/stanchion/vm.args ローカルに環境がある場合は、 設定ファイルの編集は、特には不要。 ネットワーク環境にある場合で、 IPアドレスが指定されている場合は、以下を編集 -name stanchion@127.0.0.1 ↓ -name stanchion@独自環境のIPアドレス66 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  68. 68. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 67 pong $ sudo stanchion ping • 確認 ok $ sudo stanchion start • 起動
  69. 69. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 68 • テストファイルの配置 • 管理ユーザの作成• コマンドラインからの確認
  70. 70. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 69 デモRiak CSを使った
  71. 71. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 70 Riak Clusterマウント APIコール Webサーバー(投稿)Webサーバー(閲覧画面) • サムネイル作成 • エンコード ロード アップ デモの概要
  72. 72. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 71実際の導入事例
  73. 73. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 72画像配信Riak CSで • LOHACO(アスクル様) 導入事例1
  74. 74. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 73 Riak EDS Cluster 2 Riak EDS Cluster 1 レプリケーション Cluster Cluster Riak CS Riak CS障害発生時のみ CDN システム構成
  75. 75. データ • 登録件数 • 約20万件弱 (データ移行は3時間程度) • ファイルの種類/サイズ • 画像データ • 5k~500k • リクエスト数 • 450req/sec • CDNキャッシュヒット率 • 97% • レスポンス • 10ms~80ms (CDNにキャッシュされている状態だと10ms程度)74 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  76. 76. 構築~リリースまでの期間 • 構成検討、各種調整(NW、サーバー調達) • 1週間 • 構築&テスト・リリース • 構築:1日 • テスト&リリース:1週間 問題になったところ • データをフラットに配置したところ、 一覧取得できなくなった • 解決策:ディレクトリを分けてもらった75 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  77. 77. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 76新しいクラウドストレージ Yahoo! JAPANの
  78. 78. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 77Yahoo! JAPANの新しいクラウドストレージRiak CSを利用しての
  79. 79. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 78本番サービス開始(予定) • 2013年4月先行リリース • 2013年1月トライアルリリース • 2012年10月 • スケジュール
  80. 80. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 79なぜRiakを選んだのか
  81. 81. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 80スで管理していくのは困難だったC向け、B向けで求められる機能が違うため、全てを1ソー •かった独自のオブジェクトストレージでは全てに対応できな • 求められる機能の違い
  82. 82. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 81だったが、時間を節約したかった独自のオブジェクトストレージを改修する事も可能 •かったS3のユーティリティをそのまま流用したい旨のニーズが多 • ユーザーニーズに早急に応える必要があった •S3互換のオブジェクトストレージが必要だった
  83. 83. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 82要ただしサーバー台数が増えた時にどうするのか検討が必 • なっている KVS単体でもストレージエンジンになりえるように • KVSがストレージエンジンになる
  84. 84. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 83 サーバー追加が容易 • 設定が項目が少ない • コンポーネント数が少ない •運用コストがかからないような構成になっている • 運用コスト削減
  85. 85. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 84 +一緒に開発できそうな人たちだった •レクトに活かせそうなアーキテクチャだったYahoo! JAPANで培ったKVSのノウハウを、ダイ
  86. 86. Action!カード 今回のDevelopers Summitのテーマは「Action!」 • 共感から行動へ、「デベロッパーは未来を作っている。世の中をエコでスマート な社会にするために、デベロッパーは誇りを持って、行動しよう!」 • セッション後のAction!をレコメンド! • メッセージ • 「世界に5つのコンピュータ」 インフラを意識させないインフラを作ろう • おすすめのコミュニティ • Riak Meetup • おすすめの本 • プログラミングErlang85 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C
  87. 87. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 86 に5つの させない 世界に コンピューター コンピューター インフラを インフラを 意識させない インフラを作ろう インフラをアンケートと引き換えに、ノベルティプレゼント!
  88. 88. 止 禁 載 転 ・ 用 引 断 無 . d e v r e s e R s t h gi R ll A . n oi t a r o p r o C n a p a J o o h a Y 3 1 0 2 © t h gi r y p o C 87ご清聴ありがとうございました

×