Slide 1

Slide 1 text

マッハバイトのオンプレDBを Amazon Auroraに移⾏した話 2024.03.21 JAWS-UG SRE⽀部 #8 春のAurora祭り 株式会社リブセンス 技術部 インフラグループ ⼭崎理弘 (かたいなか) Copyright © Livesense Inc.

Slide 2

Slide 2 text

● 技術的負債に⼤きめの対応を頑張った描写が出てきますが、 同じレベルの負債はもう弊社内にないため、安⼼してご覧ください ● 弊社テックブログでも記事にしてますので、詳しくは記事もご覧ください ○ https://made.livesense.co.jp/entry/2024/03/13/083000 注意書き Copyright © Livesense Inc.

Slide 3

Slide 3 text

1 2 3 4 ⾃⼰紹介等 DB移⾏プロジェクトの概要 DB移⾏プロジェクトの流れ DB移⾏を振り返って Copyright © Livesense Inc.

Slide 4

Slide 4 text

⾃⼰紹介等 SECTION 1 Copyright © Livesense Inc.

Slide 5

Slide 5 text

1. 自己紹介等 ● ⼭﨑 理弘 (かたいなか) ● 株式会社リブセンス所属 ● ここ数年は転職会議のEKS基盤を運⽤しながら マッハバイトのAWS移⾏プロジェクトに参加 ● ⾼知在住 ⽉イチ上京 ● Twitter,GitHub等: @katainaka0503 ⾃⼰紹介 Copyright © Livesense Inc.

Slide 6

Slide 6 text

1. 自己紹介等 マッハバイトは「アルバイトが"すぐに"決まる」 「マッハボーナス(お祝い⾦)で"すぐに"お⾦がもらえる」を サービスコンセプトとした アルバイト求⼈サイトです。 ⼀緒に働いてくれるエンジニアを絶賛募集中です! 詳細は以下のURLをご覧ください! https://recruit.livesense.co.jp/ マッハバイトについて Copyright © Livesense Inc.

Slide 7

Slide 7 text

1. 自己紹介等 ● SRE挑戦中の⽅もベテランの⽅も⼤歓迎 ● 次回#5は 4/12(⾦) ○ しくじり先⽣回なので 皆さんの失敗談お待ちしております ● https://yuru-sre.connpass.com/event/312943/ ゆるSRE勉強会やってます! Copyright © Livesense Inc.

Slide 8

Slide 8 text

DB移⾏プロジェクトの概要 SECTION 2 Copyright © Livesense Inc.

Slide 9

Slide 9 text

2. DB移行プロジェクトの概要 ● 本番環境はオンプレ ● ステージング環境はEC2 ○ オフィス移転の関係 移⾏前のDB関連の構成 Copyright © Livesense Inc.

Slide 10

Slide 10 text

2. DB移行プロジェクトの概要 DB移⾏のブロッカー: Mroonga(全⽂検索⽤プラグイン) Copyright © Livesense Inc.

Slide 11

Slide 11 text

2. DB移行プロジェクトの概要 AWS DMSのフルロードで移⾏ Copyright © Livesense Inc. ● 約6時間のメンテナンス時間を設けて フルロードモードにより移⾏

Slide 12

Slide 12 text

2. DB移行プロジェクトの概要 移⾏後 Copyright © Livesense Inc. ● Auroraを使ったシンプルな構成に

Slide 13

Slide 13 text

DB移⾏プロジェクトの流れ SECTION 3 Copyright © Livesense Inc.

Slide 14

Slide 14 text

DB移⾏プロジェクトの流れ ~Mroonga脱却編~ SECTION 3-1 Copyright © Livesense Inc.

Slide 15

Slide 15 text

3-1. DB移行プロジェクトの流れ ~Mroonga脱却編~ [再掲]DB移⾏のブロッカー: Mroonga(全⽂検索⽤プラグイン) Copyright © Livesense Inc.

Slide 16

Slide 16 text

3-1. DB移行プロジェクトの流れ ~Mroonga脱却編~ ● Mroongaの使⽤状況を整理するため PHPのコードを削除 ● 削除を進める中で発覚した Mroonga使⽤箇所はコードを修正して対応 ● Mroonga関連のクエリが コードベース上から消滅 Mroongaを使うクエリを発⾏するPHPのコードを削除 Copyright © Livesense Inc.

Slide 17

Slide 17 text

プロジェクトの流れ ~DMS検証編~ SECTION 3-2 Copyright © Livesense Inc.

Slide 18

Slide 18 text

● Mroonga関連のスキーマなどで移⾏時に細かいスキーマの差分が発⽣するため、 それを吸収できるツールが好ましかった ● データのバリデーション機能による安⼼感があった 3-2. プロジェクトの流れ ~DMS検証編~ DMS選定の理由 Copyright © Livesense Inc.

Slide 19

Slide 19 text

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.

Slide 20

Slide 20 text

