KokeLab

Cisco/Linux/AWS/Ansible/Kubernetes

ガチ文系出身がNWの運用・保守業務を1年間やってみた

はじめまして。コケラと申します。

このたびは、私のチンケな研究所KokeLab(コケラボ)にお越し下さいまして、誠にありがとうございます。

 記念すべきブログ記事1本目ということで、少し緊張感もありますが、うだうだ色んなことを語りすぎても野暮なので、さっそく本題のほうへ移りましょう。 

ガチ文系出身です

 私の職業はITエンジニアです。もっと詳しくいうと、中~大規模の公共系NWの運用・保守業務を担当しているNWエンジニアです。あとはデータセンタのお守りもしています。昨年の2月から、NWエンジニアとして就業を開始しまして、もうすぐ1年が経とうとしています。

 「あぁなるほど。じゃあ、コケラさんは情報系の高専卒、あるいはコンピューターサイエンスやら何やらを大学で専攻された方なのかなぁ」と予想されたそこのあなた。

残念ながら不正解です。まぁ記事のタイトルとか見たら分かりますよね。

昔から本を読むのが好きで、あとは中学生のときから何故か英語が得意科目だったので、「文学部ええんちゃう?なんかよう分からへんけど英語の成績も良いし、英米文学専攻とか、自分に合ってるんとちゃう?」と安易といえば安易な考えで、高校生の頃に進路を決めた記憶があります。

 そして、努力の甲斐もあってか、無事に某大学の文学部(英米文学専攻)に進学することができました。やったね!ワイえらい!

そうです。私は文学部出身です。ガチ文系なのです。

ガチ文系でもITエンジニアになれるの?

結論から申しますとなれます情報工学とかそういうのを大学で学ばなくてもできます。業務未経験でも大丈夫です

「数学できないと厳しいんじゃないの?」みたいなイメージを持たれてる方は、少なからずいるかと思いますが、私はいまのところ「もっと数学勉強しておけば良かったなぁ、数学の知識がないとちょっとツライなぁ」と感じたことは、一度たりともありません。正直、+-×÷の四則演算さえできれば全く問題ないです。

 もちろん、少しばかりの例外はあります。例えば、開発系エンジニアになって「*1Python機械学習やらAIの開発をガッツリやりたいんや!」という方なら、高度な数学の知識が必要になってくるかと思います。

もしインフラ系エンジニアを目指されるのであれば、高度な数学の知識を要する場面にはまず出くわすことはないでしょう。私はまだNWの運用・保守の業務経験しかないですが、設計・構築であろうがサーバ側の業務であろうが、例えば微分だの線形代数だの、そんな知識を使うイメージは全く湧きませんし、聞いたこともありません。ネットでよく情報収集もしますが、そんな情報は一切ないです。

 「エンジニアになりたいけど文系だしなぁ。どうせ門前払いされるんだろうなぁ」と気後れする必要は全くありません。

 「たった1年しか経験してないのに何を偉そうにw」という批難は甘んじて受け入れます。ですが、いまや文系出身のエンジニアはたくさんいますし、高度な数学の知識も開発系エンジニアの一部の業務で使うことがある程度なのは事実なので、興味のある方は自信を持ってチャレンジするべきです。

