狠狠撸

狠狠撸Share a Scribd company logo
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
Couchbase Serverのサーバ移管と
2.1から3.0.1へのバージョンアップ
株式会社サイバード ビジネス戦略統括本部
小池 大地 (Daichi KOIKE)
2015年7月22日
1
Couchbase MeetUP Tokyo - #14
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
自己紹介
小池 大地 (Daichi KOIKE)?
? 2013年4月新卒入社
? iOS共通システム開発
? ときどきサーバ
? daichi.koike@gmail.com
2
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
本日伝えたいこと
? AWSにサーバ移管しました
? 平行して2.1から3.0.1にバージョンアップしました
? XDCRを使わず、バックアップ&リストアの方法で
データを移行しました
3
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
4
システムの概要
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
ビジネス上の課題1
従来のWebアプリからネイティブアプリへの移行が進み、
サーバ内に自動的に残るログが減少しているため、意図
的にデータを収集する必要がある。
5
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
ビジネス上の課題2
Google Analyticsなどの外部解析ツールはユーザに着
目した分析が困難なので、社内に複数アプリにまたがって
ユーザを分析する環境が欲しい。
6
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
本システムの目的
アプリ横断的な集計?分析が
可能な基盤を作ること?
(2013年11月)
7
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
サーバの課題1 - 可用性
複数アプリから常にアクセスされるため、システムダウンは
許されない。障害時においてもシステムを完全に停止させ
るのではなく、縮退運転をさせる必要がある。
8
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
サーバの課題2 - 拡張性
トラフィックが急激に増加するゲームアプリのイベントにも
耐えられなければならない。即座にスケールアウトできる
ことが重要。
9
イベント
発生
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
サーバの課題3 - データ構造
アプリごとに取得データが異なるため、柔軟なデータ構造
が求められる。
10
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
サーバ構成
11
Webサーバ
MariaDB
データ集計
Couchbase Server
データ蓄積
バッチ処理?
データ可視化サーバ
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
サーバ構成
12
Webサーバ
MariaDB
データ集計
Couchbase Server
データ蓄積
バッチ処理?
データ可視化サーバ
表側
裏側
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
13
移管について
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
14
1月にAWSに移管しました
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管の要件
? 常時アクセスされる共通システムのため、オンラインで
移管しなければならない
? リアルタイム処理は行っていないため、バッチ処理が走
る深夜時間までに移管が完了していればよい
15
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
ついでに
メモリ内のメタデータ占有率が50%超えのアラートがよく
発生していた。
16
IPアドレス
IPアドレス
IPアドレス
IPアドレス
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
ついでに
3系からドキュメント削除時にメモリ内のKeyとメタデータ
も完全に削除するオプションが追加されているので、2系
から3系にバージョンアップしたい(2系ではValueが削除
されるのみ)。
17
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1
自社環境クラスタとAWSクラスタで、XDCRによるクラス
タ間の双方向レプリケーションを使う。
18
自社クラスタ AWSクラスタ
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1
19
自社クラスタ
事前にレプリケーションを設定
AWSクラスタ
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1
20
DNS切り替え
自社クラスタ AWSクラスタ
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1
21
DNS切り替え
こちらにアクセスが来ても
XDCRで同期される
自社クラスタ AWSクラスタ
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1の良い点
? レプリケートができていれば、当日はDNS切り替えだけ
でむので圧倒的に楽
? 移管に失敗した際に元の環境に切り戻すのも楽
22
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1の良い点
? レプリケートができていれば、当日はDNS切り替えだけ
でむので圧倒的に楽
? 移管に失敗した際に元の環境に切り戻すのも楽
23
当日作業が楽!!
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1の悪い点
? XDCRではデータは平文で転送されるので、VPN接続
をするなどの対応が必要(※3系では暗号化可能)
? クcが一致していないといけない
24
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1の悪い点
? XDCRではデータは平文で転送されるので、VPN接続
をするなどの対応が必要(※3系では暗号化可能)
? クラスタ間でCouchbase Serverのバージョンが一致し
ていないといけない
クラスタ内でバージョンの違うノードが混在できるので、?
バージョンがばらばらでも可能だと思っていた…。
25
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1の悪い点
? XDCRではデータは平文で転送されるので、VPN接続
をするなどの対応が必要(※3系では暗号化可能)
? クラスタ間でCouchbase Serverのバージョンが一致し
ていないといけない
クラスタ内でバージョンの違うノードが混在できるので、?
バージョンがばらばらでも可能だと思っていた…。
26
不採用
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案1の悪い点
? XDCRではデータは平文で転送されるので、VPN接続
をするなどの対応が必要(※3系では暗号化可能)
? クラスタ間でCouchbase Serverのバージョンが一致し
ていないといけない
クラスタ内でバージョンの違うノードが混在できるので、?
バージョンがばらばらでも可能だと思っていた…。
27
不採用
追記
クラスタ間のCouchbase Serverのバージョンが
バラバラでもXDCRは使えるとのことです。
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案2
自社環境クラスタのフルバックアップを取得し、AWSクラ
スタでリストアするというXDCRを使わない手法。
28
AWSクラスタ
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案2
29
事前にクラスタの
フルバックアップをリストア
自社クラスタ AWSクラスタ
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案2
30
自社クラスタ AWSクラスタ
DNS切り替え
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案2
31
自社クラスタ AWSクラスタ
DNS切り替え
自前でAWS側に送る
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案2の良い点
? 2系のバックアップを3系にリストアできるため、バージョ
ンアップも同時にできる
? 事前準備が楽
32
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案2の悪い点
? 移管に失敗した際に元の環境に切り戻すのに手間がか
かる
? DNS切り替え後に自社環境にアクセスされたデータを
自前でAWS側に送る仕組みが必要
33
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
移管案2の悪い点
? 移管に失敗した際に元の環境に切り戻すのに手間がか
かる
? DNS切り替え後に自社環境にアクセスされたデータを
自前でAWS側に送る仕組みが必要
34
ちょっとしんどい。
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
35
バージョンアップもしたいので
移管案2を採用
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
2.1→3.0.1へ
当初3.0にしようとしたが、ノードの追加、削除時のリバラ
ンスが止まるなど不安定だったため3.0.1に変更した。
3.0.1では問題なく動作することを確認。
クライアントは2013年10月リリースのPHP SDK 1.2だが
問題なく動作したのでアプリケーション側は変更なし。
4.0 Beta 1でも使えた。
36
IPアドレス
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
前日作業
1. フルバックアップの取得処理
$ cbbackup http://[HOST]:8091 ?
/my/path/couchbase_backup ?
-u [USERNAME] -p [PASSWORD] -b [BUCKET]
2. リストア処理。大体3~4時間ほどで完了
$ cbrestore /my/path/couchbase_backup ?
http://[HOST]:8091 ?
-u [USERNAME] -p [PASSWORD] -b [BUCKET]
37
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
当日作業
3. リストア処理の確認
4. 前日のバックアップ取得以降のデータをAWS側に書き
込み
5. 最終動作確認
6. DNS切り替え
38
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
作業の流れ
39
前日データ 当日データ
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
作業の流れ
40
前日データ 当日データ
フルバックアップ
↓
リストア
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
作業の流れ
41
前日データ 当日データ
フルバックアップ
↓
リストア
手動で?
書き込み
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
作業の流れ
42
前日データ 当日データ
これ以降バッチ
フルバックアップ
↓
リストア
手動で?
書き込み
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
3.0.1にした結果
? Viewがかなり高速になった。複雑なクエリを投げても?
1秒かからない
? リバランスが速くなった。検証では従来の2倍ほどの?
速度に
43
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
3.0.1にした結果
メモリ内もすっきりした(ゴミが消えたのもあるでしょうが)。
44
31.4GB
19GB
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
3.0.1にした結果
クラスタに名前が付けられるようになった。
45
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
46
トラブルもなく移管完了
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
随所に染み渡る思想
「開発者がリラックスして、カウチソファに座ってい
るようにデータベースの設計?構築?運用ができる
ように」
47
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
告知
8/31(月)のCouchbase Live Tokyoで、?
「N1QLのDeveloper Preview 4を社内ツールに入れて
みたよ」という話をします。
48
IPアドレス
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
告知
Couchbase Mobile ワークショップ
日程: 9/1(火) 10:00 ~ 17:00?
場所: Theatre CYBIRD?
ご飯も出るらしいですよ。
49
Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved.
最後に
エンジニア募集中です!
50

