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
10
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
130
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
daichike
0
25
カヤックの組織課題を解決する人事データベースシステム
daichike
0
20
DP4版と侮るなかれ!現時点でもN1QLは実用に耐えうる/Couchbase Live Tokyo 2015
daichike
0
12
Couchbase Serverを用いた大規模データ収集基盤/db tech showcase 東京 2014
daichike
0
15
Other Decks in Technology
See All in Technology
Long journey of Continuous Delivery at Mercari
hisaharu
1
210
OCI Oracle Database Services新機能アップデート(2025/03-2025/05)
oracle4engineer
PRO
1
140
「規約、知識、オペレーション」から考える中規模以上の開発組織のCursorルールの 考え方・育て方 / Cursor Rules for Coding Styles, Domain Knowledges and Operations
yuitosato
6
1.6k
新規プロダクト開発、AIでどう変わった? #デザインエンジニアMeetup
bengo4com
0
440
白金鉱業Meetup_Vol.19_PoCはデモで語れ!顧客の本音とインサイトを引き出すソリューション構築
brainpadpr
2
300
評価の納得感を2段階高める「構造化フィードバック」
aloerina
1
160
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
17k
「どこにある?」の解決。生成AI(RAG)で効率化するガバメントクラウド運用
toru_kubota
2
370
kubellが挑むBPaaSにおける、人とAIエージェントによるサービス開発の最前線と技術展望
kubell_hr
0
280
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
180
Grafana MCP serverでなんかし隊 / Try Grafana MCP server
kohbis
0
330
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
120
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
139
7k
Typedesign – Prime Four
hannesfritz
42
2.7k
A designer walks into a library…
pauljervisheath
206
24k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Why Our Code Smells
bkeepers
PRO
337
57k
The Invisible Side of Design
smashingmag
299
51k
A better future with KSS
kneath
239
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
43
2.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
910
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
780
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