インフラエンジニアとは - 業務内容や人材市場価値まで詳細解説

  • このエントリーをはてなブックマークに追加

IT業界に関わる方なら、一度はインフラエンジニアという名前を聞いたことがある方もいらっしゃるのではないでしょうか。エンジニアという名前のつく職種は様々な種類が存在していますが、現在においてもインフラエンジニアは重要な役割を担うポジションとして存在しています。

今までインフラエンジニアは、IT業界での業務がメインであり、ゲーム業界(特にネットワークを介さないコンシューマゲームや、PCゲーム等)の場合、そこまで必要とされるポジションではありませんでしたが、昨今ではネットワーク通信を前提としたMMORPG、ネット対戦・共闘、ネットでのランキング、フレンド機能等々、ソーシャルゲームはもちろん、コンシューマゲームにおいてもネットワーク環境が必須となってきており、ゲーム業界でもインフラエンジニアの需要は確実に増大しています。

今回、インフラエンジニアのという職種をより詳しくご理解いただくために、インフラエンジニアの概要から業務内容、市場的価値、インフラエンジニアになるためのキャリアパスを幅広く解説していきます。

インフラエンジニアとは?

インフラエンジニアを知る前提として、まずインフラという名称について理解をしておきましょう。

インフラとは?

「インフラストラクチャー」の略であり、「土台」や「下部構造」という、裏側でそれぞれが円滑に機能するための設備のことを指します。元々は、道路、水道などの産業基盤となる設備のことを指していましたが、現在ではITインフラという名称で、「ソフトウェア・データ・ネットワークが円滑に作用するための設備」を指すようにもなっています。

インフラエンジニアの役割は、ITインフラの構築・保守・運用になります。さらに言えば、ミドルウェアの設定やチューニングが主な業務です。インフラエンジニアが最適な設定・チューニングを施していれば、サーバーエンジニアなどのITインフラが必須となる職種は、より高いパフォーマンスを発揮する事が出来ます。

今回の記事においてサーバーエンジニアの業務内容に関しては詳しく触れませんが、サーバーエンジニアの業務ではユーザーのアクションに対してサーバーと通信を行うためのプログラムを作成・担当します。インフラエンジニアは、裏側から土台を支えることで、サーバーエンジニアなどが円滑に仕事を行えるようにサポートする重要な役割となります。インフラエンジニアの業務は、他のエンジニアに比べて表に出にくい業務が主となりますが、ITインフラで下支えしているという意味で、「縁の下の力持ち」とも言えるでしょう。

  • ユーザーが使用するデバイスの内部処理を行う。(クライアントエンジニアが担当)
  • デバイスより送信された命令を受け取りサーバーの情報を書き換える(サーバーエンジニアが担当)
  • 更新されたサーバーの情報をユーザーのデバイスに返送する(サーバーエンジニアが担当)

上記を見る限りだと、一見インフラエンジニアが関与していないように感じられてしまいますが、前述の通りインフラエンジニアの役目は、サーバーエンジニアが業務を行うにあたり、必要な環境を用意したり調整を行う、重要なポジションなのです。

では具体的にインフラエンジニアの業務内容としてはどのようなことを行うのでしょうか?次項以降で説明していきたいと思います。

言語から知るインフラエンジニアの業務内容

前項にて少し触れたように、インフラエンジニアの主な業務内容としては、サーバーエンジニアがパフォーマンスを発揮するために、その環境を用意・調整する事となります。その為、インフラエンジニアはサーバーエンジニアの業務内容に関しても把握していることが必要となってきます。

サーバーエンジニアの業務内容では、主に「PHP」「JAVA」「Ruby」といった言語を用い、「API」(アプリケーションインターフェイス)や「クエリ」の生成(クライアントから送られてきたリザルトをデータベースに保存したり、データベースからクライアントにデータを送るといった処理)など上位レイヤーに関しての業務を担当します。

それに対しインフラエンジニアは、上位レイヤーであるサーバーエンジニアの業務を把握した上で、「ネットワーク全体の設計」「パフォーマンスチューニング」「ネットワークの管理・監視」「負荷分散」(ロードバランシング)、「サーバー・データベースの構築、仮想環境の構築」、「サーバートラブルへの対応」といった、下位レイヤーにおいての非常に多岐にわたる業務を求められます。

以下にてそれぞれの業務に関し、少しずつ説明していきたいと思います。

ネットワークの設計

ネットワークの設計では、ゲームなどを運営していく際、ユーザー数や平均売上金額、ゲームの規模に応じて、インフラエンジニアがサーバーのスペック選定や、ミドルウェア選定、クラウドコンピューティング(「IaaS」…Infrastructure as a Service、「SaaS」…Software as a Service、「PaaS」…Platform as a Service等)選定等を行わなければなりません。

この選定によって、ユーザーのプレイ環境が快適かどうかが左右されます。ネットワークの設計には経験が必要になりますが、インフラエンジニアの腕の見せ所といったところでしょうか。

