ネットワークエンジニアや、サーバーエンジニアの求人を見ていると、「インフラエンジニア」という職種を目にすることがあります。
今回は、インフラエンジニアとは何なのか、ネットワークエンジニアとサーバーエンジニアの違いなど、インフラエンジニアについて解説していきますので、インフラエンジニアに転職を考えている方や、興味のある方は是非参考にしてみてください。
1. そもそも「インフラ」とは
「インフラ」とは、インフラストラクチャー(Infrastructure)の略語で、「基盤」「下部構造」などの意味があります。日本では、生活に必要な基盤となるものが「インフラ」と呼ばれています。電気やガス、水道などです。
インターネットが普及した現在では、PCやスマートフォンなどの機器やインターネット環境なども生活に欠かせないものとなりました。ITの分野では、情報通信に必要な基盤を「ITインフラ」と呼びます。
ITインフラは、以下2つに分類できます。
1. ネットワーク、パソコン、サーバーなどのハードウェア
2. そのハードウェア上で動くOS、ミドルウェアのソフトウェア
また、インフラの所在の違いとして以下の2種類があります。
1. オンプレミス:自社内やデータセンターでユーザー自身が管理運用
2. クラウド:クラウドベンダーのリソースをネットワーク経由で利用
2. インフラエンジニアとは
インフラエンジニアとは、ITエンジニアの職種の一つで、前述したITインフラの設計構築、および運用保守を担うエンジニアのことを言います。
2.1 ITエンジニア業界でのインフラエンジニア
インフラエンジニアは主にネットワークエンジニア、サーバーエンジニア、データベースエンジニアに分かれます。あなたに合った職種が気になったら、以下の記事も参考にしてみてください。
2.2 ネットワークエンジニアとサーバーエンジニア
ネットワークエンジニアとサーバーエンジニアを合わせてインフラエンジニアと呼ばれることもあります。
サーバーは構築しただけでは不十分で、実際に利用するためにはインターネットに公開する必要があるため、最低限はネットワークの知識がなければなりません。逆に、サーバーエンジニアの技術として有名なLinuxの技術は、ネットワーク機器にも通じる部分があります。
ネットワークエンジニアとサーバーエンジニアは、言葉こそ分かれてはいますが、インフラ部分を担うエンジニアという意味では同じであり、明確に分担をされていないというのが実際のところです。
【ネットワークエンジニア】
コンピュータやサーバを、ルーターやスイッチなどのネットワーク機器で接続し、データを正常に受け渡すネットワーク(回線)の業務を担うエンジニアのことを、ネットワークエンジニアと呼んでいます。
▶ フリーランスのネットワークエンジニアが活躍できる理由を徹底解説
【サーバーエンジニア】
インターネット上には、メールを送受信するためのメールサーバ、Webサイトを表示させるために必要なWebサーバ、必要な情報が蓄積されているデータベースサーバーなど、私たちのリクエスト(要求)に合わせてデータを返す(応答)役割を果たす「サーバー」が存在します。
サーバーエンジニアとは、文字通りこれらのサーバーの業務を担うエンジニアのことを指しています。
2.3 インフラエンジニアの業務はITインフラの設計、構築、運用、保守、監視
インフラエンジニアは、ITインフラを設計・構築し、それらが問題なく動くための運用・保守を行います。
快適なIT環境を提供するための業務ですが、詳しく分類すると以下の通りです。
■ 要件定義
お客様の希望をヒアリングして、どのようなITインフラを作成するかを決定する。
■ 設計
どの機器を用いて、どのような構成および設定値にするかなどを決定する。
稼働した後にどのような取り決めで運用していくかも合わせて検討する。
■ 構築
機器を調達して実際に接続などの構築を行う。
■ テスト
設計書通りに問題なく動作するかのチェックを行う。
■ 運用保守
正常に動作しているかを監視し、障害が発生した場合にはトラブルシューティングを行う。
2.4 インフラエンジニアが扱う機器
インフラエンジニアが実際に扱う主な機器としては、以下のものがあります。
■ ルータ
ネットワーク同士を接続する機器。
データの最適な転送経路を決定(ルーティング)し、データの転送を行う。
■ スイッチ
各機器の集約装置。
スイッチに直接接続された特定の機器に対してのみ通信を行う。
■ サーバー
Webサーバー、DBサーバーなどユーザーに対してサービスを提供する機器。
■ ロードバランサー
2台以上のサーバーに対して、通信を分散させる負荷分散機器。
■ ファイアウォール
社内および、社外ネットワークの間などに設置し、特定のデータを通したり破棄するなどのアクセス制御をするシステム。
■ ストレージ
ハードディスクなどのデータの保存場所。
2.5 インフラエンジニアに必要なスキル
インフラエンジニアに必要なスキルは、ネットワークとサーバーの幅広い知識と、コミュニケーションスキルが挙げられます。
■ ネットワークとサーバーのスキル
ITインフラの設計、構築、運用保守といったITインフラ全般の業務を行うためには、ネットワークとサーバーの深いスキルが必要です。
様々な機器を相互接続してITインフラを構築するため、機器の機能やスペックの他、サーバーのOSや、Apacheなどのミドルウェアのインストールと設定方法、サブネットマスクやIPアドレス、サーバーのセキュリティ、冗長化や負荷分散を考慮した設計など、インフラ技術に幅広く精通する必要があります。
■ コミュニケーションスキル
要件定義では顧客のニーズを的確に聞き取る必要があり、保守においては障害状況を端的に顧客へ伝える必要があります。
また、一般的にインフラ業務はチーム作業となるため、チームメンバー間での適切なコミュニケーションも必須です。
■ クラウドスキル
近年はクラウドサービスを扱う機会が広がってきました。クラウドサービスの基礎知識だけでなく、実際にクラウドサービスを使って設計・構築・保守などを行うスキルを求められる現場が増えています。
▼ クラウドサービスの例
• AWS:Amazon社のクラウドサービス
• Azure:Microsoft社のクラウドサービス
• GCP:Googlet社のクラウドサービス
2.6 インフラエンジニアのキャリアパス
インフラエンジニアは、異業種からの転職例も多く、IT業界が未経験の方でもチャレンジできる可能性のある職種です。
具体的なキャリアとして、まずインフラの運用保守の案件からスタートし、設計構築などの業務へと段階を踏むことでキャリアアップしていくのが一般的となっています。
キャリアパスも様々で、サーバーエンジニアからネットワークエンジニアへの転職や、プロジェクトマネージャー、管理職を目指す、もしくは技術者としてスペシャリストを目指す、経験を積んでコンサルタントを目指すなど、企業によってもキャリアパスは多岐にわたっています。
3. インフラ、開発の違い
就職や転職において、開発系とインフラ系のどちらにするかを迷う声がよくあります。
開発の業務は、基幹系システム、パッケージソフトなど、実際にユーザーが利用するためのアプリケーションの設計から実装、リリースに至るまでを主な業務としています。
それに対してインフラの業務は、アプリケーションそのものをデプロイするためのサーバーや、複数の拠点間でサービスを利用するためのネットワークを構築するなどと言った、開発された基幹系システムやアプリケーションを入れるための「箱」を設計構築、運用する業務となります。
両者は求人として初めから分かれている場合もあれば、ITエンジニアとして入社した後、キャリアチェンジしてインフラ業務、もしくは開発へとシフトしていく場合などもあります。
4. インフラエンジニアが取得しておきたい資格
インフラエンジニアが取得しておきたい有名な資格として、「CCNA」「LinuC」があります。
• CCNA:ネットワークエンジニア向け
• LinuC:サーバーエンジニア向け
4.1 CCNA
CCNAは、IT環境に対応できる能力を証明する認定資格です。ネットワークの基礎、IPサービス、セキュリティの基礎、自動化およびプログラマビリティのスキルを問う内容となっています。
正式名称 | Cisco Certified Network Associate |
---|---|
主な対象者 | ・エントリーレベルのネットワークエンジニア ・ヘルプデスク技術者 ・ネットワーク管理者 ・ネットワークサポート技術者 |
試験日 | 毎日実施(試験会場ごとに異なる) |
受験方法 | オンライン試験 会場試験 |
受験料 | 36,960円(税込) |
公式サイト | https://www.cisco.com/c/ja_jp/training-events/training-certifications/certifications/associate/ccna.html#~about-ccna |
4.2 LinuC
正式名称 | LinuCレベル1
LinuCレベル2 LinuCレベル3 |
---|---|
主な対象者 | - |
試験日 | 随時実施(試験会場ごとに異なる) |
受験方法 | ・オンライン試験 ・会場試験 |
受験料 | 1試験16,500円(税込) |
公式サイト | https://linuc.org/ |
5. インフラエンジニアもプログラミングスキルが必要になっている
5.1 シェルスクリプト
インフラエンジニアが構築するサーバーのOSとしてはLinuxが有名です。
Linuxには処理を実行するための核となる「カーネル」がありますが、カーネルは0と1からなるコンピュータの言語しか理解できません。
ユーザーとカーネルの間で翻訳者としての役割を果たし、ユーザーからの指示をカーネルに伝えるためのプログラムとして「シェル」が存在します。
シェルは、ユーザからのコマンドを受け付けてカーネルに処理をさせ、結果を表示するためのプログラムです。
シェルスクリプトとは、シェルが理解できるコマンドを列挙したものとなります。
連番をふったフォルダを複数作成したい場合や、ファイル名を一括でリネームしたい場合など、従来のインフラエンジニアにおいては、シェルスクリプトによるプログラミングが一般的でした。
5.2 軽量プログラミング言語(LL言語)とインフラ構成管理ツール
しかし、クラウドの発展に伴い、インフラエンジニアの業務にも変化が表れています。
従来のオンプレミスと比べると、サーバーを構築・運用する手作業の部分が減り、今後はリリースまでのスピードが重視され、インフラエンジニアの需要もこの変化に合わせてこれからますます増加するものと思われます。
この流れでインフラエンジニアは、従来のシェルスクリプトだけではなく、他の軽量プログラミング言語(LL言語)の知識も必要になってきています。
軽量プログラミング言語とはLightweight Languageの略で、学習が比較的易しいと言われている言語のことで、Perl、Ruby、Python、PHPなどが挙げられます。
現在のインフラエンジニアの業務では、サーバーのセットアップなど手動で行っていた作業を、プログラミング言語でコード化して自動で実行する仕組みが導入され始めており、インフラの運用や構築を自動化するためのインフラ構成管理ツールが注目されています。
インフラ構成管理ツールとは、
① OSインストールなどを自動で行うもの
② OSやミドルウェアなどの定義ファイルを自動で作成するもの
③ 複数サーバの管理を自動化するもの
の3つに分類されます。
種類 | 主なツール | |
---|---|---|
① | OSの起動を自動化する(Bootstrapping) | Vagrant |
② | OSやミドルウェアの設定を自動化する(Configuration) | Chef、Ansible |
③ | 複数サーバの管理を自動化する(Orchestration) | Capistrano |
ChefにはRubyが使われており、AnsibleはPythonで実装されています。
これまで手動で設定していた機器の設定値などを、Rubyなどの軽量プログラミング言語によってコードで記述する必要が出てきており、今後はインフラエンジニアにおいても、このようなプログラミング言語の知識も必要となってきています。
6. インフラエンジニアにおすすめのオンプレミス/クラウド案件
オンプレミス関連のおすすめフリーランス案件をご紹介します。
6.1【オンプレミス】おすすめフリーランス案件
オンプレミス関連のおすすめフリーランス案件をご紹介します。
出典:インフラエンジニア★有名経済情報プラットフォームの開発|プロエンジニア
プラットフォーム展開をしている企業の案件です。主な業務内容として、オンプレミス、GCP、AWSを利用したハイブリッドクラウドの構築などがあります。常に新しいことを取り入れ、挑戦し続けられる環境です。
6.2【クラウド】おすすめフリーランス案件
クラウド関連のおすすめフリーランス案件をご紹介します。
出典:インフラエンジニア★某大手企業向けクラウドインフラ構築|プロエンジニア
大企業向けのクラウドインフラを構築・運用する業務です。運用手順の標準化やマニュアルの作成も行います。月額単価は80万円からです。
7. まとめ
インフラエンジニアとは、IT社会の基盤を支える、とても重要な職種です。
手元のスマホやパソコンで使えるサービスをはじめ、ITシステムは様々な分野で私たちの生活に密接しています。そのIT基盤を支えているのは、サーバーエンジニアやネットワークエンジニアなどの「インフラエンジニア」にほかなりません。
是非、インフラエンジニアの求人にチャレンジしてみてください。
当サイトプロエンジニアのコンサルタントが厳選したおすすめのフリーランス案件特集はこちら
特集ページから案件への応募も可能です!
実際にフリーランスエンジニアとして活躍されている方のインタビューはこちら