NWの運用・保守ってどんな仕事?

 私はいま、良い現場に恵まれたこともあり、NWの運用・保守業務をかなり網羅的に経験させて頂いてます。具体的には、監視・障害対応ヘルプデスクシステム更改等に伴うNW機器への*2Config投入の手順書作成・機器へのConfig投入などです。では、それらの仕事が一体どういう内容なのか。詳しい中身を説明していきます。
  1. 監視・障害対応⇒監視しているNWで異常・障害を検知したら、状況に応じた対応をする業務です。そのまんまやん。先述しました通り、私の現場は公共系NWの運用・保守をしているので、ひとつ監視拠点の例として挙げると、例えば、とある公立高校に設置しているNW機器に何らかの異常が発生したとします。そのせいで、校務で使っているシステムが使えなくなったり、インターネットに繋がらなくなったりするわけです。そういったNW機器の異常を*3監視ツールが検知します。監視ツールが異常を検知したら、その公立高校に設置してあるNW機器に遠隔でログインして状態を調べたり、公立高校の担当者(教頭先生とかネットに詳しい先生とか)に電話で連絡をしてコミュニケーションをとり、いろいろな問診を行います。インターネット回線の異常だと*4通信事業者(キャリア)に連絡して確認したりもします。異常が起こり得る原因を一つずつ潰していって、被疑箇所を切り分けて特定していくわけです。いわゆるトラブルシューティングというやつですね。
  2. ヘルプデスク⇒上記の監視・障害対応と、ほとんど内容的には大差ありません。こちらから拠点に問い合わせるか、拠点から問い合わせがあったかどうかの違いです。ヘルプデスクは、拠点から問い合わせがあれば障害対応を行います。あまり詳しく説明し過ぎると、会社の秘匿情報の侵害に繋がったり、技術的に難しい話になってしまったりするので控えますが、監視ツールだけでは検知し得ないNW上の異常や障害等もあります。そういった場合、拠点からの問い合わせがないと異常や障害を知りようがないですよね。ヘルプデスクは基本的に、監視ツールの検知範囲外の事象に対応していきます。
  3. システム更改等(以下略)⇒運用・保守業務のなかでは、最も技術的な知識が必要な業務です。新設拠点ができる場合や、既存の拠点から「仕事で新しいシステムを使いたい」「あのシステムはもう使わないから廃止してほしい」などといった要望があった場合や、こちらから「セキュリティ上、このシステムを強靭化したほうが良い」と提案して、実際にシステムの強靭化を行ったりする場合があります。こういった時には、もちろんNW機器の設定を変更しないといけません。そのための手順書を作成し、パソコンとNW機器をケーブルで繋いだり、遠隔でログインしてConfigを投入していくというのが、このシステム更改等(以下略)という業務になります。もっと詳しく知りたい方は、*5CCNAという資格を勉強し、実際にNW機器を中古で購入してConfig投入をやってみるのが、いちばん手っ取り早いかと思います。
 他にも、新設拠点にNW機器を設置(ラッキング)しに行ったり、拠点のNW機器が物理的に故障したら、予備の機器にConfigを投入して取り替えに行ったりすることもあって、これもNWの運用・保守業務の一環です。
どういった仕事なのか、だいたい理解して頂けたでしょうか。現場によって業務内容の細かい部分は少し違うかもしれませんが、こういった仕事がNWの運用・保守業務となります。意外とコミュニケーション能力は必要な仕事なのです。一方で、奥深い理系知識とかは、全く必要ありません。この仕事に文系とか理系とかあんまり関係ないですよね?

インフラ系と開発系

 ITエンジニアは、大きく二つに分類することができます。将来どんなエンジニアになりたいのか、しっかりと決めておいたほうが良いです。本記事の趣旨からは少し離れますが、ITエンジニアに興味があって目指そうとされている方は、ある程度、把握しておいたほうが良い情報なので紹介させて頂きます。

  1. インフラ系エンジニア⇒インフラ系エンジニアは、開発系エンジニアが開発したアプリやソフトを動かせるようにして(デプロイ)、それらを動かす道路を整備するのが主な仕事です。もの凄くざっくりとした表現ですが、とりあえずそういう認識で良いです。NWエンジニア、サーバエンジニア、クラウドエンジニアを総称してインフラエンジニアと呼ばれています。「NWもサーバもクラウドも完全に理解した!」という人もインフラエンジニアと呼ばれています。将来そんなエンジニアに、私もなりたいですね。
  2. 開発系エンジニア⇒WEBエンジニア、フロントエンジニア、ゲームエンジニア。こういったエンジニアの方々は、開発系エンジニアと呼ばれています。いわゆるプログラマーです。WEBサイトを構築したり、ゲームを開発したりします。私はインフラ系で、開発系にはあまり詳しくないので、これ以上の言及は避けたいと思います。
