インフラエンジニアとは?現役インフラエンジニアが具体的な仕事内容をご紹介
エンジニアという職種には様々な種類があります。その中でもインフラエンジニアという職種はご存知でしょうか?
エンジニアといえばプログラミングやアプリケーションがイメージされやすいですが、このインフラエンジニアもそれらをユーザーに提供するために重要な役割をになっています。
今回は、オンプレミスというクラウドではない環境をメインでお話しさせていただきます。
インフラとは?
アプリケーションやシステムを稼働させるにあたり必要になる、サーバやネットワークのことを指します。
複雑なアプリケーションや大きなシステムといえどその実態はコードが記載されたファイルです。
なので、それ単体では動作することはできません。
例えば、Javaで作ったアプリケーションを動かす場合はそれが動くサーバが必要になりますし、Javaを動かす前提となるソフトのインストールもしなければいけません。。
さて、サーバが用意できたらそれで終わりでしょうか?
いえ、まだです。
どんなに便利なアプリケーションでも接続できなければ使うことができません。
ネットワークの設定を変更したり、新たに構築したりしてサーバをネットワークに接続してあげる必要があります。
まとめると、ITの世界におけるインフラとはこの2つになります。
- アプリケーションが動作するためのサーバ
- アプリケーションが動作しているサーバ接続するためのネットワーク
ネットワークのイメージが掴めないという方はこちらの記事で基本的なところを解説していますのでぜひご覧ください。
私が聞いたことある範囲では、「ITインフラ」「基盤」「IT基盤」などの呼び方や記載方法がありましたがITの話の中では全て同じ意味と捉えて差し支えないと思います。
IT業界はこのような呼び方が統一されていないのが初めのうちはきついですねー。。。
インフラエンジニアとは?
先ほど述べたようなインフラを扱うエンジニアをインフラエンジニアと言います。
これだけだとわかりづらいので、実際にどのようなことを業務で求められるのかをご紹介します。
新しいシステムが動くサーバを用意して!
インフラとは?でご紹介した通りサーバが必要で、それを用意するのもインフラエンジニアの仕事です。
サーバを用意するというのは、物理的なサーバを買ったり、仮想サーバを作成したりと方法は様々です。
さらに、ここでの用意とはアプリケーションが動くために必要なものもインストールする必要があります。
Javaで作られたアプリケーションであればJavaをインストールしなければなりませんしWebアプリケーションとしたければNginxやTomcatのようなミドルウェアと言われるものもインストールして動作するアプリケーション用にセットアップする必要があります。
まとめると
- サーバ自体の用意
- サーバのセットアップ
- アプリケーションに必要なものをサーバにインストール
既存のネットワークに接続したいからネットワーク機器の設定変えて!
イメージしづらいですが、ネットワークも実態は物理的な機器です。
既存のネットワークに何かを接続したいとなると実際にその機器にケーブルを接続してあげる必要があります。
(ケーブル自体の作成も先端部分だけですが自分で作成することがありますw)
さらに接続したら、その機器の設定を変更しなければいけません。
設定内容は要件によりますが、イメージしやすくするため設定内容の例も列挙しておきます。(あくまで一例です)
- インターフェース(接続口)の設定
- vlanの設定
- aclの設定
- lagの設定
- ルーティングの設定
まとめると
- ケーブルの接続
- ネットワーク機器の設定変更
仕事の流れ
一般的な仕事の流れで、
「設計」「構築」「テスト」「運用」
の4段階で仕事を進めます。
それぞれのフェーズでやることや作るものを経験をもとにご紹介したいと思います。
設計
やること
ここでは、要件を把握してサーバやネットワークを構築する準備を行います。
サーバでは、
- 何台用意する必要があるのか
- どんな性能のものを用意するのか
- 何をインストールする必要があるのか
- どのように運用するのか(メンテナンスや障害発生時の対応方法など)
と言ったことを設計段階で決めます
ネットワークでは、
- どんな機器が必要か
- ネットワークのIPアドレスは何にするか
- 冗長化はどこまでするか
- 接続を許可するネットワークをどこにするか
- どのように運用するか(サーバと同じ)
などです。
作るもの
設計段階では、基本的にドキュメント類の作成が主な成果物になります。
サーバでは、
- サーバの設計書(スペック、設定内容、インストールしたソフトなどを記載します)
- 運用手順書(障害発生時や想定される設定変更手順をあらかじめ作成します)
ネットワークでは、
- 物理ネットワーク図
- 論理ネットワーク図
- 各種ネットワーク機器の設計書(ポートの情報、設定内容などを記載します)
構築
構築段階では、設計段階で作成した成果物をもとに実際に必要なものを構築していきます。
やること
サーバでの作業は、SSHやリモートデスクトップで対象にログインして初期設定などを進めます。
- サーバの調達
- サーバの初期設定
- 必要なソフトのインストール
- インストールしたソフトの設定
ネットワークでの作業は、sshやtelnetといったCLIで操作するためのプロトコルで機器にログインし作業を行います。
- ケーブルの結線
- ネットワーク機器の設定変更
作るもの
ここでは、そのまま設定されたサーバとネットワーク機器が成果物になります。
インフラエンジニアをやっていて構築作業が一番楽しく感じます。
テスト
この段階は、構築したものの動作に問題はないか、セキュリティの脆弱性はないかなどを確認します。
やること
サーバで確認することは
- 設計書通りに作られているか
- 脆弱性はないか
脆弱性については、外部の脆弱性診断サービスを利用して、「不要なポートは開いていないか」「暗号化の強度は十分か」などを確認します。
ネットワークでは、
- 目的の通信ができるか
- 障害発生時をシミュレーションしたテスト
シミュレーションのテストは、冗長構成の時に、実際にケーブルを抜いてみたり、機器の電源を落としたりしても通信を継続できることを確認します。
作るもの
サーバでは、
- テストケース(テスト仕様書)
- 脆弱性診断レポート(外部サービスが作ってくれる)
- テスト結果報告書(自分たちでやったテストのまとめ)
ネットワークでも
- テストケース(テスト仕様書)
- テスト結果報告書
を作ります。
私はインフラエンジニアをやっていて一番きつい作業だと感じます。
運用
ここの段階では、必要なものが全て出来上がっている状態です。
やること
作成した、サーバやネットワークが正常に動作しているかをソフトで常に監視します。
サーバ側ではこんな項目を監視します。
- 通信できるか
- 必要なプログラムが動いているか
- CPU・メモリの値は正常か
- ディスクの空き容量は十分か
ネットワーク側ではきほんてきに、
- 通信できるか
を監視します。
この監視で以上があった場合、メールやチャットにアラートメッセージが送信されて担当者が駆り出されます。
これが、インフラエンジニアが深夜業務が多いと言われる所以です。(おそらく)
また、運用については、会社によって専門の部署があったり、外部ベンダーに委託しているといったところもあります。
最後に
インフラエンジニアについて少しでもイメージは膨らみましたでしょうか?
私自身、就職活動している段階でインフラエンジニアという職種については、「サーバとかネットワークとかでしょ」というレベルの認識でした。
昨今、プログラミングスクールの充実でアプリケーション側のエンジニアに興味を持っていただけることが多いのかなといったイン場です。
たしかに、アプリケーションに比べると影のうすいインフラエンジニアですが、実はどんなアプリケーションでも土台にはインフラがあります。縁の下の力持ちなのです。
この記事を読んだ方にとって、インフラエンジニアという職種が、少しでも興味を惹けるものになったらとても嬉しいです!
最後までご覧いただきありがとうございました!