IaaS 「Infrastructure as a Service」の略で、ITインフラをインターネット経由で提供すること
SaaS 「Software as a Service」の略で、パッケージ版として販売されていたものを、ダウンロードコンテンツとして提供すること
PaaS 「Platform as a Service」の略で、ソフトウェアの動作環境(プラットフォーム)を、インターネットを経由で提供すること

パフォーマンスチューニング

設計したネットワークのリソースを100%近くまで使い切るようにメモリやCPUの使用率の設定や、ネットワークのタイムアウト、ミドルウェアが使用するリソースのバッファ設定といった、ミドルウェア、OS等のより詳細な部分の設定を行うのもインフラエンジニアの担当となります。

これらの作業を総称してパフォーマンスチューニングと言います。OS、ミドルウェア、ネットワークの詳細な設定を行うために、ここでもそれぞれに対して専門的な知識が必要となります。またサーバーのパフォーマンス向上により、サーバーの台数を減らす事も可能で、ランニングコストの削減(費用対効果)にも一役買うことが出来ます。

チューニング ランニングコスト削減

ネットワークの管理・監視

インフラエンジニアが設計したネットワークは当然インフラエンジニアが管理・監視しなければなりません。永久に障害が起こらないようなネットワークを構築出来るのであれば勿論それに越したことはないのですが、それは難しいので「MRTG」「Munin」「Cacti」等リソースを監視するツールや「Mackerel」「Zabbix」等の障害を監視するツールを駆使して、障害の早期発見に努める事が重要となってきます。

ネットワークの管理・監視では、グラフからボトルネックや障害を事前に読み取る能力が求められます。病気になる前に発見する、ネットワーク・サーバーの医者というような業務となります。

リソース監視 「MRTG」「Munin」「Cacti」等
障害監視 「Mackerel」「Zabbix」等

負荷分散(ロードバランシング)

負荷分散では、サーバーへのアクセス・負荷などを予測し、サーバーを何台立てるのか、その負荷をどのように分散するのか、同じくデータベースサーバーのデータベース使用量に応じたバッファの設定に関しても考慮しなければなりません。

また負荷の分散に必要なロードバランサー(ユーザーからのアクセスに対して通信負荷を複数のサーバーに分散させるしくみ)ですが、その設置台数に関してはネットワーク、サーバーの管理・監視を行う上で考慮し決定していく必要があり、管理能力が問われます。インフラエンジニアが適切な台数のロードバランサーを設置することで障害率の低下、メンテナンス性の向上を図ることが出来ます。

ロードバランシング 負荷分散

サーバー・データベース・仮想環境の構築

ネットワークの設計を建物の設計段階とするならば、サーバー・データベースの構築では実際に建物を建築していく段階と言えます。サーバーOSの選定、サーバーエンジニアと協力してのデータベースの選定、ミドルウェアの選定等に関しては、基本的に当該インフラエンジニアの造詣の深いものを選定していくことが一般的ですが、クライアントによってはOSやミドルウェアを指定されるケースもあるので、インフラエンジニアは幅広いOSの知識を身に着けておくほうが望ましいと言えます。

仮想環境は構築することにより一つのサーバー上に複数のOSを構築する事が可能となります。例えるのであれば一つの土地の上に複数の建物を建てることが出来るようなものです。また、「VMWare」等の仮想化ソフトウェアを使用することにより、複数の仮想サーバーの一元管理が可能というメリットや他サーバーへのOSの移行が容易になる等のメリットもあり、耐障害性の向上にも繋がります。

サーバーの障害対応

インフラエンジニアの業務として、サーバーにトラブルが無いように適切なネットワークの設計や負荷分散等の調整を行う事はもちろん大切ですが、万が一サーバーダウン等のサーバー障害が起こった際に障害の対応を行う事もまた大切な業務の一つであり、迅速且つ正確な障害対応が求められます。

サーバー 障害対応障害対応時間という言葉もあり、障害が起こってから復旧までの時間単位での損失額に応じて算出される指標も存在するほど重要視されています。また、障害に対する報告もインフラエンジニアの大切な業務の一つで、原因の追究をし、ノウハウを蓄積する事により再発の防止に努める事も大切です。

大まかな説明でもインフラエンジニアにはこれだけの業務があり、それぞれ一つ一つの業務に関しての専門書が出ている程、学ばなければいけない事は多いです。

インフラエンジニアに必要となる作業環境とは

インフラエンジニアの作業において良く使われる環境として「LAMP環境」という言葉があります。LAMPとは単語の頭文字をとったもので、「Linux」、「Apache」、「MySQL」、「PHP(Perl、Python等)」となります。

「Linux」はOSの種類、「Apache」はウェブサーバーの一種、「MySQL」はデータベース、「PHP」はプログラミング言語の一種…つまり「LAMP環境」とはインフラエンジニアの世界において一般的に良く使われる環境の事を指しています。

