2021年9月21日火曜日

開発環境を社内サーバーからAzureに移行したら休日出社が減りました 「オンプレはもう限界」──ゲーム企業が成し遂げたクラウド移行の舞台裏

https://news.mixi.jp/view_news.pl?id=6674939&media_id=32
シェアしました。

2021年09月21日 10:42  ITmedia NEWS

ITmedia NEWS

写真写真

 「ラブプラスEVERY」などの開発を手掛けたゲームスタジオ(東京都港区)。ゲームエンジン「Unreal Engine」を使う開発部署「第2開発部」では2020年6月に、これまで社内サーバで行っていた開発をIaaS「Microsoft Azure」中心の開発基盤に移行。その結果、トラブル対応がなくなり、休日やテレワーク中の出社が減ったという。



【その他の画像】



 「うちはゲーム開発に携わるフロントエンジニアの多い会社だが、サーバエンジニアは外部の委託人材が多く、社内の人材は不足している。これ以上オンプレミスを続けることは限界だった」──同社の戸張宏さん(第1事業本部第2開発部第2ユニットサブリーダー)はクラウド化の経緯についてこう話す。



 一方、コストなどの問題で上長の理解がなかなか得られず、これまではクラウド化を実現できていなかったという。そんな第2開発部による“休日出勤が減るクラウド移行”はどのように実現したのか。戸張さんや斎藤信弘さん(第1事業本部第2開発部Sグループリーダー)に話を聞いた。



●「このままでは誰も管理できなくなる」 サーバ点検が業務を圧迫



 第2開発部ではAzureを導入する前、社内サーバ上に開発環境を構築しており、トラブル時などは基本的に、情報システム部がサーバルームに行って対応していた。しかし専門人材が少ないことから、こういった作業が業務の負担になっていたという。



 コロナ禍が広がりテレワークが始まると、トラブル対応の負担はさらに増加。コロナ禍にもかかわらず、2週間に一度は出社が必要だったという。「何か問題が起きたときに出社するのがだんだん難しくなり、無駄な移動時間も出てきた。対応できる人員が少ないこともあり、サーバが増えると誰も管理できなくなるのが目に見えていた」(戸張さん)



 しかしクラウド導入に掛かるコストが大きく、当初は上長から理解が得られていなかった。そこで斎藤さんたちはオンプレミスでのサーバ運用に掛かっているコストを改めて洗い出し、上長を説得したという。



 「オンプレミスは一見安く見えるが、電気代やメンテナンスで休日出勤する人の作業時間・人件費など、隠れたコストや工数が多い。これらの数字をできるだけ可視化し、クラウド化のメリットを理解してもらった」(斎藤さん)



●「バージョン管理ツール併用」の混乱がAzure選定のきっかけに



 こうして第2開発部は、以前からクラウドの研究を独自に進めていた戸張さん主導の下、Azureを中心に「Google Cloud Platform」(GCP)などを併用するマルチクラウド環境に移行した。メインの基盤としてAzureを選んだのにはいくつかの理由があるという。



 一つはバージョン管理ツールとの相性だ。第2開発部ではもともとバージョン管理ツールとして「Subversion」を使っていたが、社員の要望を受け18年に「Git」に移行。しかしUnreal Engineとの相性が悪く、こちらも一部の社員から不評だったことから、結局2つのツールを併用する形を採用していた。



 一方でデータの不整合など、ツールの併用によるトラブルも相次いでおり、対応に追われていたという。そこで、さらなる移行先としてUnreal Engineの開発元、米Epic Gamesが提供するバージョン管理ツール「Helix Core」を検討。社内サーバでUnreal Engineとの相性などをテストした上で採用を決めた。



 バージョン管理ツールの一本化に当たっては、ゲームスタジオが社内の認証基盤として採用していた「Azure AD Premium」との連携もチェック。テレワーク環境下でもセキュリティが確保できると判断できたことから、Azure AD PremiumとHelix Coreの両方を運用しやすい基盤としてAzureの採用を決めたとしている。



 もう一つは「DevOps」に向けた統合環境の構築だ。DevOpsとは開発しながら自動でソースコードをビルドしたり、テストしたりする手法を指す。戸張さんは当初、「Amazon Web Services」(AWS)やGCPといったIaaSもメインの基盤として検討していたが、クラウド化を機にDevOpsを活発化させたいと考えていたため、「Azure DevOps」というDevOps用のマネージドサービスがあるAzureを選んだという。