こうして二つに分類されてはいますが、インフラ系エンジニアにプログラミングの知識は全く必要ないのか、開発系エンジニアにNWやサーバの知識は全く必要ないのかというと、そういうわけではありません。最近は、NW機器の制御やインフラの構築をプログラムに任せよう(*6IaC)という時代の潮流がありまして、インフラ系エンジニアにもプログラミングの知識が求められるようになってきました。開発系エンジニアも、少し極端な例えですが、自動運転車を開発するとして、道路には信号機があり、信号機が交通を整備しているということを知らないと、赤信号であろうが何だろうが、交差点をビュンビュン走ってしまうような自動運転車を開発してしまうことになります。とても危ないですよね。やはり、開発系エンジニアであっても、ある程度NWやサーバの知識にも精通しておいたほうが良いのです。
こういったことも、これからITエンジニアを目指すのであれば、念頭に置いておくべきでしょう。自身のITエンジニアとしてのキャリアパスを、より柔軟に考えられることにも繋がります。

ITエンジニアにとって大切なこと

 ITエンジニアとって大切なこととは何でしょう。NWの運用・保守業務を1年間やってみて感じたことは、やはり仕事に対するモチベーション保ち続けることが大切であるということです。これはITエンジニアに限らず、他のどんな仕事にも言えることですが、IT業界では特に、そういったモチベーション維持の重要性を犇々と感じています。

「好きこそ物の上手なれ」という言葉がありますが、好きじゃない人は好きな人には絶対に敵いません。技術的好奇心を持ち続けることは、ITエンジニアとして成長していく上では必要不可欠です。何か一つの技術に興味を持てば、そこから樹形図状に他の技術を習得することにも繋がっていきます。要するに、「Aという技術に興味を持ち、Aという技術を理解するためにBという技術を理解する必要が生じ、Bという技術を理解するためにCという技術を理解する必要が生じ(以下ループ)」と、学習の連鎖が発生するのです。技術的好奇心を持つことの重要性を理解して頂けたでしょうか?ITエンジニアは、こうして成長していくものなのではないでしょうか。

こうした学習の連鎖にずっと耐えていくには、技術が好きであること、つまり熱意・情熱はもちろん、モチベーションも維持していかなければなりません。モチベーションを維持するには、互いに切磋琢磨できるような仲間がいると良いかもしれません。残念ながら、いまの私の職場には周りにそのような方がいないので、SNSで私と同じような新米エンジニアの方々や、とてつもない技術力を持ったエンジニアの方々をフォローし、その方々から刺激を得ることでモチベーションを維持しています。SNSがあってよかったなぁ。なかったらダメエンジニアになってたかも。

おわりに

さて、そろそろ本記事も終わりにしたいと思います。ここまで長々とお付き合い頂きまして、本当にありがとうございました。長すぎましたスミマセン。私はまだまだ駆け出しエンジニアで、これからもITエンジニアに対する考え方がコロコロ変わっていく可能性は十分ありますが、「あぁ、あの頃の自分はこういう風に考えていたんだなぁ」と思い出せるような、備忘録的な役割を将来果たしてくれるかもしれません。

本記事の内容が、少しでも読者の皆様のお役に立てれば幸いです。

*1:プログラミング言語の一種。

*2:configurationの略で、要するに機器の設定のこと。

*3:Zabbixが最も有名です。トラフィックの状況を監視できるMRTGも覚えておいて損はないです。ちなみに、異常検知するまで監視モニターをずっと見つめているわけにもいかないので、監視ツールは一般的に「警子ちゃん」のような、異常を検知すると警告音で知らせてくれるような装置と接続させます。

*4:NTTなどのことです。

*5:NW機器で世界のトップシェアを占めるシスコシステムズ社さん主催の認定資格です。NWエンジニアにとっては登竜門的な資格で、NWエンジニアを目指されるのであれば、絶対に取得したほうが良いです。

*6:Infrastructure as Codeの略で、インフラ構築を自動化させるAnsibleというツールが特に有名です。