[事例ニュース]
dinii、飲食店向けPOSシステムのデータベースを停止時間30秒でAlloyDBに移行
2023年8月2日(水)日川 佳三(IT Leaders編集部)
飲食店向けPOS(販売時点情報管理)システム「dinii POS」を提供するdinii(ダイニー、本社:東京都港区)は、飲食店向けPOSシステムのデータベースを、Google Cloudのデータベース移行サービス「Database Migration Service(DMS)」を用いて、サービス停止時間30秒でCloud SQLからAlloyDBに移行した。2023年8月2日、Google Cloud Japanが開催したAlloyDBのセミナー「AlloyDB Case Study Meet Up」に登壇し、移行プロジェクトの詳細を説明した。
飲食店向けPOSシステム「dinii POS」を提供するdiniiは、POSシステムの中核データベース(PostgreSQL)を、Cloud SQLからAlloyDBに移行した。Google Cloudのデータベース移行サービス「Database Migration Service」(DMS)を用いてサービス停止時間30秒で移行した。
POSシステムは、飲食店にとってはミッションクリティカルなシステムである。システム障害などによってPOSが使えなくなると、顧客からの注文も会計もできなくなる。
diniiは従来、データベースにCloud SQLを使っていたが、2022年末時点で、Cloud SQLで設定可能なvCPU数の上限に近い負荷がかかっていたという。この問題を解消するため、より性能の上限が高いAlloyDBに移行した。
拡大画像表示
同社はデータベースへの負荷が大きい理由を、「Hasura」と呼ぶミドルウェアを運用していることにあると説明した。Hasuraは、PostgreSQLサーバーのスキーマ情報を元に、PostgreSQLサーバーのデータにGraphQLでアクセスできるようにするミドルウェアで、その仕様上、1ユーザー1秒あたり1クエリーほどのクエリーが発生するという(図1)。
そこで、Cloud SQLからAlloyDBへの移行には、Google Cloudのデータベース移行サービス「Database Migration Service(DMS)」を活用。論理レプリケーションによりリアルタイムにデータを同期した。データの同期にあたり、GUIの操作は簡単で、ワンボタンで同期が完了する。「ただし、VPCネットワーク間で相互に通信できるようにするネットワーク設定などが追加で必要だった」という(図2)。
拡大画像表示
移行の計画に1カ月をかけた。移行が必要であることを経営者にアピールし、主要なOLTP操作の負荷テストによって性能を検証し、同時実行数に応じて性能の悪化がないことを確認した。そのうえで、ステージング環境で動作検証を実施した。移行当日のタイムラインは、以下のとおりである。
- 3:55 起床
- 4:00 データの同期(コピー)を開始
- 6:44 データの同期(コピー)が完了(データ量は100GB程度)
- 6:45 レプリカへのクエリーを、レプリカとして機能を始めた移行先のAlloyDBへと向ける
- 6:55 DMSを使った移行を開始(データベースが停止するダウンタイムが発生)
- 6:56 DMSを使った移行が完了(移行先のAlloyDBをプライマリに設定し、稼働を開始)
- 7:00 メトリクス監視
- 7:40 動作確認完了
- 7:45 完了報告