●AzureやGCPを組み合わせたマルチクラウド体制に



 こういった背景を踏まえ構築した新しい開発環境では、Azure DevOpsやHelix CoreなどはAzureで、ゲームそのもののサーバや、APIサーバなどをGCPで運用する構成を採用。GCPを併用する理由は、API開発などでオープンソースの活用が多いことから、同じくオープンソースをベースにしたマネージドサービスが多いGCPの方が親和性が高いと判断したためという。



 運用コストを減らす工夫として、GCPに加えて月額固定料金制のIaaSも併用。このIaaS上でHelix Coreのプロキシサーバを運用し、社員のアクセスを一度こちらで受け付けることで、従量制であるAzureの料金がかさむことを防いでいる。ただし、この仕組みで使っているIaaSのサービス名は非公開。



 「一つのプロジェクトで何百GBのファイルを扱うので、チームの規模が50人や100人になり、全員がAzureから直接データをやりとりすると、かなりのコストになる。別のIaaSにプロキシサーバを乗せると、キャッシュの分はAzureに(アクセスが)行かないので、裏技的に使っている」(戸張さん)



 クラウド化によってサーバルームが不要になったことから、オフィスのフロアも削減。こういった取り組みによりコストも削減し「普段の運用コストだけならオンプレミスの方が安いかもしれないが、故障したときにかかるコストなども踏まえると、クラウドの方が(コストパフォーマンスが)良い」という。



●クラウド移行で便利になった2つの点



 Azureを中心に、3種類のIaaSを組み合わせて構築した第2開発部の新しい開発環境。この新環境では、旧環境に比べて便利になった点が大きく分けて2つあるという。



 一つは、Azure DevOpsを採用したことで、オンプレ環境では1日1回だけしかできなかったビルド作業を何度もできるようになったことだ。新環境ではAzure DevOpsのサービス「Azure仮想マシンスケールセット」を活用。ビルドに必要なソフトウェアをインストールした仮想サーバを、コストをかければ何台でも自動スケーリング可能にした。



 オンプレ環境では1日に1回、夜間にしかビルドできなかったが、新環境では日中に20~30回のビルドが可能に。これにより、負荷分散に加え、ビルド後に見つかるエラーへの迅速な対応が可能になったという。



 もう一つは、リモートでトラブルに対応できるようになったことだ。



 「休日にどうしても対応しなくてはいけなくなった場合、クラウドならリモートでも対応できる。トラブル対応の出社も最近はほとんどない。移動時間がなく、即時対応できるのも大きい」(戸張さん)



 一方で問題点もある。ゲームスタジオでは昨今、米国や欧州に住む外部人材の起用が増えているが、新しい環境ではAzureの国内リージョンを使用しているため、海外からアクセスすると遅延が大きくなる傾向にあるという。



 この問題を解決するため、同社は年内をめどに海外リージョンにもサーバを設置。仮想ネットワーク同士を接続するAzureの機能「VNETピアリング」を活用し、海外リージョンのサーバをミラーリングできるようにする方針だ。



●Unity対応や他部署への展開も検討



 IaaSの活用により、トラブルへの対応力を上げた第2開発部。現在はUnreal Engine限定の開発基盤として運用しているが、今後はゲームエンジン「Unity」にも対応を検討中だ。今回の移行のノウハウを活用し、DevOpsが可能な環境を他部署にも展開したいという。



 「社内にはUnityしか扱っていない部署もある。Unity対応に必要なのは、仮想サーバにインストールするソフトウェアの変更だけなので、開発環境を使い回せるようにしていくことで、少なくとも(自分が所属する)第1事業本部ではDevOps環境を標準化していきたい」


0 コメント:

コメントを投稿