Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Couchbase Serverのサーバ移管と2.1から3.0.1へのバージョンアップ
Search
Daichi Koike
July 22, 2015
Technology
0
12
Couchbase Serverのサーバ移管と2.1から3.0.1へのバージョンアップ
Daichi Koike
July 22, 2015
Tweet
Share
More Decks by Daichi Koike
See All by Daichi Koike
俺たちはなぜコードレビューをするのか
daichike
0
170
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
daichike
0
29
カヤックの組織課題を解決する人事データベースシステム
daichike
0
22
DP4版と侮るなかれ!現時点でもN1QLは実用に耐えうる/Couchbase Live Tokyo 2015
daichike
0
13
Couchbase Serverを用いた大規模データ収集基盤/db tech showcase 東京 2014
daichike
0
18
Other Decks in Technology
See All in Technology
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
Java 25に至る道
skrb
3
170
Next.js 16の新機能 Cache Components について
sutetotanuki
0
220
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.2k
re:Invent2025 セッションレポ ~Spec-driven development with Kiro~
nrinetcom
PRO
2
170
プロンプトエンジニアリングを超えて:自由と統制のあいだでつくる Platform × Context Engineering
yuriemori
0
260
2025年の医用画像AI/AI×medical_imaging_in_2025_generated_by_AI
tdys13
0
310
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.2k
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
380
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
490
サラリーマンソフトウェアエンジニアのキャリア
yuheinakasaka
24
11k
AWSと生成AIで学ぶ!実行計画の読み解き方とSQLチューニングの実践
yakumo
2
290
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
1
160
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Claude Code のすすめ
schroneko
67
210k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
100
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
54
49k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
42
Six Lessons from altMBA
skipperchong
29
4.1k
New Earth Scene 8
popppiees
0
1.3k
Transcript
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共通システム開発 • ときどきサーバ •
[email protected]
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