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
マッハバイトのオンプレDBをAmazon Auroraに移行した話 / mach-db-tra...
Search
katainaka
March 21, 2024
2
400
マッハバイトのオンプレDBをAmazon Auroraに移行した話 / mach-db-transition-jaws
JAWS-UG SRE支部 #8 春のAurora祭り
katainaka
March 21, 2024
Tweet
Share
More Decks by katainaka
See All by katainaka
転職会議のマイクロサービスを支えるデプロイ基盤@yabaibuki.dev #2
katainaka0503
1
270
エンジニア採用広報チームの活動を紹介します / Engineer Recruitment PR Team
katainaka0503
1
210
Amazon EKS上の開発体験を最大化するプレビュー環境の作り方
katainaka0503
0
4.2k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
74
9.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
For a Future-Friendly Web
brad_frost
176
9.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
52k
The Invisible Side of Design
smashingmag
299
50k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.4k
The Cult of Friendly URLs
andyhume
78
6.2k
Docker and Python
trallard
43
3.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
GraphQLとの向き合い方2022年版
quramy
44
13k
Transcript
マッハバイトのオンプレDBを Amazon Auroraに移⾏した話 2024.03.21 JAWS-UG SRE⽀部 #8 春のAurora祭り 株式会社リブセンス 技術部
インフラグループ ⼭崎理弘 (かたいなか) Copyright © Livesense Inc.
• 技術的負債に⼤きめの対応を頑張った描写が出てきますが、 同じレベルの負債はもう弊社内にないため、安⼼してご覧ください • 弊社テックブログでも記事にしてますので、詳しくは記事もご覧ください ◦ https://made.livesense.co.jp/entry/2024/03/13/083000 注意書き Copyright ©
Livesense Inc.
1 2 3 4 ⾃⼰紹介等 DB移⾏プロジェクトの概要 DB移⾏プロジェクトの流れ DB移⾏を振り返って Copyright ©
Livesense Inc.
⾃⼰紹介等 SECTION 1 Copyright © Livesense Inc.
1. 自己紹介等 • ⼭﨑 理弘 (かたいなか) • 株式会社リブセンス所属 • ここ数年は転職会議のEKS基盤を運⽤しながら
マッハバイトのAWS移⾏プロジェクトに参加 • ⾼知在住 ⽉イチ上京 • Twitter,GitHub等: @katainaka0503 ⾃⼰紹介 Copyright © Livesense Inc.
1. 自己紹介等 マッハバイトは「アルバイトが"すぐに"決まる」 「マッハボーナス(お祝い⾦)で"すぐに"お⾦がもらえる」を サービスコンセプトとした アルバイト求⼈サイトです。 ⼀緒に働いてくれるエンジニアを絶賛募集中です! 詳細は以下のURLをご覧ください! https://recruit.livesense.co.jp/ マッハバイトについて
Copyright © Livesense Inc.
1. 自己紹介等 • SRE挑戦中の⽅もベテランの⽅も⼤歓迎 • 次回#5は 4/12(⾦) ◦ しくじり先⽣回なので 皆さんの失敗談お待ちしております
• https://yuru-sre.connpass.com/event/312943/ ゆるSRE勉強会やってます! Copyright © Livesense Inc.
DB移⾏プロジェクトの概要 SECTION 2 Copyright © Livesense Inc.
2. DB移行プロジェクトの概要 • 本番環境はオンプレ • ステージング環境はEC2 ◦ オフィス移転の関係 移⾏前のDB関連の構成 Copyright
© Livesense Inc.
2. DB移行プロジェクトの概要 DB移⾏のブロッカー: Mroonga(全⽂検索⽤プラグイン) Copyright © Livesense Inc.
2. DB移行プロジェクトの概要 AWS DMSのフルロードで移⾏ Copyright © Livesense Inc. • 約6時間のメンテナンス時間を設けて
フルロードモードにより移⾏
2. DB移行プロジェクトの概要 移⾏後 Copyright © Livesense Inc. • Auroraを使ったシンプルな構成に
DB移⾏プロジェクトの流れ SECTION 3 Copyright © Livesense Inc.
DB移⾏プロジェクトの流れ ~Mroonga脱却編~ SECTION 3-1 Copyright © Livesense Inc.
3-1. DB移行プロジェクトの流れ ~Mroonga脱却編~ [再掲]DB移⾏のブロッカー: Mroonga(全⽂検索⽤プラグイン) Copyright © Livesense Inc.
3-1. DB移行プロジェクトの流れ ~Mroonga脱却編~ • Mroongaの使⽤状況を整理するため PHPのコードを削除 • 削除を進める中で発覚した Mroonga使⽤箇所はコードを修正して対応 •
Mroonga関連のクエリが コードベース上から消滅 Mroongaを使うクエリを発⾏するPHPのコードを削除 Copyright © Livesense Inc.
プロジェクトの流れ ~DMS検証編~ SECTION 3-2 Copyright © Livesense Inc.
• Mroonga関連のスキーマなどで移⾏時に細かいスキーマの差分が発⽣するため、 それを吸収できるツールが好ましかった • データのバリデーション機能による安⼼感があった 3-2. プロジェクトの流れ ~DMS検証編~ DMS選定の理由 Copyright
© Livesense Inc.
3-2. プロジェクトの流れ ~DMS検証編~ • DMSでは主キー以外のインデックスや外部キー等は移⾏されない ◦ ⾃分で移⾏の各段階でDDLを実⾏してやる必要あり ◦ 参考: https://repost.aws/ja/knowledge-center/dms-secondary-objects-target
• スキーマの変更の伴う開発を継続しながら DB移⾏の準備を進めるには、DB移⾏⽤DDLのメンテナンス性が問題に • 宣⾔的スキーマ管理ツール Ridgepoleを導⼊して対応 ◦ https://made.livesense.co.jp/entry/2023/08/21/080000 ◦ 移⾏の各段階で必要な分以外をコメントアウトして対応することにした 移⾏⽤DDL管理の問題 => Ridgepoleで宣⾔的スキーマ管理 Copyright © Livesense Inc.
3-2. プロジェクトの流れ ~DMS検証編~ • フルロード完了からCDC開始までの間の変更が⽋落してしまうなどの問題が 発⽣してしまい、すぐには解決できなそうだったため断念 • DB移⾏に伴うシステムダウンがどこまで許容できるかビジネス側と確認できていた ◦ フルロードでも許容できる時間内に終わるため、フルロードで実施することに
CDCは検証を断念‧‧‧ Copyright © Livesense Inc.
プロジェクトの流れ ~テスト編~ SECTION 3-3 Copyright © Livesense Inc.
3-3. プロジェクトの流れ ~テスト編~ • DBのコンテナを変えたユニットテストを並列で実施 ◦ オンプレMariaDB互換(既存) ◦ Aurora MySQLで使おうとしているバージョン互換(new)
• マッハバイトはレガシーPHPアプリケーション以外は ユニットテストがしっかり書かれている • テストが通れば安⼼感⼤! ユニットテストをAurora MySQLの互換バージョンで実⾏ Copyright © Livesense Inc.
3-3. プロジェクトの流れ ~テスト編~ • ステージング環境とほぼ同じだが DBだけAuroraにした環境でテスト • DB移⾏後に不要になった検証⽤環境は ⻑期開発⽤の環境として再利⽤ 検証⽤環境でテスト
Copyright © Livesense Inc.
3-3. プロジェクトの流れ ~テスト編~ • ステージング環境のDBを Auroraに切り替え • ⽇々の開発でも 不具合に気づけるように ステージングDBをAuroraに
Copyright © Livesense Inc.
3-3. プロジェクトの流れ ~テスト編~ • DB移⾏はアプリケーションやSolrのECS化と同時実施 ◦ 複雑な⼿順のためなるべくリハーサルで問題を洗い出しておきたい • Slackに可能な限りログを残すことを意識しながらリハーサルを2回⾏った ◦
ログを⾒ながら移⾏の流れのレビューのため ◦ ログを⾒て本番実施前に⼿順を確認するため ⼊念なリハーサル Copyright © Livesense Inc.
プロジェクトの流れ ~移⾏実施とその後~ SECTION 3-4 Copyright © Livesense Inc.
3-4. プロジェクトの流れ ~移行実施とその後~ 移⾏の実施 Copyright © Livesense Inc. • ⼤きな問題は起きずに移⾏完了🎉
• 移⾏完了後も⼤きな障害は起きなかった🎉
3-4. プロジェクトの流れ ~移行実施とその後~ 移⾏後の構成 Copyright © Livesense Inc.
DB移⾏を振り返って SECTION 4 Copyright © Livesense Inc.
4. DB移行を振り返って • パフォーマンス改善 ◦ 全体的にクエリが⾼速化している ◦ ⼀⽅で重いクエリがオンプレ時代より遅くなってしまう現象も‧‧‧ よかったこと①: パフォーマンス改善
Copyright © Livesense Inc.
4. DB移行を振り返って • どのクエリがどの程度負荷をかけているかなどが視覚的にわかるように • 既存のDatadog APMと合わせてパフォーマンス改善に役⽴ちそう よかったこと②: Performance Insights最⾼!!!
Copyright © Livesense Inc.
4. DB移行を振り返って • 無停⽌移⾏ができる⽅法を追求しきれなかった‧‧‧ ◦ データセンタの解約等の関係で、 移⾏プロジェクトに使える期間が限られていたため ◦ 及第点のDB移⾏はできたとは思っているが‧‧‧ •
もし無限に時間があったら ◦ 案1: CDCが適切に動かなかった原因を追求する ◦ 案2: レプリケーションによる別の⽅法を検証 ▪ XtraBackupによるダンプ&取り込み & 元のDBからレプリケーション 残念だったこと Copyright © Livesense Inc.
4. DB移行を振り返って • SREとアプリケーションエンジニアの協⼒によるパフォーマンス改善 ◦ 今まではインフラエンジニアとアプリケーション開発者で距離があった ▪ 治安の悪いクエリを直すのではなく、DBを増強して対応しちゃったり‧‧‧ • AWS移⾏が終わった今がチャンス!
◦ AWS移⾏で役割を超えて関わる機会が増えた ◦ 基盤が整ってオブザーバビリティが上がった これからやりたいこと Copyright © Livesense Inc.
マッハバイトのクラウドジャーニーは 始まったばかり! さらなるクラウド最適化を求めて進んでいきます Copyright © Livesense Inc.
None