More Related Content

Couchbase Serverのサーバ移管と2.1から3.0.1へのバージョンアップ

  • 1. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. Couchbase Serverのサーバ移管と 2.1から3.0.1へのバージョンアップ 株式会社サイバード ビジネス戦略統括本部 小池 大地 (Daichi KOIKE) 2015年7月22日 1 Couchbase MeetUP Tokyo - #14
  • 2. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 自己紹介 小池 大地 (Daichi KOIKE)? ? 2013年4月新卒入社 ? iOS共通システム開発 ? ときどきサーバ ? daichi.koike@gmail.com 2
  • 3. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 本日伝えたいこと ? AWSにサーバ移管しました ? 平行して2.1から3.0.1にバージョンアップしました ? XDCRを使わず、バックアップ&リストアの方法で データを移行しました 3
  • 4. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 4 システムの概要
  • 5. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. ビジネス上の課題1 従来のWebアプリからネイティブアプリへの移行が進み、 サーバ内に自動的に残るログが減少しているため、意図 的にデータを収集する必要がある。 5
  • 6. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. ビジネス上の課題2 Google Analyticsなどの外部解析ツールはユーザに着 目した分析が困難なので、社内に複数アプリにまたがって ユーザを分析する環境が欲しい。 6
  • 7. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 本システムの目的 アプリ横断的な集計?分析が 可能な基盤を作ること? (2013年11月) 7
  • 8. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. サーバの課題1 - 可用性 複数アプリから常にアクセスされるため、システムダウンは 許されない。障害時においてもシステムを完全に停止させ るのではなく、縮退運転をさせる必要がある。 8
  • 9. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. サーバの課題2 - 拡張性 トラフィックが急激に増加するゲームアプリのイベントにも 耐えられなければならない。即座にスケールアウトできる ことが重要。 9 イベント 発生
  • 10. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. サーバの課題3 - データ構造 アプリごとに取得データが異なるため、柔軟なデータ構造 が求められる。 10
  • 11. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. サーバ構成 11 Webサーバ MariaDB データ集計 Couchbase Server データ蓄積 バッチ処理? データ可視化サーバ
  • 12. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. サーバ構成 12 Webサーバ MariaDB データ集計 Couchbase Server データ蓄積 バッチ処理? データ可視化サーバ 表側 裏側
  • 13. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 13 移管について
  • 14. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 14 1月にAWSに移管しました
  • 15. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管の要件 ? 常時アクセスされる共通システムのため、オンラインで 移管しなければならない ? リアルタイム処理は行っていないため、バッチ処理が走 る深夜時間までに移管が完了していればよい 15
  • 16. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. ついでに メモリ内のメタデータ占有率が50%超えのアラートがよく 発生していた。 16 IPアドレス IPアドレス IPアドレス IPアドレス
  • 17. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. ついでに 3系からドキュメント削除時にメモリ内のKeyとメタデータ も完全に削除するオプションが追加されているので、2系 から3系にバージョンアップしたい(2系ではValueが削除 されるのみ)。 17
  • 18. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1 自社環境クラスタとAWSクラスタで、XDCRによるクラス タ間の双方向レプリケーションを使う。 18 自社クラスタ AWSクラスタ
  • 19. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1 19 自社クラスタ 事前にレプリケーションを設定 AWSクラスタ
  • 20. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1 20 DNS切り替え 自社クラスタ AWSクラスタ
  • 21. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1 21 DNS切り替え こちらにアクセスが来ても XDCRで同期される 自社クラスタ AWSクラスタ
  • 22. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1の良い点 ? レプリケートができていれば、当日はDNS切り替えだけ でむので圧倒的に楽 ? 移管に失敗した際に元の環境に切り戻すのも楽 22
  • 23. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1の良い点 ? レプリケートができていれば、当日はDNS切り替えだけ でむので圧倒的に楽 ? 移管に失敗した際に元の環境に切り戻すのも楽 23 当日作業が楽!!
  • 24. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1の悪い点 ? XDCRではデータは平文で転送されるので、VPN接続 をするなどの対応が必要(※3系では暗号化可能) ? クcが一致していないといけない 24
  • 25. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1の悪い点 ? XDCRではデータは平文で転送されるので、VPN接続 をするなどの対応が必要(※3系では暗号化可能) ? クラスタ間でCouchbase Serverのバージョンが一致し ていないといけない クラスタ内でバージョンの違うノードが混在できるので、? バージョンがばらばらでも可能だと思っていた…。 25
  • 26. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1の悪い点 ? XDCRではデータは平文で転送されるので、VPN接続 をするなどの対応が必要(※3系では暗号化可能) ? クラスタ間でCouchbase Serverのバージョンが一致し ていないといけない クラスタ内でバージョンの違うノードが混在できるので、? バージョンがばらばらでも可能だと思っていた…。 26 不採用
  • 27. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案1の悪い点 ? XDCRではデータは平文で転送されるので、VPN接続 をするなどの対応が必要(※3系では暗号化可能) ? クラスタ間でCouchbase Serverのバージョンが一致し ていないといけない クラスタ内でバージョンの違うノードが混在できるので、? バージョンがばらばらでも可能だと思っていた…。 27 不採用 追記 クラスタ間のCouchbase Serverのバージョンが バラバラでもXDCRは使えるとのことです。
  • 28. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案2 自社環境クラスタのフルバックアップを取得し、AWSクラ スタでリストアするというXDCRを使わない手法。 28 AWSクラスタ
  • 29. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案2 29 事前にクラスタの フルバックアップをリストア 自社クラスタ AWSクラスタ
  • 30. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案2 30 自社クラスタ AWSクラスタ DNS切り替え
  • 31. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案2 31 自社クラスタ AWSクラスタ DNS切り替え 自前でAWS側に送る
  • 32. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案2の良い点 ? 2系のバックアップを3系にリストアできるため、バージョ ンアップも同時にできる ? 事前準備が楽 32
  • 33. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案2の悪い点 ? 移管に失敗した際に元の環境に切り戻すのに手間がか かる ? DNS切り替え後に自社環境にアクセスされたデータを 自前でAWS側に送る仕組みが必要 33
  • 34. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 移管案2の悪い点 ? 移管に失敗した際に元の環境に切り戻すのに手間がか かる ? DNS切り替え後に自社環境にアクセスされたデータを 自前でAWS側に送る仕組みが必要 34 ちょっとしんどい。
  • 35. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 35 バージョンアップもしたいので 移管案2を採用
  • 36. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 2.1→3.0.1へ 当初3.0にしようとしたが、ノードの追加、削除時のリバラ ンスが止まるなど不安定だったため3.0.1に変更した。 3.0.1では問題なく動作することを確認。 クライアントは2013年10月リリースのPHP SDK 1.2だが 問題なく動作したのでアプリケーション側は変更なし。 4.0 Beta 1でも使えた。 36 IPアドレス
  • 37. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 前日作業 1. フルバックアップの取得処理 $ cbbackup http://[HOST]:8091 ? /my/path/couchbase_backup ? -u [USERNAME] -p [PASSWORD] -b [BUCKET] 2. リストア処理。大体3~4時間ほどで完了 $ cbrestore /my/path/couchbase_backup ? http://[HOST]:8091 ? -u [USERNAME] -p [PASSWORD] -b [BUCKET] 37
  • 38. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 当日作業 3. リストア処理の確認 4. 前日のバックアップ取得以降のデータをAWS側に書き 込み 5. 最終動作確認 6. DNS切り替え 38
  • 39. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 作業の流れ 39 前日データ 当日データ
  • 40. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 作業の流れ 40 前日データ 当日データ フルバックアップ ↓ リストア
  • 41. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 作業の流れ 41 前日データ 当日データ フルバックアップ ↓ リストア 手動で? 書き込み
  • 42. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 作業の流れ 42 前日データ 当日データ これ以降バッチ フルバックアップ ↓ リストア 手動で? 書き込み
  • 43. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 3.0.1にした結果 ? Viewがかなり高速になった。複雑なクエリを投げても? 1秒かからない ? リバランスが速くなった。検証では従来の2倍ほどの? 速度に 43
  • 44. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 3.0.1にした結果 メモリ内もすっきりした(ゴミが消えたのもあるでしょうが)。 44 31.4GB 19GB
  • 45. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 3.0.1にした結果 クラスタに名前が付けられるようになった。 45
  • 46. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 46 トラブルもなく移管完了
  • 47. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 随所に染み渡る思想 「開発者がリラックスして、カウチソファに座ってい るようにデータベースの設計?構築?運用ができる ように」 47
  • 48. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 告知 8/31(月)のCouchbase Live Tokyoで、? 「N1QLのDeveloper Preview 4を社内ツールに入れて みたよ」という話をします。 48 IPアドレス
  • 49. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 告知 Couchbase Mobile ワークショップ 日程: 9/1(火) 10:00 ~ 17:00? 場所: Theatre CYBIRD? ご飯も出るらしいですよ。 49
  • 50. Copyright 2015 CYBIRD Co., Ltd. All Rights Reserved. 最後に エンジニア募集中です! 50