Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Modern App Summit '25] 200 億レコードを超える Aurora を ...

ekanai
March 10, 2025

[Modern App Summit '25] 200 億レコードを超える Aurora を Cloud Spanner へ移行

ekanai

March 10, 2025
Tweet

More Decks by ekanai

Other Decks in Technology

Transcript

  1. 04 Proprietary Google Cloud Next Tokyo ’24 共有とコミュニケーションを 前提につくられた カレンダー

    シェアアプリ TimeTree は、予定の「共有」「可視化」とそこで生まれ る 「コミュニケーション」によって、予定管理をだれにとって もあたりまえで簡単なものにします。数ある予定管理 サービスの中で、唯一パーソナル × 共有を軸に価値提 供しているプロダクトです。
  2. Quotas ストレージ コネクション ローカルストレージ • 128TB • 変更不可 • いつかは到達する

    • 5 年後に到達も十分に考えられ る • インスタンス サイズ毎にデフォ ルト値がある • 変更可能 • 変更可能だがメモリへの影響が あるため対応が必要になる • インスタンス サイズ毎にデフォ ルト値がある • 変更不可 • DDL テーブルサイズによっては 枯渇し中断されるため喫緊の課 題
  3. Quotas ストレージ コネクション ローカルストレージ • 128TB • 変更不可 • いつかは到達する

    • 5 年後に到達も十分に考えられ る • インスタンス サイズ毎にデフォ ルト値がある • 変更可能 • 変更可能だがメモリへの影響が あるため対応が必要になる • インスタンス サイズ毎にデフォ ルト値がある • 変更不可 • DDL テーブルサイズによっては 枯渇し中断されるため喫緊の課 題
  4. 2018 年 課題認識 2022 年 / 1 月 ミッション クリティカルな

    課題として社内共有 2023 年 / 1 月 プロジェクト稼働開始 2025 年 / 1 月 移行完了と今後の計画 2019 年 チーム内で課題共有 2022 年 / 6 月 プロジェクト準備 2024 年 / 1 月 移行作業開始 タイムライン
  5. 2018 年 課題認識 2022 年 / 1 月 ミッション クリティカルな

    課題として社内共有 2023 年 / 1 月 プロジェクト稼働開始 2025 年 / 1 月 移行完了と今後の計画 2019 年 チーム内で課題共有 2022 年 / 6 月 プロジェクト準備 2024 年 / 1 月 移行作業開始 タイムライン
  6. 重要だったこと 重要性の共有 最終的にミッションクリ ティカルであるというこ とを認識させることが重 要。 情報を整理しながら繰 り返し伝えていくことで 実現できます。 01

    02 03 04 05 事前準備 予算、人員、スケジュー ル含め話を通すための 準備を徹底します。 強い意志 とことんリソースを消費 するプロジェクトになる ので、批判や否定が あっても最終的には サービスや会社にとっ て意義がるという信念 とやりきる強い意志が 大事です。 利益 ただの技術的な興味な どではなく、実施するこ とにより総合的に考え てサービスと会社に寄 与する確証があること が大事です。 期間 期間が短いほどサービ スへの影響、状況の変 化が小さくなり障壁が 低くなります。
  7. データ クレンジング 移行しやすいように データ クレンジングを 実施します。 ロードマップ 大きなスケジュールを 立ててそこにロードマッ プを引いていきます。移

    行範囲の決定も行いま す。 移行 01 02 03 04 05 アプリケーション修正 MySQL から Spanner へ の必要な変更を実施しま す。 データ マイグレーショ ン データ マイグレーション を実施します。 切り替え Google Cloud に移行 したアプリケーションに リクエストを切り替えま す。
  8. データ クレンジング 移行しやすいように データ クレンジングを 実施します。 ロードマップ 大きなスケジュールを 立ててそこにロードマッ プを引いていきます。移

    行範囲の決定も行いま す。 移行 01 02 03 04 05 アプリケーション修正 MySQL から Spanner へ の必要な変更を実施しま す。 データ マイグレーショ ン データ マイグレーション を実施します。 切り替え Google Cloud に移行 したアプリケーションに リクエストを切り替えま す。
  9. データ マイグレーション • AWS と Google Cloud 間で VPN 接続

    • Datastream で Aurora から Cloud Storage にデータ 登録 • Cloud Storage イベントを Cloud PubSub に送信 • Cloud PubSub イベントを Dataflow が Subscribe • Dataflow が Spanner にデータ登録 Dataflow Cloud Spanner Pub/Sub Datastream Cloud Storage Cloud VPN Compute Engine
  10. Architecture after migration from Amazon Aurora to Google Cloud Spanner

    AWS Cloud Front S3 (Log) Load Balancer ECS (App) Aurora Dynamo DB ECS (ETL) S3 (Assets) Cloud Load Balancing Cloud CDN Cloud Run Memorystore Cloud Spanner Cloud Storage Looker BigQuery Cloud Composer
  11. Google Workspace との統合 社員 ID と直接連携す ることでより簡易で強力 なアクセス設定が可能 です。 オート

    シャーディング スキーマ設計さえすれ ばあとはマネージドな シャーディングが実施さ れます。 オート スケーリング 最近 GA になった Spanner のオート ス ケーリングです。コスト 削減に有用です。 Spanner と周辺サービスを Google Cloud に移行したこと によるモダナイゼーション 01 02 03 04 05 様々な検索 ベクトル検索や全文検 索など様々な検索が期 待できます。 分析の拡張 ログデータやデータ ベースデータの BigQuery 連携の簡易 化や、Data boost を利 用したリアルタイムデー タ分析などが可能にな ります。
  12. まとめと今後 • Spanner に移行したことによりデータベースに関する 致命的な課題が解消され、今後のサービス継続に十 分な状況が整った • Google Cloud の他サービスとのシームレスな連携に

    よりサービス全体の開発効率の向上が期待できる • Spanner の様々な検索機能を使いこなすことでエンジ ニアからサービス改善の流れを作ることが期待できる • データを置く場所とだけ捉えるのではなく、データをお いた場所によってサービス価値の向上が期待できる時 代になった
  13. まとめと今後 • Spanner に移行したことによりデータベースに関する 致命的な課題が解消され、今後のサービス継続に十 分な状況が整った • Google Cloud の他サービスとのシームレスな連携に

    よりサービス全体の開発効率の向上が期待できる • Spanner の様々な検索機能を使いこなすことでエンジ ニアからサービス改善の流れを作ることが期待できる • データを置く場所とだけ捉えるのではなく、データをお いた場所によってサービス価値の向上が期待できる時 代になった