質問: 私は初心者のソフトウェアエンジニアですが、IT界隈ではよく「インフラエンジニア」という名称を耳にします。 その名の通りインフラ周りを担当するエンジニアかと思いますが、具体的にはどのようなスキルが必要なのでしょうか?私としては、インフラエンジニアとしてのスキルも身に付けたいと考えており、どのような知識が必要か確認したい次第です。 最近のサービスでは、AWSなどのクラウドサーバーが普及し、インフラエンジニアが直接サーバ機器を触ることがなくなっているのではないかと思います。ですから私の理解としては、 * AWSなどクラウドサービスの機能を理解し運用できる それに付随する * コンピュータ自体の仕組みに関する深い理解 * サービスの耐障害性やセキュリティなど運用の知識 * ネットワークの知識 * LinuxなどOSの知識、操作 * MySQLなどDBの知識、操作 あたりが求められるかと思うのですが、いかがでしょうか。過不足があれば、ご指摘願います。 また、 ``` - コンピュータ自体の仕組みに関する深い理解 - LinuxなどOSの知識、操作 ``` あたりに関しては、今後深く学習を進めたいと考えており、本格的に学習するのに適した書籍などございましたら、ご紹介いただけると幸いです。 **追記: 皆様ありがとうございました。 全てのご回答を読ませていただき、やはりインフラといっても範囲が広範にわたり漠然としていることがわかりました。該当分野を網羅的に教えていただき、今後の学習の参考になりました。 ベストアンサーとしては、単純に比較ができないのですがもっとも詳細にご説明いただいた方にいたしました。**
回答: 他の方も言っていられるようにインフラに関することを全般的にやっているエンジニアになります。 私もインフラ周りをやっていますが細かいことを挙げるとキリがないのでざっくり言うと、 「○○というWebアプリを使いたいから使える環境用意して!!」もしくは「○○がやりたいから出来る環境を用意して」と言われて自力で用意出来る人がインフラエンジニアかと思っています。 ○○というWebアプリがRubyやPHPで動いていれば、RubyやPHPが動くサーバーが必要になりますし、 データベースを使用していればデータベースを載せる必要があります。 またアクセスやアプリの特定を考えてデータベースは別に構築することもあれば、障害時のことを考慮して複数構築することもあります。 アクセス数を想定して回線の太さも検討したり、Webの入り口を複数作成することもあります。 今は仮想環境で誰でも簡単に環境を作成できるので一度試してみるとよいかと思います。 インフラ側が見えてくるとソフトウェアの設計にも色々と考えるところが出てくると思います。 実際にはインフラエンジニアに向けてCiscoの資格やデータベース向けの資格などの取得を目標にされてみるのも良いのではないかと思います。 個人的には仮想化は進んできていると実感はしますが、まだまだオンプレが多く実際の物理サーバーを触ることも少なくありません。 その為、本当に幅広くなってしまうのでソフトウェアエンジニアと接点の多い部分(データベースや負荷など)から徐々に広げていくのが現実的かと思います。