【レポート】「パルワールド」のビルド環境をオンプレ環境からAWSのクラウド環境に移行した話
こんにちは。ゲームソリューション部の出村です。
ここでは「パルワールドのビルド環境をオンプレ環境からAWSのクラウド環境に移行した話」というセッションの概要をお伝えします。なお、このセッションでは当社が以前ご支援をしたパルワードの開発環境について語られていました。その時のインタビューは
ゲーム「パルワールド」の専用ビルド環境をAWSによるフルクラウドで構築し、インテグレーションを高速化に掲載されています。
セッション内容
「パルワールド」のビルド環境をオンプレ環境からAWSのクラウド環境に移行した話
「パルワールド」のリリース当初、ビルド環境は社内に設置されている中古PCで構築されており、ビルドマシンの調達やメンテナンスに苦労していました。また、ビルドマシンの台数に限りがあることから、パッケージの作成に数時間かかることもあり、開発の妨げとなっていました。
そこで、開発効率の向上を図るべく、ビルド環境をクラウドへ移行することを決めました。その過程でAWS選定に至った理由も交えながら、クラウドビルド環境構築のベストプラクティスなど現場の生の声をお届けします。
内容について
ゲーム開発におけるビルド環境では、複数のビルドワーカーが必要な事が多いです。また、大量のアセットを参照してビルド処理を行うため、高性能なコンピューティングリソースとストレージが必要となる場合がよくあります。
このような環境は、大抵の場合はクラウドを利用することによって、開発効率がよくなることが多いです。例えば、見積もりや手配といった工程が不要であったり、必要な時に必要なだけサーバーを用意できること、物理機材の管理が不要になることといったことが挙げられます。
パルワールドの以前のビルド環境はオフィスの一角にデスクトップPCを並べてビルドサーバーが構築されていました。しかし、これだと場合は電気代や設置場所、ビルド時間の短縮が難しいなど、様々な課題を抱えていました。
パッケージビルドとは、プレイヤーに配布するパッケージを作成することを指します。1日数回ビルドが行われ、ビルド対象としては、実行環境のOSや、リリース版やQA(デバッグ用)向けビルド対象といった組み合わせで、それぞれビルドする必要があり、最大21通りの組み合わせ(つまり1バージョンで21回のビルド)でビルドが行われます。これらのビルドには、トータルで2時間から6時間かかります。
このようなビルド環境をAWS上に構築するにあたり、次のような目標と立てました。
なるべくビルドマシンの実行について制約を減らし、Jenkinsなど既存環境を活かす方向でクラウドに移行するといった方針を想定しました。もちろんコストについても考慮しています。
その結果、AWS上に構築された開発環境のアーキテクチャについては以下のようになりました。基本的にEC2をベースに構築されていますが、ストレージでFSxN(ONTAP)を指定するなど、いくつかの工夫がされています。
Jenkinsについてですが、まずJenkins ControllerはECS on EC2に構築されており、NETAPP ONTAPでステートを管理しています。
また、JenkinsのEC2プラグインを利用して、ジョブ数に応じてオートスケールを調整しています。これにより、処理数に応じてビルドマシンの台数が変更でき、ビルド時間が短縮できるようになりました。
また、FSx NetApp ONTAPを利用してUnreal Engineの派生データキャッシュ(DDC)を共有しています。ONTAPを利用しているため、キャッシュの同期が素早く行われます。
開発環境をAWSへ移行することで、パッケージビルドの時間は、一部処理時間が長くなったもの
がありつつも、トータルで短くなりました。
オンプレミスとAWSで環境を比較すると次のようになりました。オンプレミスであったような物理的な台数の制約がなくなり、実質的に待ち時間がゼロになるなど大幅な改善がありました。
感想・雑感
開発環境がオンプレからクラウドに移行することによって開発環境が効率化することは分かってはいましたが、具体的にどれだけ効率化しているのか数値として見ることができたので、改めて理解が進みました。
また、私たちが支援したお客様の事例がCEDECにて発表されるというのは非常に嬉しく、感慨深いものがあります。お客様から感謝の言葉も頂いていますが、このように具体的にお客様の役に立っていることが分かり、個人的にはとても励みになりました。