インフラエンジニアとは何だろうか？

みなさん、こんにちは！
僕はインフラエンジニア歴3年の見習いエンジニアです！

この記事では、インフラエンジニアって何か？
そして、どんな仕事するのか？
ということをエンジニア歴3年目の僕が書きたいと思います！

![DFUbov7UIAEcZ63.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314234/a0668df6-7c4f-7c24-a24b-a49d6c724557.jpeg)




#インフラエンジニアってどんな仕事？

イベントやITとは無関係のセミナーに参加する際に、
「インフラエンジニアってどんな仕事するんですか？！」とよく言われます。
そんな時、
「動画サイトやゲームサイトで、[ただいまメンテンス中です。]という画面が出る時があるじゃん？
その裏方の仕事やってるんだよね～」と答えます　笑
![75f50bb17c312cfbaa110cf1bf587fc2b2d20eb2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314234/f3285c28-909c-eab1-6c26-8a550b3a654f.png)




ただ、もっと詳しく言いますと、
**「サービスを24時間365日、継続的に顧客に提供するために、サーバ・ネットワーク周りの管理・運用を行う」**
このような仕事を行ってます！！
深夜のメンテナンス作業も仕事の一部ですが、
日中においても、お客様が使うサービスの監視、運用、管理を行うのですね～
あと、サーバ・ネットワークの構築、設定も行ったりもしてます。

#サーバとは？
![画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314234/22686b08-86db-cb4c-ced6-17380c422f94.png)


サーバ(Server)とは、大雑把に言いますと、
**「サービスを提供する大きいコンピュータです。」**
（よく2ちゃんねるとかで、「鯖」とか言われてますけど、これのことです。）

皆さんがパソコン上で検索するとき、動画を見るとき、ゲームをするときなど
パソコンは「○○○のサービスを受けたい」という通信をサーバに向けて投げてるんですね。

サーバはリクエストがあったサービスを提供します。

これが、サーバの役割です。

このサーバが問題がなく動いていることを監視するのが、インフラエンジニアの仕事というわけです。
また、サーバの設計、構築、設定をするのもインフラエンジニアの仕事でもあります。

#ネットワークとは？
![gettyimages-636224940-2048x2048.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314234/166e969e-45a2-cd0a-7741-bdfb120c4e2e.jpeg)


一度は聞いたことがあると思いますが、
ネットワークとは、
**「複数のコンピュータやサーバを結び、情報を相互に通信できるようにしたシステム」**です。

このネットワークの形態を作るのには、
「スイッチ」、「ルータ」といったネットワーク機器を設定したり、別の機器とつなげたりする必要があります。

インフラエンジニアはこういった仕事も行います。

![3229A0FD-40D4-4796-9FEE-29A8DC4FCC04.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314234/bacc5715-f2cf-cd1c-9cc8-d9a7b4089776.jpeg)

ちなみに、上の画像は秋葉原で個人で購入した「ネットワークスイッチ」というものです。

これを東京から大阪まで新幹線で持って帰りました 笑笑(アホですよね)

#24時間365日活動するの？

インフラエンジニアの仕事は、
基本は24時間365日の運用体制です。

しかし、もちろん一人で24時間体制で監視、運用することなんてムリですよね。
できるとしたら、超人や神、スーパーサイヤ人ぐらいですよね～

なので、昼間に運用する人、夜中に作業する人、休日に監視する人で
手分けをして仕事をしてます。

そのため、インフラエンジニアはチームワークが本当に大切なんですね！

#インフラエンジニアで必要なスキルは？

個人的に思う、インフラエンジニアであった方が良いと思う能力は下の通りです！

##探求心
「このシステムはどのように動いているのだろう？」
「なぜ、このような実行結果になるのだろう？」
「どうすればこの問題は改善させるのなだろう？」
といった自分に問うような探求心は非常に大切だと思います。

##失敗を受け入れる力
インフラエンジニア関係ないと思いますが、
主体的に仕事やっていれば、いつか必ず失敗します！！

その失敗をどう捉えるのかが、
成長するか、しないかの分かれ道立ちということを信じてます！！

##人と会話する
チーム内はもちろんですが、
外部に委託しているベンダーさんと会話することもあります。
そのため、人と会話していく力は本当に重要だと思います！

##経験
結局のところ、経験がものを言います。
座学をして、知識だけをかき集めるインプットだけでは、
インフラエンジニアとしての成長はしないと思います。

障害対応に関して言えば、
「インフラエンジニアの教科書」という本に下のようなことが書かれてました。

「実戦経験のない技術者が障害対応するということは、
いわば研修医がいきなり手術を行うようなものです。
いかに実戦経験を積めるかが技術者の成長として大事です。」


#必要な技術系スキル
以下にインフラエンジニアとして必要だろうと思う技術スキルを挙げておきます。

ただ、大事なのは、用語を覚えればOKではなく、
覚えた知識を目的に沿って、扱うことが大事だと思います！

**OS**
・プロセス、スレッドの仕組み
・メモリ管理の仕組み
・ネットワーク周りの仕組み
・ブートシーケンスの仕組み

**Linuxコマンド**

**プログラミング**
・シェル
・Python

**ミドルウェア**
・Apache
・PostgreSQL
・Postfix
・Bind

**ハードウェア**
・ディスク(HDD、SSD)
・メモリ
・CPU
・LANケーブル

**データセンタ**
・サーバラックについて
・帯域

**サーバ関連**
・DNSの仕組み
・メールの仕組み
・Zabbixなど監視の仕組み

**ネットワーク**
・IPアドレス
・MACアドレス
・OSI参照モデル
・スイッチの役割
・ルータの役割
・スパニングツリープロトコル
・リンクアグリゲーション
・VLAN
・スタック接続

**セキュリティ**
・公開鍵公開鍵、共通鍵のしくみ
・ファイアウォール

**クラウド**
・AWS
・Microsoft Azure

**ITIL**

**DevOps**
・GitLab
・Ansible
・Docker
・Kubernetes
・Redmine
・Slack
・Jenkins

挙げだすとキリがないですね 笑

以上、インフラエンジニアという仕事について書かせて頂きました！
この記事をきっかけに、インフラエンジニアについて興味が出た！という方がおられましたら、僕は本当に嬉しく思います！！