aws-dev-day-online-japan-2021-cfp icon indicating copy to clipboard operation
aws-dev-day-online-japan-2021-cfp copied to clipboard

Amazon Auroraを活用したソーシャルゲームの複数ワールドデータ統合

Open fujiwara opened this issue 2 years ago • 2 comments

イベント登録規約、AWS 行動規範 Code of Conduct への同意 (必須)

Twitter ID (必須)

fujiwara

セッションタイトル (必須)

  • [X] セッションのタイトルをイシュー件名に最大40文字程度で入力しました

セッションのアブストラクト (最大250文字) (必須)

面白法人カヤックが運営するスマートフォン向けゲーム「ぼくらの甲子園! ポケット」では、開設時期が異なる独立した2つのワールドを1つに統合しました。各ワールドのゲームデータは、スキーマは同じものの別々のAmazon Auroraに保持されていました。約500テーブル、合計約1TBのデータをIDが競合しないように書き換えつつ、不整合を起こさないように1つのデータベースに格納し直すという作業を、Auroraの機能を利用することで、数時間で完了した手法について紹介します。

セッションについての補足情報 (最大800文字) (任意)

「ぼくらの甲子園! ポケット」は2014年のリリース以来約7年間、AWS上でサーバを運用しています。

当初の構成は Amazon EC2 + Amazon RDS for MySQL でしたが、2016年には RDS を Aurora for MySQL へ移行し、2021年3月には EC2 から Amazon ECS + AWS Fargate へ移行を行うなど、継続的に構成をアップデートし続けています。

今回のワールド統合では、それぞれのワールドで MySQL の AUTO_INCREMENT(自動発番) によって発行された ID の値を競合しないように書き換えつつ1つのデータベースにコピーするという技術的な困難がありましたが、Aurora の SELECT INTO OUTFILE S3 と LOAD DATA FROM S3 の機能を用いて、大量のデータコピーを並列かつ高速に行うことができました。

想定受講者の知識レベル(必須)

初級 - セッションの中心となるトピックについての具体的な知識がない方、これから勉強しようと考えている方向け

想定受講者の開発対象やロール・役割 (複数選択可) (必須)

Web バックエンド / サーバーサイド開発, DevOps / Infrastructure as Code

想定受講者の業種・業界・業態 (複数選択可) (任意)

ゲーム, スタートアップ, その他

セッションのトピック (複数選択可) (必須)

アプリケーションアーキテクチャー, エンジニアリングプロセス

セッションの技術カテゴリー (複数選択可) (必須)

コンテナ, データベース

セッション内で登場する主な AWS サービス (任意)

Amazon Aurora, AWS Fargate, Amazon ECS

fujiwara avatar Aug 11 '21 06:08 fujiwara

AWS Dev Day Online Japan 2021 へのセッション応募ありがとうございます!

セッション審査は本イシューへの GitHub リアクション、Twitter での反響も加味して実施します。運営によるツイートのリツイートや、あるいはご自身での宣伝など、ぜひぜひソーシャルでのシェアもお願いいたします。

採択の場合はご記入いただいた Twitter ID へのダイレクトメッセージにて運営よりご連絡しますので、Twitter DM の受け取り設定の確認もあわせてお願いいたします。

AWS Dev Day Online Japan 2021 へのセッション応募ありがとうございました!

イベントコアメンバーによる審査にて本セッションの採択が決定しましたのでお知らせします。

今後のやりとりについては事前のご案内どおり Twitter DM にて行います。数日中に AWS Dev Day Online Japan 運営チームメンバーから Twitter DM をお送りしますので、いまいちど Twitter DM の受け取り設定をご確認いただけますようよろしくお願いいたします。