[セッションレポート]AWSとAmazon Game Techでゲーム開発と運営の効率向上 #CEDECSAPPORO
本記事はCEDEC+SAPPORO 2019 AWSとAmazon Game Techでゲーム開発と運営の効率向上のセッションレポートです。
セッションレポート
Game Tech: ゲームに使えるAWSサービス
ゲームサーバー
TwitchなどもAmazonグループ
世界最大のゲーム企業がAWSを利用している
日本の中でも非常に多くのゲームに採用されている
ゲームについてのAWSの概要
- カイゼン
数分でサーバー、データベースを起動
数クリックで利用できる可用性やスケーラビリティの高いマネージドサービス
従量課金、RI
→従量課金、時間課金でユーザー数が多い時はサーバーを多めに、ユーザー数が少ないときはサーバーを少なめにできる
- イノベーション
ペタバイトクラスのゲームログ分析
リアルタイムプレイなど
165を超えるAWSサービスがあり、各サービスを組み合わせて、容易にこれまで出来なかったことを実現できる
常にサービスアップデートがかかり、成長し続ける、2018年のアップデート数は+1957回!
→95%はユーザーからのフィードバックで出来ている
現在は23リージョンを提供していて、冗長化された100GbEによる高速で安全な専用船ネットワークがある
サーバーはNitro System アーキテクチャ
ゲームで使うのには様々な選択肢があり、従来どおり仮想サーバー、EC2を使う場合もあるし、コンテナを使う場合もあるし、Lambdaでサーバーレスもあり、GameSparks, GameLiftなどなど多数の選択肢がある。
ゲームにおけるAWS利用
EC2
仮想サーバー
多くの種類のEC2インスタンスタイプがある。
I/Oに特化したEC2、Computing特化したEC2
最適なEC2を利用してコスト効率のいいものを利用できる
最新のC5 インスタンスのアップデートも
3.0GHz Intel Xeon Scalable Processors
コスト効率よくEC2を使う購入方法がある
- オンデマンドインスタンス: スタンダードな一般敵な従量課金
- リザーブドインスタンス: 1年か3年の利用予約で 25~75%前後の割引
- スポットインスタンス: 使われていないEC2を入札して最大90%のコストカット
- Dedicated Host: 物理サーバー
2017年11月〜 スポットインスタンスの価格安定化のアップデートで、より安全にスポットインスタンスを利用できるうように
最低限の負荷はRIでカバー、スケールアウト分をSpot/On Demandインスタンスで利用
コンテナサービス
EKS(Kubernetes)やEC2監理不要のFargateなど
Fargate: サーバーを気にしないでコンテナを起動することが可能
Amazon Aurora
クラウドに最適化されたデータベースサービス
Mysql 5.6, 5.7 PostgreSQL9.6と互換性
3AZ(データセンター)の6本のディスクに書き込み、2本のディスク障害でもRead/Write可能で、3本のディスク障害でもRead可能
64TBまで、自動でDiskを10GB単位でスケールアウトすることが可能
こちらも従量課金
その他にもデータベースサービスが複数あり、
Key/ValueならDynamoDB、Graphならneptuneなど、利用用途にあわせてサービスを使える
ElastiCache
フルマネージドでMemcached / Redidが利用可能。
RDSのキャッシュなどで利用することが可能。
攻撃対策
Ddos対策: WS Shield SQLインジェクションなど: AWS WAF 脆弱性検知: Inspector
Serverless
Lambdaを利用して作成したコードをアップロードすることで、サーバーの監理不要でコードを実行できる。
最大15分の処理が可能。
CDN
Amazon CloudFront 大容量キャパシティーを持つ地理的に分散したサーバー群からコンテンツをキャッシュしたり代理配信をするサービス
187のロケーションでキャッシュして、一番近くのロケーションからコンテンツを返すことが可能。
低レイテンシーで提供ができ、オリジンサーバーの負荷を下げることも可能。
CloudFrontのEventを利用してLambdaを利用することができる
→Lambda@Edge
Lambda@Edge
187の接続ポイントでLambda@Edgeが展開され、一番近くの接続ポイントで処理することも可能。
Lambda@Edge を使ったゲームプレイヤーへのカスタムコンテンツの配信
ユーザーの近いところで処理でき、オリジンの負荷を下げることができ、素早くレスポンスを返すことができる。
Amazon GameLift
簡単高速コスト効率の高いゲームサーバー、マッチメイク機能を提供
IDとPortをユーザーに返して、空いているサーバーにマッチさせる機能など
Flex Match: クイックに利用できるフレキシブルなマッチングソリューション
マッチ設定をJSONで設定できる
FleetIQ: Fleet構成にSpotインスタンスを含めてコストを削減でき、安定稼働ができる
Alexsaでゲームと連携することもできる
事例
EpicGames(Fortnite), Nintendo, PlayStation などなど、、多数の事例あり
スポットインスタンス採用率100%などの事例 DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
開発パイプラインの開発効率(CI/CD)
クラウドを利用してCI/CD。
開発者は開発ビルドの手間、スケールなどの手間なども削減し、クリエイティブな活動に集中して作品の質を高めることに注力可能となる。
設備投資を抑えつつ、拠点拡大、開発拠点のグローバル展開も容易。
クラウドは欲しい時にボタン1つ押すだけでcomputing環境が手に入り、初期コストも無い。従量課金。 →スケーラビリティ
可用性 →物理的なサーバーのトラブル対応、メンテナンスなどはしなくていい。
最終的なゲームのビルドには数時間かかるプロジェクトが沢山
AWS上のコンピューティングリソースを利用すれば、一時的にコア数が高いサーバーを複数起動し、並列で処理することが可能
クラウドで並列化することで、自由に組み合わせることができる
AWSを利用してテストを並列で処理する。
最近のゲームは買いきりではなく、アップデートができる
アップデートごとにエラーが発生してしまい、数日サービスが止まると損失が出て、サービスを止まることが無いようにしなければならない。
CI/CDを利用してテストを自動化することが重要
ビルドを加速させるために、Scale In/Outをして、1台のインスタンスでビルドが10時間かかる場合、10台のインスタンスで1時間で処理が可能 →時間課金なので、料金は変わらずに時間を稼げる
MonoプロジェクトをIL2CPPを利用して並列でビルドをすると複数スレッドでビルドを高速化することが可能。
感想
AWSを利用してゲーム業界向けに展開することも可能!
AWSの様々なサービスを組み合わせることもでき、従量課金で必要な時に必要な量を数クリック展開できる!
スポットインスタンス/リザーブドインスタンス、などを利用して大幅なコストカットが可能!