DELiGHTWORKS Developers Blog

ディライトワークス株式会社で扱っている技術や、研究開発の模様をお伝えするブログです。

AWS Summit 2019にて登壇しました。


ご報告

こんにちは、ディライトワークス技術部の今井です。

少し前の話となりますが、AWS Summit 2019 にて、「Fate/Grand Orderにおける大規模なデータベース移行と負荷試験」というタイトルで登壇しました。

講演資料は以下にアップロードしています。

www.slideshare.net

改めまして、当日講演を聴講いただいた皆様、登壇の機会をくださったAmazon Web Services様、講演資料の添削をしてくださった皆様、本当にありがとうございました。

この場を借りて御礼申し上げます。

セッション終了後、Ask The Speakerでは10人以上の方とお話することができまして、「近々移行をする予定があるので、参考にします」や、「負荷試験は必須の工程なのに、地味で評価されづらいので共感しました」といった感想をいただき、嬉しい限りです。

Q&A

こちらの記事では、Ask The Speakerでご質問が多かった内容について補足しようと思います。

Q: 負荷試験を行う際、負荷をかけるサーバを配置するAWSアカウントを、他のAWSアカウントを分けた方が良い理由は何でしょうか。

A: 負荷をかける側で想定外のトラフィックが発生した場合(大規模な負荷試験の実施にあたり、負荷試験の申請を行い、その申請値以上になった場合など)、AWS基盤側でトラフィックを絞ることがあるため、その際に稼働中の他のサーバに影響を与えないためです。

Q: 「移行前環境」「移行後環境」とは別で「切り戻し環境」を用意した理由は何でしょうか。

A: 理由は以下の3点です。

  • 「移行前環境」と「切り戻し環境」はデータが完全に一致するはずなので、mysqldbcompareを使って一瞬で正当性の確認を終わらせたかったためです。例えば「移行前環境」と「移行後環境」の比較ですと、データ内容がまったく異なるのでmysqldbcompareでの比較ができませんでした。

  • KPI(特にユーザデータを合計する必要がある項目)を確認するために、ユーザデータがテーブル単位で集約されているDBが欲しかったためです。

  • ダブルライト期間中に、ダブルライト処理に何らかの不具合があったり、DBダウンによって「移行前環境」が不整合な状態になったりした場合に、垂直分割環境に切り戻す手段が欲しかったためです。

それぞれの理由を単体で考えると別の手段で代用可能なものもありますが、3つ満たすには「切り戻し環境」を準備するのが手っ取り早いという判断です。

以上です。

最後に

また何か共有できる事例などできましたら、講演会、勉強会、もしくはこちらのブログでご紹介していければと思います。

今後ともどうぞよろしくお願いいたします。

©DELiGHTWORKS