インフラエンジニア基礎知識
インフラエンジニアの「インフラ」とは、現実世界では道路や鉄道などの交通網、電気、ガス、水道など私たちの生活を支える「基盤」のことです。これをシステムに置き換えると「ネットワーク」や「サーバー」といったシステムを支える基盤を、インフラととらえることができます。インフラエンジニアはこれらの設計や構築を担当するエンジニアを指します。
インフラエンジニアとは
インフラエンジニアとは、システムを構築するために必要なネットワークやデータベースサーバーなどのシステム基盤を設計・構築・運用するエンジニアのことです。
システムを開発するためには、アプリケーションを動かすためのWebサーバーやデータベースサーバ、それらをつなぐためのネットワークなど、「システム基盤」が整っていないといけません。
インフラエンジニアが行うインフラ設計は、開発したシステムを動かすための基盤設計(アプリケーションのデプロイ環境、テスト環境、ネットワーク構築など)を指します。そしてシステムエンジニアやアプリケーションエンジニアはインフラエンジニアが設計・構築したシステム基盤を使ってアプリケーションのデプロイやデータベース構築などを行います。
インフラエンジニアの仕事内容
インフラエンジニアは、システム基盤であるネットワークやサーバーの設計・構築、ネットワークやサーバーの保守・運用を行うエンジニアの総称です。それぞれの役割からインフラエンジニアの仕事内容を解説します。
- ネットワーク
要件定義の段階で、システムを実現するためにネットワークを設計します。またルーターやスイッチなど具体的な機器の選定、導入作業もインフラエンジニアが行います。ネットワークの設計・構築を担当することから、システムによってはインフラエンジニアのことをネットワークエンジニアと呼ぶこともあります。システム基盤にはAWSやAzureなどのクラウドを利用するケースもあり、AWSエンジニア、Azureエンジニアと呼ばれることもあります。
- サーバー
システムにはさまざまなサーバーが使われます。データベースを管理するデータベースサーバーやWebサービスを支えるWebサーバーなどが代表的です。インフラエンジニアはシステムに求められる要件に応じて、ミドルウェアやOSの設定などを行います。なおインフラエンジニアはデータベース領域ではデータベースエンジニアと呼ばれることもあります。
- 保守・運用
ネットワークやサーバーなどのシステム基盤が正常に稼働していることを監視し、トラブルが起きた際は、迅速に対応することもインフラエンジニアの仕事に含まれます。システムを監視するエンジニアのことを運用エンジニアと呼び、トラブルを解決するエンジニアのことを保守エンジニアと呼ぶこともあります。どちらもシステム基盤であるネットワークやサーバーを支える仕事であるため、インフラエンジニアの業務に含まれます。
インフラエンジニアに必要なスキルと知識
インフラエンジニアはネットワークやサーバーを設計・構築・運用すると説明しましたが、具体的には下記のスキルや知識が求められます。
- ネットワーク・・・LANやWANなどのネットワーク設計・構築スキル、ルーターやスイッチなどの機器の知識
- サーバー・・・ミドルウェアやハードウェアの知識、設計スキル
- プログラミング・・・シェルスクリプトなど
- セキュリティ・・・OSやミドルウェアのセキュリティの脆弱性、セキュリティに強固なネットワークやサーバーを設計、構築するための知識
- ヒアリングやマネジメント・・・要件定義フェーズで顧客の要望をヒアリングするスキル、システム全体を見渡して各部署の作業進捗などを管理するスキル
インフラエンジニアとして、すべてのスキルを身につけてフルスタックで活躍するには、相当な経験と自己研鑽が必要です。そのためインフラエンジニアの職務領域の中でも、得意とする分野にフォーカスすることも大切です。
例えばネットワークに強いインフラエンジニア(ネットワークエンジニア)として活躍するのであれば、LANやWANなどのネットワーク設計・構築スキルを身につけるなど、インフラエンジニアとしてのキャリアパスや将来を考えて業務や勉強に励みましょう。
インフラエンジニアに必要な知識1:ネットワーク
WANやLANネットワークの論理設計やルーター、スイッチなどの配置を考える物理設計などを行える知識です。システム全体を俯瞰的に見て、効率良いネットワークを構築することが求められます。そして同時に、ネットワーク保守・運用作業が円滑に進むように配慮した設計をしなければいけません。
システムへの負荷を分散するためのロードバランシングも求められます。
インフラエンジニアに必要なスキル2:サーバー
システム開発で使われるサーバーには、まず物理サーバーかクラウドサーバーの違いがあり、さらにそれぞれWindowsやLinux、UnixなどのOSの違いがあります。要件定義・設計フェーズに参画するインフラエンジニアは、システム要件に最適なOSやクラウドサービスの選定、構築作業を行います。
クラウドサービスを利用したシステムでは、クラウドサービスの内容やアプリケーションのデプロイの方法、サーバーの仮想化、スケーラビリティなどを考慮するケースが多いです。
またアプリケーションをデプロイして、ネットワーク上で動作するシステムを構築するためには、WindowsやLinux、Unixサーバーで使用できるミドルウェア、ハードウェア(物理サーバー)の知識が欠かせません。アクセス量を考えて負荷分散をすることや、ネットワーク設計とともにサーバーのパフォーマンスが発揮できるようにチューニングするスキルも必要です。
インフラエンジニアに必要なスキル3:プログラミング
プログラミングスキルは必須ではありませんが、運用の自動化などのためにシェルスクリプトを組んだり、書き換えたりすることがあります。
またサーバーやデータベースのチューニングのために、PHPを代表としたWeb系開発言語やSQLの知識があると、インフラエンジニア自身でチューニングをし、他のエンジニアと技術的なやりとりがスムーズに行えます。
インフラエンジニアに必要なスキル4:セキュリティに関する知識
システム基盤におけるセキュリティは主にセキュリティ対策製品を使うケースが多くなっています。セキュリティルーターやクライアントのセキュリティ対策製品などの知識を用いて、システムに最適な製品を導入します。
インフラエンジニアに必要なスキル5:ヒアリング、マネジメント
インフラエンジニアは要件定義フェーズからプロジェクトに参画することが多く、顧客の要望を引き出すヒアリング能力があると望ましいでしょう。また業務内容がシステム開発の各部署にまたがることもあることや、機器選定、工事業者監督、進捗状況把握などの業務も発生するため、マネジメント能力も必要とされる場面があります。そういった能力を磨くために、大きな案件に携われるチャンスがあれば、転職して経験を積んでいくのもひとつの方法です。
インフラエンジニア フリーランス案件の特徴
フリーランスがインフラエンジニアとしてプロジェクトに参画する場合、即戦力として参画できれば高単価の案件を獲得することも可能です。
また緊急対応や監視も業務に含まれるケースがあり、24時間365日対応の案件やシフト制で勤務する案件もあります。以下、具体的な業務内容や報酬を見てみましょう。
業務内容
ネットワークエンジニアとしての業務を期待される案件とサーバーエンジニアとしての業務を求められる案件に分かれる傾向にあります。
ネットワークエンジニアとしては、クライアントPCやサーバー、ルーターを接続するネットワークの機器選定や設計の業務がメインとなります。また設計だけでなく、ネットワーク構築作業としてネットワーク工事やその作業監督、立ち会い作業も含まれます。
サーバーエンジニアとしては、サーバーのミドルウェアやOSの導入、設定(チューニング)、アップデート作業、障害対応、セキュリティ対策など、システム開発、稼働をスムーズにするための業務となります。
またAWSやAzureを使ったクラウド上のシステム構築や仮想環境構築を求められる案件も多くあります。
単価や年収の相場
システム開発フェーズによって相場が変わり、上流工程ほど単価や年収は高くなる傾向にあります。
要件定義〜ネットワーク設計・サーバー設計の場合、70〜90万円/月、年収としては約840万~1,100万円前後です。ネットワーク構築のフェーズでは60〜80万円/月、運用フェーズでは40〜60万円/月が相場となります。
上流工程は下流工程に比べて、ヒアリングやマネジメントスキル、セキュリティに精通していることを求められます。下流工程は上流工程の設計書やマニュアルに基づいた業務、あるいは運用マニュアル作成など、少ないスキルで遂行できる業務に限られることもあるため、上流工程に比べると相場が下がっています。
勤務体系
勤務体系は案件によってさまざまですが、週3日〜5日のシフト制勤務、24時間365日対応といった案件が多くなっています。インフラエンジニアの業務にはネットワーク監視が含まれ、特に基幹システムなど高い稼働率(99.9999%など)を求められます。よってトラブルが発生した時には、すぐに対応できる体制を整えておかなければいけません。
初心者向け案件の特徴
初心者、未経験者には設計やネットワーク、サーバー構築の業務が難しいと思われるため、運用・保守フェーズの案件を通じて、業務経験を積むことをおすすめします。
初心者がフリーランスのインフラエンジニアとして勤務するには、システム運用、特にネットワーク運用や監視の経験があると、案件を獲得しやすいでしょう。実際の案件でも運用・保守フェーズをメインとしたものが多く、24時間365日対応で単価上限月60万円あたりが相場となります。
高額案件の特徴
高額案件は実務経験があること、特にプロジェクトで用いる技術を使ったインフラエンジニア経験があることを求められる傾向にあります。
例えば「他プロジェクトでAWSを使ったシステムインフラの要件定義・設計経験があること」など、ピンポイントの経験を指定されることもあります。
高額案件では、要件定義・インフラ設計〜構築フェーズで、長期間、プロジェクトに参画できると案件獲得率が高くなります。
インフラエンジニアがフリーランスとして独立するには
インフラエンジニアはシステム基盤という、フロントエンド側・バックエンド側のどちらも使うネットワークなどを担当します。システム基盤はバックエンド側に属しますが、フロントエンドとの通信やフロントエンドから受け取ったデータの処理はバックエンド側、システム基盤の役割です。よってバックエンド側のネットワークやサーバーの知識を習得するだけでなく、フロントエンド側の知識やプログラミング言語も習得することで、バックエンド側の設計やサーバーチューニングなど、インフラエンジニアとしての業務に役立ちます。
また業務経験を通じて、資格を取ることも有効です。基本情報技術者やCCNA、CCNPなどシステムの基礎を理解していることやネットワークに精通していることを証明できる資格が良いでしょう。
近年はビッグデータを扱う企業も増えており、スケーラビリティにすぐれている仮想環境やクラウド環境構築など、インフラエンジニアの需要は高まっています。AWS関連の資格を取得することも有用です。
フリーランスは特に、会社員に比べると参画できるプロジェクトを選びやすく、業務を選ぶ自由度が高いと言えます。よって広く浅く、そしてできる範囲で深く業務経験を積めることがフリーランスの強みであり、醍醐味でもあります。このようにして経験を積んでいけば、インフラエンジニアとして活躍できるようになります。
また運用・保守業務で夜間勤務もあるため、体調管理をしっかりすることも仕事だと考える心構えも必須です。
まとめ
インフラエンジニアの業務は、システム基盤の設計や構築、保守・運用などの仕事を担います。これらはシステム稼働において責任の重い仕事ですが、やりがいのある仕事です。インフラエンジニアの需要は高まっているので、スキルを磨いてインフラエンジニアを目指すことはフリーランスとして強みが増すと言えます。