インフラエンジニアの仕事とは?ゲーム運営に欠かせない基盤の役目【サイゲームス仕事百科】
最近のゲームの多くは、インターネットを介してデータを送受信したり他のプレイヤーと対戦したりと、さまざまな通信を行っています。この通信システム(インフラ)の設計・構築・運用・保守を担当しているのがインフラエンジニアです。ゲームのネットワーク通信全般を請け負う仕事であり、言わばゲーム運営に欠かせない基盤の役目を担っています。今回は、インフラエンジニアの仕事について、マネージャーへの取材を基に解説します。
▼ゲーム運用を土台から支えるインフラ
▼インフラエンジニアの主な仕事内容
▼インフラエンジニアの業務フロー
▼求められるスキル・マインド
▼仕事のやりがいとは?
▼インフラエンジニアのキャリアパス
▼インフラエンジニアを目指す人へのアドバイス
ユーザーに安全・快適に楽しんでもらうために
ゲーム運用を土台から支えるインフラ
インフラエンジニアの主な役割は、ゲームインフラの設計・構築と運用・保守です。他にも、ゲームの開発工程の効率化、アセット(開発で使用する素材データ)の管理など、開発から運用までのさまざまな環境整備を担当しています。また、社内の各部署からのシステムやネットワークに関する相談窓口の役割も果たしています。
ゲーム運用の技術面を担う部署としては他にもサーバーサイドエンジニアがありますが、サイゲームスのサーバーサイドエンジニアは各ゲームタイトルに特化しており、コンテンツに近い位置でサーバー開発や運用をする役目であり、使用するプログラミング言語はPHPなどがメインです。これに対しインフラエンジニアは、よりゲームの土台に近い部分で、システムや環境そのものを整備するのが仕事です。このため、どんな技術を用いてシステムを構築するかの技術選定、データセンターのサーバーの調達、ミドルウェアのインストール・セットアップといったことも行います。インフラエンジニアの開発ではPythonやGoなどの言語を使用します。
これらの業務を通じて、我々インフラエンジニアが実現したいのは、「ユーザーのみなさんに安全・快適にゲームを楽しんでもらう」ことです。この点はサーバーサイドエンジニアも同様です。
インフラエンジニアの
主な仕事内容
サイゲームスのインフラエンジニアの業務は多岐にわたりますが、大きく以下の3つのカテゴリーに分けられます。
■Game
ゲームシステムの設計・構築・運用・保守を行います。どのような技術を用いてシステムを構築するかを決めるところから、稼働後の運用までを一貫して引き受けます。
■Develop
プロジェクトごとのタスク管理や開発の効率化をサポートする業務です。ソースコードやゲームアセットのリポジトリ(※1)、リアルタイムログ解析システム(※2)の構築、CI/CD(※3)パイプラインの構築などを行います。
■Security
情報セキュリティーに関する業務です。アクセスログの収集・管理、アカウントの発行・管理、データベースの監査などを行います。不正アクセスへの対処も含まれます。
※1 リポジトリ……データやプログラムの情報を格納したデータベースのこと。サイゲームスでは主にGitHub Enterprise、Perforceサーバーが使われている
※2 リアルタイムログ解析システム……アクセスログなど各種ログをダッシュボード上で検索や解析するシステムのこと。サイゲームスではElasticsearch/Kibanaが使われている
※3 CI/CD……ソフトウェア開発におけるビルドやテスト(CI=継続的インテグレーション)、およびデリバリーやデプロイメント(CD=継続的デリバリー)を自動化し、継続的に行うこと
このうち、「Game」については、仕様がゲームタイトルごとに異なるため、各タイトルに担当者を置いています。一方、「Develop」と「Security」については共通する部分が多いため、各部署を横断的に見ています。
この他にも、ゲームのリリース前の負荷試験や障害試験の実施といった業務も行います。負荷試験・障害試験については、サーバーサイドエンジニアと連携しながら実施し、安定稼働を実現しています。それでも予期せぬ障害は起こるので、障害の発生時に即時対応するのも我々の役割です。障害の発生時にまずは障害の内容を調査し、ゲームそのものの障害はサーバーサイドエンジニアに連絡して対応してもらい、設備や環境に関する障害は我々が対応しています。
また2020年、全社的に在宅勤務へ移行した際に、スタッフの業務用パソコンをVPNで接続する必要があり、この設定もインフラエンジニアが行いました。このような想定外の事態が起きたとき、どうすれば業務への影響を最小限にできるか方策を考え、実践するのも我々の仕事です。
インフラエンジニアの業務フロー
続いて、インフラエンジニアの業務フローをご紹介します。ここでは代表的な例として、ゲームタイトルの立ち上げからリリースまでの流れを簡単にご説明します。
1.プラットフォーム・技術選定
サーバーをクラウドにするかオンプレミス(※4)にするかや、どんなミドルウェアを使用するか、どんな技術を用いるかといったことを、ゲームの特性に合わせて選定します。
※4 オンプレミス……サーバーやネットワーク機器、ソフトウェアなどのシステムを自社内に設置し、運用する方式のこと
2.システム設計・構築
開発サーバーや本番のゲームサーバー、システム全体の設計と構築を行います。また、ログ転送の設定やソースコードを本番サーバーに配置する仕組みなど関連システムの設計と構築も行います。
3.負荷試験・障害試験
構築したサーバーが運用に耐えられるかどうか、負荷試験や障害試験を行います。負荷試験はサーバーサイドエンジニアと連携して負荷を予測し、実施しています。
4.リリース準備
リリース時の負荷を予測してシステムのキャパシティの調整を行います。また、システムの監視設計を行い、アラートが上がったらどんな対応をするかも決めておきます。
1や2に関しては、最新の技術ばかりを優先して採用することはしていません。ゲームの特性とマッチし、安定的に稼働することが期待できるのであれば、信頼性の高い旧技術を採用することもあります。もちろん、新しい技術の情報も常に追いかけており、それが業務の効率化やクオリティーの向上に繋がると判断すれば取り入れます。
いずれにしても、最終的には「ユーザーのみなさんに最も良いものを提供する」ことを重要視しています。また、3と4はゲームシステムの安定性に直結する部分であり、快適にプレイできるかどうかを大きく左右するため、サイゲームスでは特に力を入れています。
運用状況の確認や、障害対応の情報共有のために、1か月に1回、タイトル運用のメンバーを中心に振り返りミーティングを行っています。このミーティングでシステムの改善案や運用面の課題を挙げて、クオリティー向上を図っています。振り返りにはSRE(※5)の手法も取り入れたポストモーテムを実践しており、根本原因の分析を行い、継続的な改善に繋げています。
※5 SRE……Site Reliability Engineering(サイト信頼性エンジニアリング)の略で、ソフトウェアや自動化を用いてシステム運用の安定化を図る手法のこと
インフラエンジニアに必要な
スキルとマインド
上記のように、サイゲームスのインフラエンジニアは多種多様な業務を担当し、また多くの部署と連携しながら作業を進めています。ここでは、インフラエンジニアに求められるスキルやマインドについてご紹介します。
■専門知識
運用タイトルごとにインフラエンジニアがアサインされます。新規施策や調査が依頼された際は、チームの代表として最適な回答へ導いていきます。そのためには、インフラ開発に用いるLinuxカーネルやネットワークの知識はもちろん、運用から障害対応に至るまで、幅広い知識を身に付けている必要があります。
■チームワーク
インフラエンジニアはさまざまな部署と関わる仕事であり、特に障害対応のような緊急性の高い業務においては、部署の枠を超えてメンバーを助けチームに貢献する必要があります。普段から、他のメンバーでも対応できるように手順書を残すなど、互いに協力して作業に当たるマインドが求められます。
■課題解決能力
システムに過剰な負荷がかかったり、障害が発生したりした際は、問題の切り分けと調査を行います。何が原因かは状況によって千差万別であるため、ログや監視ツールなどを確認して適切に判断し、課題を解決するスキルが求められます。判断の正確さ、いかに速やかに解決できるか。この能力が高いスタッフは、チームの内外を問わず信頼を置かれます。
インフラエンジニアのやりがいとは?
インフラを長く担当してきた者として、ゲームインフラの管理・運用は非常に難しいというのが正直な感想です。特に新規タイトルや注目タイトルのローンチ時はものすごくアクセスが集中し、ネットワークやサーバーに高い負荷がかかります。それを事前に読み、システムを落とすことなく高負荷の難局を乗り越えられたときは、大きなやりがいを感じます。
長年の運用の知見も蓄積されてきたため、ゲームに関してはローンチ時の他、季節イベントや周年イベントなど、負荷がかかるポイントがかなり読めるようになってきました。予想外のアクセス増加で慌てることがあるのは、むしろゲーム以外の施策です。例えば、生放送などは、SNSでの拡散の影響によって、PRサイトや公式サイトに想定外のアクセスを集めることがあります。そうした突発的な事態への対処も、インフラエンジニアの腕の見せどころであり、やりがいを感じる場面です。
また、技術面での取り組みを会社が積極的に後押ししてくれるため、何か新しいハードやソフト、サービスを試したいと思ったときに承認が得られやすいのはサイゲームスのインフラエンジニアの利点だと思います。インフラ系のツールは高額なものが多いですが、最新のものを試せることも多いため、エンジニアとして成長できる環境と言えます。
それから、マネージャーとして個人的に達成感を得たのは、2017年に開発者向けのカンファレンスである「Developers Summit 2017(デブサミ2017)」で講演したときです。ゲームが動いている裏側の仕組みを発表し、聴講者のみなさんに評価いただけたことは励みになりました。
インフラエンジニアのキャリアパス
現在、サイゲームスのインフラエンジニアは中途で入社したスタッフがメインです。多くはIT企業などでシステム開発・運用などを行っていた元SIerが多いです。
ゲームやエンタメコンテンツが好きという人がもちろん多いですが、技術的なチャレンジができるところもゲーム会社で働く魅力になっていると思います。ゲームは規模が大きく、会員数が明確なサービスよりもエンドユーザーの数が読みにくい部分があるので、経験を積むことでかなり鍛えられます。また、新しい技術が比較的導入されやすい業界なので、刺激も多いです。ゲーム業界のインフラエンジニアを経験すると、インフラエンジニアとしてのスキルはかなり上がるのではないかと思います。
近年では、新卒スタッフも採用しています。最初はプロジェクトメンバーの補佐として、ゲームの運用に影響があるところを避けながら経験を積んだり、ツールの開発を行ったりします。2〜3年程である程度の仕事を1人でできるようになり、新規プロジェクトにアサインされるパターンが多いです。ちなみに、『グランブルーファンタジー』『ウマ娘 プリティーダービー』といったタイトルも、新卒で入社したスタッフが担当しています。
キャリアの方向性としては、スペシャリストとして技術を突き詰める方向と、マネジメントに向かう方向の2つがあります。どちらの道に進むかは本人の意向を尊重します。
サイゲームスのインフラエンジニアを
目指す人へのアドバイス
インフラ担当の部署としては、得意技術を持った人や専門知識を持ったスタッフが集まった特色のあるチームを目指しています。そのため面接では、サイゲームスで何を目指したいのか、何を達成したいのかを質問します。
それから、課題解決能力を見るために、過去に行った改善施策や課題解決の事例を聞くことが多いです。例えばオートスケール(※6)を導入した話であれば、どのようなデプロイのプロセスを踏んだかといったことを聞いています。導入するだけならWebの情報を基に比較的簡単に実現できますが、それぞれの組織の運用プロセスを変更するのは容易ではありません。導入にあたりどのような課題があり、どのように改善したかを重視しています。
※6 オートスケール……負荷状況に応じて、自動的にクラウドサーバーの台数を増減させる機能のこと
サイゲームスではインフラエンジニアを積極的に募集しています。サイゲームスの作品は世界中にプレイヤーがいますので大規模インフラに挑戦し、インフラエンジニアとして成長したい人は、ぜひご応募いただければと思います。
以上、インフラエンジニアの仕事についての解説でした。
※現在インフラエンジニアに関連する職種の求人募集は行っておりません
サイゲームスでは、その他の職種でも一緒に働く仲間を募集中です。ご興味のある方は、ぜひ一度こちらをチェックしてみてください。
キャリア採用 職種一覧★あわせて読みたいエンジニアにまつわる記事