[レポート] Game with AWS – CEDEC+KYUSHU 2019

2019.11.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんばんは、CX事業本部の夏目です。

週末CEDEC+KYUSHU 2019に行ってきたので、そのセッションレポートです。

今回はAWSさんのセッションなんですが、前後半に分かれていて内容が大きく異なっていたので、まず前半だけ共有できたらと思います。

セッション

前半はAWSで何ができるかについてのセッションでした。


特に海外展開しているゲームでは多いとのこと。





AWS Game Developer Conferenceで詳細の話があった。 レポート記事はこちら

[レポート]PUBG’s architecture (with focus on back end infra) on AWS #AmazonGameTech #AmznGameTechJP

バックエンドのアーキテクチャだが、中央の緑の枠がメインシャードでアメリカで1つだけ動いている。
右側にある3つの緑の枠がゲームシャードで、ユーザーに地理的に近いリージョンで動いている。

ロギングでは、リアルタイムで見たいスピードレイヤーとそうじゃないバッチレイヤーに分けて実装する。
今欧米系のゲームで多いらしい。


ここまで、AWSがどう使われているか事例も含めて見てきたが、ここからはAWSで何ができるのかを見ていく。

何ができるようになるか、端的に言うと オンプレで難しかったことができるようになる


全部で165を超えるサービスがあって、選択して組み合わせて使用することができる。

世界中にリージョンがあるから、レイテンシがシビアなマルチプレイヤーなゲームでは近いリージョンを使用可能。

リージョン間通信では専用線を引いて、いつでも安定してスループットが出るようになっている。

仮想マシンでは、今までサーバーでひとくくりにしていたものを分けて、IOを向上させた。

バックエンドとして今まで通り、サーバーも使えるし、今流行りのコンテナを活用することもできる。
サーバーの運用がいらないサーバーレスという選択肢もある。


仮想マシンを使おうと思えば、

  • コンピューティング性能が必要であればC系
  • グラフィックや機械学習ならGPUのG系

など、やりたいことに合わせて、豊富なインスタンスタイプから選択できる。


仮想マシンの料金もいくつかオプションがあって、用途に合わせて最適化できる。

特に、AWS上で余っているEC2インスタンスに入札して格安利用できるスポットインスタンスを駆使すると大幅に料金を抑えることができる。
(EC2インスタンスの需要が増えると2分前にインスタンス終了の通知が来てしまうが)

2年前からスポットインスタンスの料金が安定して、より使いやすくなった。

DeNAは状態をもたないステートレスなサーバーと状態を持つステートフルなサーバーに切り分けた。
ステートレスなサーバーはいつ死んでも大丈夫なので、100%スポットインスタンスを使うようにしたところ、ステートレスサーバの費用を6割削減した。
しかもサービスへの影響なしで。

コンテナ系のサービスも充実し、仮想マシンを必要としない、従量課金でコンテナを使えるFargateも登場。


クラウド時代に最適化した、再設計したDBであるAuroraもある。
ディスク容量もシームレスに10GBずつ自動スケールしてくれる。

RDBMS以外にもユースケースに合わせてデータストアを使い分けることができる。


セキュリティについても広く対応している。
これらは最初から入れておくこともできるし、問題が起きたときに途中から使い始めることもできる。


サーバーレスによって、コードをアップロードするだけで処理を行うことができる。
これなら、サーバーの運用はいらない。

制限もあるから、ユースケースは限られるが、ぴったりあうようなものもある。


ダウンロードサイズの大きいものはS3において、CDNを通して配信することもできる。

今(2019/11/23)現在、200箇所のエッジがある(画像は少し古い情報)。

CloudFrontのEdgeには Regional Edge Cacheというものがある。 各Edge Locationにキャッシュがなければ、即オリジンに取りにいくのではなく、まずRegional Edge Cacheに取りに行く、というもの。
Regional Edge Cacheにあればそれを返すし、なければオリジンまで取りに行く。


データ分析にもAWSは使用できて、

  • Kinesis DataStreamを挟んでニアリアルタイムな分析
  • Quicksightで可視化

など、多用な分析ができる。

すべての開発者に機械学習の恩恵をのポリシーのもと、 機械学習系のサービスも多く提供されている。


ゲームに特化したサービスとしてGameLiftがある。

便利なマッチングの機能もあれば、

スポットインスタンスを使ってコスト削減してくれる機能もある。
特にこの機能では、スポットインスタンスの中断が多くなれば、オンデマンドインスタンスを優先して使う、みたいなこともしてくれる。

まとめ

以上AWSのセッション前編でした。

有名ゲームがかなりの規模で使いこなしていてほんと凄いですね。
色々できることがあるので、少しずつでも使ってみたらどうでしょうか。