質問: 最近webフレームワークやサーバレス技術、クラウド技術が発達してきて、前のようにガチガチのインフラエンジニアは少なくなってきてるように思えます そこで、話題のwebフレームワークやAWSなどクラウド系の技術を扱うエンジニアはインフラエンジニアと呼べますか?個人的な感覚としては、インフラエンジニア寄りのサーバサイドエンジニアと思っていますが、皆様の意見も聞きたい所存です。
回答: ガチガチのインフラエンジニアと仰られているのはオンプレミス側のインフラエンジニアと察しますが クラウドでもオンプレミスでも同じインフラエンジニアです。 ただし私は前者をクラウドエンジニアまたはクラウドインフラエンジニア 後者をオンプレエンジニアまたはオンプレインフラエンジニアと明確に分けて呼称しています。 ちなみにクラウドエンジニアのお仕事は、こんな感じです。 * オンプレのサーバをクラウド化 * クラウドサーバを新しいクラウド構成に刷新 * クラウド切り替え(AWS→AZURE、AZURE→AWS) * クラウドのサーバのオンプレ化 クラウドエンジニアは、オンプレの技術も時には必要ですし、知らないと設計書が書けないのです。 インフラエンジニアもSEやプログラマと同じで 要件定義→設計→構築→単体テスト→結合テスト→リリースという工程がちゃんとあります。 主にOSに至るまでのネットワークなどの設定やセキュリティ担保、OS基盤を専門にします。 ミドルウェア側は、ApacheやTomcatインストールぐらいまででアプリ側(プログラマ)に引き渡します。 最近では、JenkinsやZabbixなどのツール類、IaC(Infrastructure as Code)、AnsibleやFabricの登場でプログラマのインフラ化やインフラエンジニアのプログラマ化してきており、住みわけが曖昧になってきているのも事実です。 しかしながら、生粋のインフラエンジニアがコードやシェルをかじる事はあったとしても、 プログラマ側がインフラも担うには少々ハードルが高く、それによりインフラの責任も持ってしまいます。 下手に手を出さないようにしたほうが身のためですね。 障害発生した場合は、プログラミングエラーと違って 障害がネットワークなのか、基盤の設定なのか、OSの設定なのか、ミドルなのかアプリなのか どこにあるかわからないものを1個1個つぶしていくのが、インフラ屋の仕事です。 プログラミングに専念してもらったほうが良いと思います。 棲み分け自体はこんな感じかな !インフラエンジニアマップ 補足追記 リリースまでの速さを求められるWEBエンジニアやCAPDサイクルを回すスクラム開発をやっている人には少々わかりにくい説明だったので補足しておきます。 オープン系や業務アプリをやっているようなプログラマには"工程"があります。 いわゆるウォーターフォールモデルというものです。 要件定義→設計→開発(プログラム)→単体テスト→結合テスト→リリース→運用 先に述べたようにインフラエンジニアでは、ウォーターフォールモデルに沿っており、 成果物という名のドキュメント類が必要になってきます。 以下は例です。 * 設計書:システム構成図、クラウド構成図、パラメータシート(設定値を書いたもの) * テスト:テスト仕様書、テスト結果 * 手順書:構築手順書、運用手順書 これらをお客さん側も求めてきますので、単に構築だけすれば良いというわけでは無いので 注意してください。 特にパラメータシートを作るのがめんどくさいです。 これはコンピュータの定義書と同じ感じです。 HDDは何TiBなのかとか仮想メモリはどれぐらいとか、 スタートアップすると起動するアプリケーション一覧とかファイヤーウォール一覧とか インストールされているWindowsUpdateのKBxxxxの一覧とか 普段我々が見たことないところまで事細かく書く必要があります。 これらの情報をいちいち見て書くのは日が暮れますので、 多くのインフラエンジニアは、サーバー内情報を抜き取るツールを自分で管理していると思います。 しかも自分のKnow-howなのであまり公開したがらないため、ネットで見つけるのも苦労します。 一例を上げますとWindowsのcmdで `systeminfo` とか `driverquery /v` とか `fsutil volume diskfree c:` のコマンド群とかになります。 まとめますと、インフラエンジニアでも十分仕事はあります。 むしろ、人を確保するのが困難で、できる人がいない上に、 一旦案件に携わると1年~5年スパンになってきます。 それ故に、インフラエンジニアの引き合いはとても多く、 会社側もインフラエンジニアを手放さないですね。 仕事内容も全体を見渡して物事を考えないといけませんので、 考慮しないといけないところはかなり多くなると思います。 仕事は2つの意味で**ハード**ですね。