3-2. プロジェクトの流れ ~DMS検証編~ ● フルロード完了からCDC開始までの間の変更が⽋落してしまうなどの問題が 発⽣してしまい、すぐには解決できなそうだったため断念 ● DB移⾏に伴うシステムダウンがどこまで許容できるかビジネス側と確認できていた ○ フルロードでも許容できる時間内に終わるため、フルロードで実施することに CDCは検証を断念‧‧‧ Copyright © Livesense Inc.

Slide 21

Slide 21 text

プロジェクトの流れ ~テスト編~ SECTION 3-3 Copyright © Livesense Inc.

Slide 22

Slide 22 text

3-3. プロジェクトの流れ ~テスト編~ ● DBのコンテナを変えたユニットテストを並列で実施 ○ オンプレMariaDB互換(既存) ○ Aurora MySQLで使おうとしているバージョン互換(new) ● マッハバイトはレガシーPHPアプリケーション以外は ユニットテストがしっかり書かれている ● テストが通れば安⼼感⼤! ユニットテストをAurora MySQLの互換バージョンで実⾏ Copyright © Livesense Inc.

Slide 23

Slide 23 text

3-3. プロジェクトの流れ ~テスト編~ ● ステージング環境とほぼ同じだが DBだけAuroraにした環境でテスト ● DB移⾏後に不要になった検証⽤環境は ⻑期開発⽤の環境として再利⽤ 検証⽤環境でテスト Copyright © Livesense Inc.

Slide 24

Slide 24 text

3-3. プロジェクトの流れ ~テスト編~ ● ステージング環境のDBを Auroraに切り替え ● ⽇々の開発でも 不具合に気づけるように ステージングDBをAuroraに Copyright © Livesense Inc.

Slide 25

Slide 25 text

3-3. プロジェクトの流れ ~テスト編~ ● DB移⾏はアプリケーションやSolrのECS化と同時実施 ○ 複雑な⼿順のためなるべくリハーサルで問題を洗い出しておきたい ● Slackに可能な限りログを残すことを意識しながらリハーサルを2回⾏った ○ ログを⾒ながら移⾏の流れのレビューのため ○ ログを⾒て本番実施前に⼿順を確認するため ⼊念なリハーサル Copyright © Livesense Inc.

Slide 26

Slide 26 text

プロジェクトの流れ ~移⾏実施とその後~ SECTION 3-4 Copyright © Livesense Inc.

Slide 27

Slide 27 text

3-4. プロジェクトの流れ ~移行実施とその後~ 移⾏の実施 Copyright © Livesense Inc. ● ⼤きな問題は起きずに移⾏完了🎉 ● 移⾏完了後も⼤きな障害は起きなかった🎉

Slide 28

Slide 28 text

3-4. プロジェクトの流れ ~移行実施とその後~ 移⾏後の構成 Copyright © Livesense Inc.

Slide 29

Slide 29 text

DB移⾏を振り返って SECTION 4 Copyright © Livesense Inc.

Slide 30

Slide 30 text

4. DB移行を振り返って ● パフォーマンス改善 ○ 全体的にクエリが⾼速化している ○ ⼀⽅で重いクエリがオンプレ時代より遅くなってしまう現象も‧‧‧ よかったこと①: パフォーマンス改善 Copyright © Livesense Inc.

Slide 31

Slide 31 text

4. DB移行を振り返って ● どのクエリがどの程度負荷をかけているかなどが視覚的にわかるように ● 既存のDatadog APMと合わせてパフォーマンス改善に役⽴ちそう よかったこと②: Performance Insights最⾼!!! Copyright © Livesense Inc.

Slide 32

Slide 32 text

4. DB移行を振り返って ● 無停⽌移⾏ができる⽅法を追求しきれなかった‧‧‧ ○ データセンタの解約等の関係で、 移⾏プロジェクトに使える期間が限られていたため ○ 及第点のDB移⾏はできたとは思っているが‧‧‧ ● もし無限に時間があったら ○ 案1: CDCが適切に動かなかった原因を追求する ○ 案2: レプリケーションによる別の⽅法を検証 ■ XtraBackupによるダンプ&取り込み & 元のDBからレプリケーション 残念だったこと Copyright © Livesense Inc.

Slide 33

Slide 33 text

4. DB移行を振り返って ● SREとアプリケーションエンジニアの協⼒によるパフォーマンス改善 ○ 今まではインフラエンジニアとアプリケーション開発者で距離があった ■ 治安の悪いクエリを直すのではなく、DBを増強して対応しちゃったり‧‧‧ ● AWS移⾏が終わった今がチャンス! ○ AWS移⾏で役割を超えて関わる機会が増えた ○ 基盤が整ってオブザーバビリティが上がった これからやりたいこと Copyright © Livesense Inc.

Slide 34

Slide 34 text

マッハバイトのクラウドジャーニーは 始まったばかり! さらなるクラウド最適化を求めて進んでいきます Copyright © Livesense Inc.

Slide 35

Slide 35 text

No content