riak事始め&デモ
DESCRIPTION
2013年3月12日(火)、Yahoo! JAPANにて、Bashoジャパン株式会社主催の「Riak Meetup Tokyo」が開催されました。その中でのYahoo! JAPANからの発表です。TRANSCRIPT
Ri k事始め&デモRiak事始め&デモ
ヤフー株式会社
マーケティングソリューションカンパニー 新規事業本部
阪田 浩隆
2013年3月12日(火)2013年3月12日(火)
自己紹介
1Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
氏名:阪田 浩隆(さかた ひろたか)
入社年:2004年10月
担当業務実績:担当業務実績:
- 社内認証システム開発
- ビジネス系認証システム開発
- 社内ツール系開発- 社内ツール系開発
- 分散KVS 開発・保守・運用
- オブジェクトストレージ 開発
現在:Riak開発部隊(Yahoo! JAPAN内)現在:Riak開発部隊(Yahoo! JAPAN内)
2Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
アジェンダ
1. インストールから設定・起動まで• Riak / Riak EDS• Riak / Riak EDS
• Riak CS
2. Riak EDSを使ったデモ• コマンドラインからのデータ登録/参照• コマンドラインからのデータ登録/参照
3. どの場面で利用するのが良いのか
4. Riak CSを使ったデモウント機能を使 た動画投稿• マウント機能を使った動画投稿
3Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Riak / Riak EDSインストールから起動まで
• 1nodeの構築1nodeの構築• クラスタの構築
レプリケ ションの設定• レプリケーションの設定
4Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 作業の流れ
• パッケージダウンロード
• インストール
設定フ イルの編集• 設定ファイルの編集
起動• 起動
5Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• パッケージの種類
• OSS版
•1クラスタ構成の構築が可能
有償版• 有償版
•マルチクラスタ構成の構築が可能•マルチクラスタ構成の構築が可能
6Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 1nodeの構築•パッケージダウンロード
以下のサイトからダウン ド• 以下のサイトからダウンロード• http://basho.com/resources/downloads/
• お使いの環境に合わせてダウンロードしてください
7Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 1nodeの構築•インストールC tOS 6の環境でインスト ルする場合CentOS 6の環境でインストールする場合
$ sudo yum install riak-1 2 1-1 el6 x86 64 rpm$ sudo yum install riak 1.2.1 1.el6.x86_64.rpm
8Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 1nodeの構築•設定ファイル編集 その1
$ d i / t / i k/ fi$ sudo vi /etc/riak/app.config
ローカルに環境がある場合はロ カルに環境がある場合は、設定ファイルの編集は、特には不要。
ネットワーク環境にある場合で、IPアドレスが指定されている場合は、以下を編集
{http, [ {"127.0.0.1", 8098 } ]},↓↓
{http, [ {“独自環境のIPアドレス", 8098 } ]},
9Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 1nodeの構築•設定ファイル編集 その2
$ d i / t / i k/$ sudo vi /etc/riak/vm.args
ローカルに環境がある場合はロ カルに環境がある場合は、設定ファイルの編集は、特には不要。
ネットワーク環境にある場合で、IPアドレスが指定されている場合は、以下を編集
-name [email protected]↓↓
-name riak@独自環境のIPアドレス
10Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 1nodeの構築•起動
$ riak start特に、何もレスポンスはありません
•確認 その1確$ riak pingpong ← この表示が出ることを確認$
11Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 1nodeの構築•確認 その2
$ sudo riak-admin member_status================================= Membership
•確認 その1
Membership =================================Status Ring Pending Node確Status Ring Pending Node---------------------------------valid 100.0% -- ‘[email protected]'---------------------------------Valid:1 / Leaving:0 / Exiting:0 / Joining:0 / Down:0
↑この表示が出ることを確認
12Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
この表示が出ることを確認
• 1nodeの構築•確認 その3
$ sudo riak-admin ring_status============= Claimant ============= Claimant: ‘riak@127 0 0 1'
•確認 その1
Claimant: [email protected]: upRing Ready: true確Ring Ready: true========= Ownership Handoff ==========No pending changes.========= Ownership Handoff ==========All nodes are up and reachable
↑この表示が出ることを確認
13Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
この表示が出ることを確認
• クラスタの構築
• 設定(コマンド)
確認
$ riak-admin cluster join riak@[IPアドレス]
• 確認$ sudo riak-admin member status$ sudo riak admin member_status
↑このコマンドで、表示確認
14Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• レプリケーションの設定(有償版のみ)
• 設定ファイル編集$ sudo vi /etc/riak/app.config
レプリケ シ ン設定(以下 サンプル)を追加反映レプリケーション設定(以下 サンプル)を追加反映
{riak repl [{riak_repl, [{fullsync_on_connect, true},{fullsync_interval, 360},{ y _ , },{data_root, “/var/lib/riak/riak_repl"},{queue_size, 104857600},{ di 5}{server_max_pending, 5},{client_ack_frequency, 5}
]}
15Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
]},
• レプリケーションの設定(有償版のみ)
• レプリケーション設定$ riak-repl add-listener ‘riak@自分自身のIP’
‘自分自身のIP’ 9010ンド実行後は 特に何も出力しませんコマンド実行後は、特に何も出力しません
$ riak-repl add-site ‘同期先のIP’ 9010 クラスタ名コマンド実行後は 特に何も出力しませんコマンド実行後は、特に何も出力しません
16Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• レプリケーションの設定(有償版のみ)
• 確認$ riak-repl status
↑↑このコマンドで、表示確認
17Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• レプリケーションの設定(有償版のみ)
• 同期開始$ riak-repl start-fullsyncコマンド実行後は、特に何も出力しません
18Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Riak EDSを使ったデモ
19Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• データの登録/参照
•スクリプトでのデモ
デ タの登録• データの登録
• 参照参照
20Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
クライアント
YJTEST91YJTEST81
YJTEST82YJTEST92
レプリケーション
YJTEST83YJTEST93
YJTEST84
クラスタ2クラスタ1
21Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
どの場面で利用するのが良いのか
22Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 高速にデータアクセスさせたい場合• 集合から単一データを高速に取得したい場合
• 将来的にデータ件数/容量が増える事が確実である場合• スケ ルアウトが必須の場合• スケールアウトが必須の場合
• 運用コストを軽減したい場合システムが巨大化してしまい 運用コスト軽減を検討• システムが巨大化してしまい、運用コスト軽減を検討したい
サ バ 人件費の両方• サーバー、人件費の両方
23Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Riak CSRiak CSインストールから起動まで
1 d 構築• 1nodeの構築• Stanchionの構築Stanchionの構築• Riakとの接続設定
24Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• 作業の流れ
• Riak CS/Stanchion
•パッケージダウンロード
インスト ル•インストール
•設定ファイルの編集設定ファイルの編集
•起動
25Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• パッケージの種類
• 有償版のみ
26Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• Riak CSの構築
• 1nodeの構築
•パッケージダウンロード• 開発トライアル登録後、ダウンロードURLが案内される発 後
•インストールCentOS 6の環境でインストールする場合CentOS 6の環境でインスト ルする場合
$ sudo yum install riak-cs_1.2.0.el6.x86_64.rpm
27Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
•設定ファイル編集
$ sudo vi /etc/riak-cs/app.config
ローカルに環境がある場合は、設定ファイルの編集は、特には不要。
ネットワーク環境にある場合で、IPアドレスが指定されている場合は、以下を編集IPアドレスが指定されている場合は、以下を編集
{cs_ip, "127.0.0.1"},↓
{cs_ip, "独自環境のIPアドレス"},
28Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
{riak_ip, "127.0.0.1"},↓↓
{riak_ip, "独自環境のIPアドレス"},
{stanchion_ip, “127.0.0.1"},↓↓
{stanchion_ip, “独自環境のIPアドレス"},
29Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
•設定ファイル編集$ sudo vi /etc/riak-cs/vm.args
ロ カルに環境がある場合はローカルに環境がある場合は、設定ファイルの編集は、特には不要。
ネットワーク環境にある場合で、IPアドレスが指定されている場合は、以下を編集
-name [email protected]↓↓
-name riak@独自環境のIPアドレス
30Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
•起動
$ sudo riak-cs startok
•確認確認
$ sudo riak-cs pingpong
31Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• Stanchionの構築
• 1nodeの構築
•パッケージダウンロード• Riak CSと同じです
•インストール
CentOS 6の環境でインストールする場合CentOS 6の環境でインスト ルする場合
$ sudo yum install stanchion-1.0.1-1.el6.x86_64.rpm
32Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
•設定ファイル編集
$ sudo vi /etc/stanchion/app.config
ローカルに環境がある場合は、設定ファイルの編集は、特には不要。
ネットワーク環境にある場合で、IPアドレスが指定されている場合は、以下を編集IPアドレスが指定されている場合は、以下を編集
{stanchion_ip, "127.0.0.1"},↓
{stanchion_ip, "独自環境のIPアドレス"},
33Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
{riak_ip, "10.1.1.192"},↓↓
{riak_ip, "独自環境のIPアドレス"},
{anonymous_user_creation, false},↓
{anonymous_user_creation, true},
34Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
•設定ファイル編集$ sudo vi /etc/stanchion/vm.args
ロ カルに環境がある場合はローカルに環境がある場合は、設定ファイルの編集は、特には不要。
ネットワーク環境にある場合で、IPアドレスが指定されている場合は、以下を編集
-name [email protected]↓↓
-name stanchion@独自環境のIPアドレス
35Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
•起動
$ sudo stanchion startok
•確認確認
$ sudo stanchion pingpong
36Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
• コマンドラインからの確認• 管理ユーザの作成
ト• テストファイルの配置
37Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Riak CSを使ったデモ
38Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
デモの概要
アップロード • エンコード
サムネイル作成
Webサーバー(投稿)Webサーバー(閲覧画面)
• サムネイル作成
マウントAPIコール
Riak Cluster
マウントAPI ル
39Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
実際の導入事例
40Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
導入事例1
LOHACO(アスクル様)• LOHACO(アスクル様)
Riak CSで画像配信画像配信
41Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
システム構成
CDN
Riak CS Riak CS
障害発生時のみ
Riak CS Cluster
Riak CS Cluster
Riak EDS Cluster 1 Riak EDS Cluster 2レプリケーション
42Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
データ
登録件数• 登録件数
• 約20万件弱 (データ移行は3時間程度)
• ファイルの種類/サイズ
• 画像データ
• 5k~500k
• リクエスト数リクエスト数
• 450req/sec
• CDNキャッシュヒット率• CDNキャッシュヒット率
• 97%
レスポンス• レスポンス
• 10ms~80ms (CDNにキャッシュされている状態だと10ms程度)
43Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
構築~リリースまでの期間
構成検討 各種調整(NW サ バ 調達)• 構成検討、各種調整(NW、サーバー調達)
• 1週間
• 構築&テスト・リリース
• 構築:1日
• テスト&リリース:1週間
問題になったところ問題になったところ
• データをフラットに配置したところ、
覧取得できなくな た一覧取得できなくなった
• 解決策:ディレクトリを分けてもらった
44Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
Q&A
45Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
ご清聴ありがとうございました
46Copyright © 2013 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止