LAMP環境インフラエンジニアは上記においても調整出来る知識が必要です。しかしながら、ウェブサーバーには「TOMCAT」「Nginx」等他のウェブサーバーも存在しますし、データベースでは「ostgreSQL」「Oracle」、OSに至っては「CentOS」「RedHat」「Debian Linux」等々…多数の種類が存在します。

全てのOS、ウェブサーバー、データベース、言語等に精通する事は非常に困難ですが、様々な環境のうちの一つで良く使われているLAMP環境に関してはインフラエンジニアとして最低限の知識は必要であると言えるでしょう。

市場から考えるインフラエンジニアとしての価値

昨今のゲーム開発においては、前述の通りインフラエンジニアは必須ですが、専門的知識・経験が必要な為、インフラエンジニアになるためのハードルは高く、且つインフラエンジニアになるためには多くの時間を必要とします。その為、インフラエンジニアの数は絶対的に不足しています。

従って人事・採用の市場おいてインフラエンジニアは希少により人月単価が高騰しやすいにも関わらず、今後も需要は高いと考えられます。またインフラエンジニアはゲーム業界だけでなく、ITシステムなど他業界においても需要が高く、不足しがちな為IT業界全体において、知識・経験等が無駄になりにくい、所謂つぶしがきく職種と言えます。前述の通り、学ぶことは非常に多岐に渡り、恒常的に学ぶことも必要ですが、それだけのリターン(価値)がある引く手あまたな職種であるということは明確です。

現在、様々なソーシャルゲームアプリがリリースされていますが、一度タイトルがリリースされるとそのタイトルにはサービスが継続されている限りインフラエンジニアが必要となります。その為、インフラエンジニアがプロジェクトにアサインされている期間は長くなる傾向があり、多額の予算が投じられることからも重要なポジションである為、多くのビジネスチャンスがあります。

インフラエンジニアになるためのキャリアパス

ではインフラエンジニアになるためにはどうしたら良いのでしょうか、本項ではキャリアパスについて説明をしたいと思います。インフラエンジニアは業務内容が多岐に渡り、サーバーエンジニアの業務への理解もある程度必要な為、キャリアパスとしてはフロントエンジニア、サーバーエンジニアとしての業務を経験してからインフラエンジニアに就く方が多いようです。

インフラエンジニア キャリアパス

インフラエンジニアの業務では、それぞれサーバーの構築を行うサーバーエンジニア、ネットワークを構築するネットワークエンジニア、データベース内のデータの最適化を行うデータベースエンジニア、ログの管理、障害対応を行う運用管理・保守エンジニア等多くの業務に触れる必要があります。インフラエンジニアとは上記それぞれの業務を総合的に行うことが求められます。

言わばインフラエンジニアとは上記それぞれのエンジニアの総称とも言えます。それぞれの業務の一つから学ぶことを始め、インフラエンジニアとしての経験を積み、その上でプロジェクトにアサインされるエンジニアを束ねるリードエンジニア、PL(プロジェクトリーダー)を目指し、最終的には社内全体の技術的方向性を決定するCTO(Chief Technology Officer=最高技術責任者)という最上位へのキャリアパスが一例として挙げられます。

まとめ

インフラエンジニアについて包括的に解説してきましたが、いかがでしたでしょうか。昨今のゲーム開発においては、フロントエンジニアに加えサーバーエンジニア・インフラエンジニアのネットワーク開発、運用が必須となりつつあります。インフラエンジニアがいることで、他のエンジニアの業務が成り立つといっても過言ではないでしょう。

また、本文中で述べたようにサーバーのパフォーマンスにはサーバーエンジニアの努力も必要ですがインフラエンジニアの力によってそのパフォーマンスを最大限に生かすことが出来ます。その為、以前よりもインフラエンジニアの重要度が増している事は間違いありません。是非この記事を読んだことをキッカケにして、インフラエンジニアについて興味を持ってみてはいかがでしょうか。

この記事を書いた人

マイナビクリエイター編集部

マイナビクリエイター編集部は、運営元であるマイナビクリエイターのキャリアアドバイザーやアナリスト、プロモーションチームメンバーで構成されています。「人材」という視点から、Web職・ゲーム業界の未来に向けて日々奮闘中です。

サービスに関するお問い合わせ
0120-410-470 マイナビクリエイター事務局 受付時間 9:15〜17:45

サービスに関してご不明な点がありましたら、マイナビクリエイター事務局までご連絡ください。

Facebookページ - マイナビクリエイター編集部
Web・ゲームクリエイターにとって、少し得した気分になるティップス(情報)を配信しています。

カテゴリー
タグ
人気ブログ記事
最新ブログ記事
おすすめ記事コンテンツ
初めての方へ
企業の皆さまへ
ソーシャルメディア
TOPへ戻る