これからのインフラエンジニアに求められるスキル
クラウドサービスを使いこなせればインフラエンジニアになれる?
仮想サーバを提供するクラウドサービスがさまざまな領域で浸透し、実際にハードウェアを触ることなくインフラを構築することが可能になりました。さらに最近では、サーバリソースに加えてOSやミドルウェアまでを含めて提供するPaaSも広まっており、ハードウェアやOSの知識や経験が乏しくてもそれなりのインフラを整えることが不可能ではなくなっています。
このような背景から、インフラエンジニアの仕事も大きく様変わりしつつあります。従来であれば、性能や可用性といった要件に応じて物理サーバを選定し、それをデータセンターのラックに収容してネットワークに接続、そしてOSやミドルウェアをインストールして、といった作業を行っていました。しかし現在では、クラウドサービスのコントロールパネルにWebサーバでアクセスすれば簡単に仮想サーバを立ち上げることができ、ラッキングやケーブルの配線といった作業は不要です。OSやミドルウェアがあらかじめインストールされたテンプレートを利用すれば、それらのインストールや設定すら行う必要はありません。
では、従来のインフラエンジニアのスキルやノウハウは不要になったのでしょうか。もちろん、そんなことはないでしょう。仮に実際に物理サーバを触る機会がなくても、CPUやメモリ、ストレージといったハードウェアの知識、あるいはOSやミドルウェアをセットアップして設定するノウハウが必要となる場面は数多くあります。
インフラの基礎スキルがモノを言う数多くの場面
一例として挙げられるのは障害発生時の対応でしょう。ハードウェアやOSの知識があれば、たとえクラウド上の仮想サーバを使っている場合であっても、その挙動から具体的にどのあたりに障害が発生しているのかを想定し、それを元に原因の切り分け作業を行うことができます。これにより、原因がクラウドサービス側であれば対応を依頼することができますし、逆に自社側に問題があった場合にはすばやく障害復旧に取りかかれます。
逆に原因の切り分けを行うことができなければ、原因究明の大部分をクラウドサービスの提供事業者に頼らざるを得ず、迅速に復旧できるかどうかは外部に依存してしまうことになります。自社サイドに問題があった場合でも、インフラについての基礎知識がなければ復旧に手間取る可能性は高いでしょう。
クラウドの普及によって直接目にすることはなくなりましたが、インフラエンジニアとしてハードウェアやネットワークの知識は必要不可欠です。
幅広いスキルが求められるインフラエンジニア
インフラエンジニアにとって必須の素養だと言える、ネットワークの知識も重要です。クラウドサービスではネットワーク設定の多くが自動化、あるいは簡略化されており、自らルーティングテーブルを記述したり、ルーティングプロトコルを設定したりする機会は減っています。ただ何らかの原因で通信が切断されたといった際、ネットワークの知識がなければ原因の切り分けもトラブルシュートもできず、保守を委託している外部のベンダーや通信事業者頼みになりかねません。
昨今多くのインフラエンジニアに注目されている、コンテナ技術であるDockerやプロビジョニングツールであるChefやAnsibleといったツールを使う上でも、ハードウェアやネットワーク、OS、ミドルウェアの基本的な知識は必要です。特にこれらのツールを駆使し、自社にとって最適なインフラを構築するということであれば、インフラについての深い知識が求められます。
クラウドの登場、そしてDevOpsに代表される新たなトレンドにより、確かにハードウェアやネットワークを細かく設定したり、OSやミドルウェアをセットアップしたりする機会は減っていますが、だからといってインフラの知識やノウハウが不要になったわけではありません。クラウドサービスを使って構築するインフラに対し、プラスアルファの価値を付加するのがこれからのインフラエンジニアの役割であり、そのためにはハードウェアやネットワークの知識が必要になるからです。
今の時代を考えれば、クラウドサービスを適切に使いこなすためのスキルは大切です。ただ、それで満足してしまうのではなく、土台となるハードウェアやネットワークの知識までしっかり身に付けておけば、インフラエンジニアとして活躍する上で大きな武器になるでしょう。