画面を見ながらプログラムを確認する男女のプログラマー

※本ブログは、米国時間 2022 年 1 月 14 日に Johannes Ebner (Game Developer Relations)  により公開された How to transfer large files in a distributed environment の翻訳です。

パンデミック下でよく話題に上ったテーマの 1 つに、「モダンなゲーム スタジオ」があります。つまり、あらゆる人がどこからでも作業できるようにするスタジオです。自宅にいても、スタジオにいても、処理能力の高い GPU を搭載した高性能ワークステーションを使用していても、「通常の」ラップトップしか使えないとしても。クラウドでのゲーム制作は既に始まっています。

私たちが話を聞いた多くのパートナーは、スタジオの拠点が多数存在するということに加えて、従業員が一時的に在宅勤務していたり、一部の従業員が他の国や大陸に引っ越してしまい、オフィスに戻る予定がないといった課題を抱えていました。

この新しい働き方がスタジオに突きつける課題の 1 つに、国、大陸、世界中で大きなファイルを転送 (および同期) しなければならないということがあります。たとえば、以下のようなファイルが含まれます。

  • 以下の目的のデバッグ ビルド
    • テスターへの配布用
    • 契約業者、パブリッシャーなどへの配布用
    • 長期間維持するための保存用
  • 開発者が調査するためのフル クラッシュ ダンプ
  • 大規模なアセットストレージ

シナリオ

たとえば、世界中に複数の物理的な拠点を持ち、メインスタジオでそれらすべてのサービスをローカルでホストする、大きめのゲーム スタジオについて考えてみましょう。

オフィスの場所、および特にサービスをホストする主な拠点のインターネット接続は、需要に応じてスケーリングする必要があります。また、オンプレミスでホストされるローカル サービスもタスクに応じたものである必要があります。

コロナ禍以前は、このように、専用にセットアップされており、それで十分だったのかもしれません。しかし、在宅用のクライアントを追加し、その後新しいスタジオ拠点を開設すると、大きな課題が生じます。。特に、ビルドや大規模なフル クラッシュ ダンプを配布する際は、メイン オフィスのインターネット接続の渋滞を引き起こすのが常です。

直面している問題

プライマリのオンサイトの拠点と複数のその他のスタジオの拠点に加え、在宅用のクライアントを追加する場合に、大きなファイル共有の際に生じる一般的な問題には次のようなものが含まれます。

  • メイン オフィスの帯域幅の超過
  • ファイルの要求およびアップロード時の長い待機時間
  • インターネット エグレスの費用が増加する可能性
  • 単純でない障害復旧シナリオ

ソリューション

分散されたスタジオ環境の中では、、すべてのファイル共有の中央の認証局として Azure を使用することが良いエクスペリエンスになると我々は発見しました。

アーキテクチャ

Azure Files と File Sync の使用によりオンプレミスと同期可能な中央のファイル共有リポジトリを実現

Azure FilesFile Sync を使用すると、オンプレミスの場所と同期可能な、中央のファイル共有リポジトリを実現できます。これらのオンプレミスの場所では、Azure File Sync サービスがインストールされた Windows File Server がローカル キャッシュとして機能します。

クラウド上のワークステーションやその他のユーザーがストレージ アカウントに直接アクセスすることは可能ですが、推奨されていません。これは、ファイルの変更について警告する組み込みの機能がないためです。

ローカル キャッシュと階層化ファイル

クライアントはすべての共有ファイルを利用できますが、これらのファイルは階層化されています。つまり、使用されない限りクラウド内にのみ存在します。しかしクライアントに対しては、これらのファイルが利用可能であると表示されます。すべてのファイル操作はこのローカルのファイル サーバー レプリカに対して行われ、Azure File Service を使用して Azure File Share に同期されます。さらに、 Azure File Service はそれをストレージ アカウントで永続化します。

各開発拠点の Azure へのアップリンクを改善する

Azure との間でファイルをやり取りする際、通常パブリック インターネットを介して転送されます。これにより追加の待機時間が生じ、ローカル リンクが劣化しやすくなり、パブリック インターネットへのデータ 通信の費用が発生します。このリンクの品質、セキュリティを改善し、潜在的な Azure からの通信料金を抑えるために、Azure ExpressRoute を設定できます。ExpressRoute は、お客様と Microsoft Azure Network を直接接続して、お客様と Azure ネットワークの間にプライベート ネットワークを構築します。

メリット

  • 自動で一貫したレプリケーション
  • クラウドにバックアップを配置することでデータ回復と事業の継続性を向上
  • 以下によるデータ エグレスのコスト削減
    • オンプレミスの場所への階層化された同期の使用
    • クラウドでのビルドの作成
    • クラウド上の自動化されたテスト ランナーまたはワークステーションによりクラウドで作成されたクラッシュ ダンプ
  • ExpressRoute の使用
    • ExpressRoute の無制限のデータ プランを使用することでデータ エグレスの費用を節減
    • 接続品質の向上
    • セキュリティの向上

結論

非常に分散した場所にまたがる大きなファイルの配布に伴う課題と、その解決方法について考察しました。

さらに詳細な情報については、以下のサービスを参照してください。

お気軽にお問い合わせください。クラウドでのゲーム制作についての皆さんのアプローチをお聞かせください。または私とチームで皆さんがクラウドに最新のゲーム スタジオを構築するお手伝いができるかもしれません。マイクロソフトからのゲーム開発のヒントと注意点についての詳細な情報は、公式の Microsoft Game Developer Blog をご覧ください。