オンラインサーバレスビンゴ大会【番外編】

AWS,Unity,オンラインサーバレスビンゴ大会,ゲーム制作

ごあいさつ

こんにちは、津笠です。
いよいよ2020年も終わりですね。今年は良い年になりましたでしょうか?
来年はもっと良い年になるといいですね(ハム太郎かな?)。

さて、オンラインサーバレスビンゴ大会作成の振り返りは以前に完了しているのですが、今回なんと参加者50人強でビンゴ大会を開催しましたのでその振り返りをまとめていきたいと思います。

リンク

オンラインサーバレスビンゴ大会【総集編1】
オンラインサーバレスビンゴ大会【総集編2】
オンラインサーバレスビンゴ大会【総集編3】
オンラインサーバレスビンゴ大会【総集編4】(最終回)
オンラインサーバレスビンゴ大会【番外編】 < 今ココ

オンラインサーバレスビンゴ大会とは

私、津笠が来たる忘年会シーズンにオンライン忘年会で実用に耐えるオンラインビンゴシステムを構築しようと考えて始めたプロジェクトとなります。
内容物の詳細は上記リンクから以前の記事を参照していただけると幸いですが、改めて完結にお話しします。
システムはAWSを利用して以下の構成で構築します。

構成図

ゲーム画面、管理画面はUnityWebGLで作成・出力してS3にソースをアップしパブリックアクセスを許可します。
ゲーム画面ではビンゴカードの登録とカードを開けて遊ぶ部分を提供します。管理画面では番号の発表と参加者の進行具合、ビンゴの有無を確認できるようにします。

ユーザーのデータや発表した番号はAPIを通してDynamoDBに書きこまれます。
これらを読み書きしてビンゴゲームを進めます。

認証はわからないので止めました。

以上すべてサーバレス構成となっております。

実際にやってみて

まず1番の驚きは1度も落ちなかったことです。
内部で冗長化されていることから、高い可用性を期待してサーバレス構成をとっていたのですが同接50人でも問題なく動きました(ビジネスで使うことを想定すると当たり前なのでしょうが)。

しかも無料枠があるのでお金かからずに済ませました。
DynamoDBだけ1秒間の読み書きそれぞれ5回でプロビジョニングされていたものをオートスケールに変更したので、もしかしたら数千円くらいくるかなとも思ったのですが無料枠の範囲で済んでましたね。
番号発表のタイミングで1秒間の読み込みが15くらいは行くと思ってたんですけど……??スケールアウトしてたかは見てないので知らんのですが……無料枠をちゃんと把握してないのかな……

サーバレスで良かったところはプロビジョニングを一切しなくて良かったところです。
50人が接続してどのくらい負荷がかかるとかそのあたりの計算方法がまったくわかっていないのですがサーバレスだと内部でうまくやってくれるので楽ですね。
負荷分散も考えなくてよく、ミドルの設定もしなくてよく、システムは疎結合になり、文句なしです。

サーバレスに限らずオンラインビンゴにして進行がスムーズなったのも良かったです。
なかなか当たらないと、これまでの番号の確認が入るので結構グダりだすんですよね。
今回は全部手元に表示されるようにしていたのと自動で進めてくれる設定を用意していたので番号の発表がサクサク進みました。

オンラインでやると反応が…というのも危惧していたのですがこれも杞憂でした。流石関西人。ガヤがうまい。

全体を通して滅茶苦茶スムーズに進行したので自分でも驚きですが、司会を務めてくれたり色々フォローしてくれた運営の仲間たちのおかげでオンラインサーバレスビンゴ大会は大成功となりました。

参加者の方々にも楽しかったと言ってもらって満足です!!

以上、お付き合いありがとうございました!良いお年を~~~~!!