個人事業主サーバーサイド・エンジニアが直近請けた仕事の内容を紹介

筆者は個人事業主のエンジニア(サーバーサイド)で、仕事のやり方は営業を頂いている会社と一緒に案件を受注して、客先の現場に入るスタイルです。
今回は最近手がけた仕事のトレンドみたいなものを書いてみようかと思います。

インフラエンジニア教本2――システム管理・構築技術解説
技術評論社 (2015-11-26)
売り上げランキング: 46,330

SPONSORED LINK

初めに、この手の話題が難しいということ

この手の話題で難しいのは、

  • 最新技術を使った開発現場ではないので、いわゆるWWDCで出ているような技術トレンドにはかけはなれた話ということ つまり、需要がない
  • 筆者自身が元々文系なので、そもそも技術的な話に疎いということ
  • 守秘義務に抵触しない範囲で書かないといけない

この辺がネックになって余り大した内容を書けなくなります。
その辺もあって、このブログでは余り技術的な話題を扱わず、あえてゲーム記事メインにデジタルネタをサブで載せるというスタイルにしているわけです。

Windowsサーバー

OSは大きく分けてWindowsServerか商用Unix・Linuxディストリビューション系に分かれる。
IBM系と提携している客先のみAIXも稀にある。
WindowsServerか商用Unix・Linuxディストリビューションかというのは本当に客先の都合による。
ただ、ActiveDirectoryを入れている客先ではまずWindowsServerがあると思っていいと思う。

WindowsServerは今のところ、多いのは2008R2とWin2012R2。
用途では仮想化サーバー、ADサーバー、ファイルサーバー、DHCPサーバーなどが多い。
案件として多いのはやはり仮想化サーバーとADサーバーだと思う。

技術としては、Windowsは出来て当たり前というか、サーバーマネージャで設定するだけなので手順書を見れば誰でも出来る内容だと思う。
その分、案件としての単価は低い。
唯一例外的にActiveDirectoryのみ、かなり概念が独特なので、慣れないといきなり設定するとかは無理。
技術的にどこまで出来れば仕事になるかという話では、Windowsも細かい話をすると沢山あるんですが、基本的にはメディアやISOファイルからOSインストール、ネットワークとかドメインの設定、サーバーマネージャーで一通りの設定、という流れが出来ればいいと思う。

WindowsServerで特殊なのはセキュリティですかね。
WindowsUpdateもあるし、KBで挙動が変わるプログラムがあったり、WindowsDefenderとかWindowsFirewallあるし、セキュリティ関係が面倒くさい印象。ドキュメントの部分で書いてますが、納品したら成果物というものも一緒に出さないといけなくて、これに詳細設計書やパラメータ設定書というのがあるんですが、大して動作に関係ないのにも関わらずWindowsのサービスの有効/非有効とかWindowsFirewallのON/OFF設定を延々と書いていくことが多い。本当に気が滅入る。

あと企業によってWindowsでも特殊な筐体を使っている場合があり、例えば日立HA8000シリーズの場合、SVPボードというのがあり、これはOS側とは独立してIPアドレスを持たせられ、電源切っていてもリモートから電源オンしてWindows起動できたりするんですが、設定が特殊なので、Windows分かりますという人でもSVP設定できる人はほとんど居ないと思う。
そういうことがWindowsServerにはあります。
更に、Windowsはライセンス体系が非常に複雑なので、ライセンスをどう買えば得になるかというのを客に対して説明できないといけない。
WindowsServerは一見簡単で誰にでも出来そうだが、その実、非常に面倒くさいことが多い。

商用Unix・Linuxディストリビューション

これも定番ですね。2000年過ぎくらいから商用も使われ始め、今やどこの案件でもLinux、特にRHEL(Red Hat Enterprise Linux)は珍しくない。

大体、商用Linuxにミドルウェアを載せてというパターンが非常に多い。
筆者が最近やっていたのもERPスイートの案件で基幹はOracleLinux6.5xOracleDB11.2のシステムにミドル乗せてWEBからミドル設定するという感じだった。
大抵どこの現場でも、TeraTermでアクセスしてLinuxに入り、sqlplusでDBのコマンド叩いたり、ミドルウェアの設定したりします。

Linuxが出来るというのもサーバー技術者やインフラ技術者としては最低限のレベルなので、単価ははっきりいって低い。
大学でもLampのシステム構築とかは普通に講義でやってます。
つまり技術的には大学でやってる人はやっているレベルということ。
企業から見ると大学生でも出来る話なのに高い単価なんて出せないって話。
更に言えばLampというのは、昔はスタンダードだったので、概念は知っている必要があるけれども、実装としてはもう古い話になりつつあるらしい。

技術的にどこまで出来れば仕事になるかという話では、Linuxコマンドが一通り分かること。

Linux特有の設定について理解できていること。
ログを読めること。
後は簡単でもいいからシェルを組めること。

筆者みたいなプログラムに関して才能がない人間でも、シェルについては何とか改修くらいは出来るので、プログラムが全く分からないという人でも何とかなると思う。
案件としてLinux単体というのはなくて大抵、DBとのセットになるので、出来れば、SQLを自分で組んでsqlplusで流すというのも出来た方がよい。

シェルを書けたほうがいいと書いたが、既に作られているシェルをコピーして処理をちょっと変えるくらいなので、これについても一から作りこみということはまずない。
もしそういう機会があればラッキーと思ったほうがいいかもしれない。
シェルの内容は、大体多くても数百行で終わるもので、アプリ開発のように複雑な処理をシェルで組むということはない。
稀にあるが、そうした長文のシェルはメンテナンスし辛いので頑張って作っても「あの人が趣味で作っているものなので、ちょっとメンテナンスできないです」みたいな感じで他の人から避けられてしまう。
どうせ作るなら短文のシェルを書きましょう。

あと、コード設計書はプログラマなら必ず書くと思うが、サーバーエンジニアの場合、プログラムを作っても、コード設計書を書くということがまずない。本当は書いたほうがいいと思うが、それ以外に作る資料ややることが多いので、コード設計書は成果物に含めないというケースが大半だと思う。

仮想化

これが技術的には今一番トレンドで、大半の案件にこれが絡んでいる。

要は今まで物理的なマシンにWindowsなりLinux入れていたのを、仮想化ホストというヴァーチャルな世界に置き換えたもの。
実態が物理ではないだけで、動き的には全く物理的なマシンと同じように動く。

仮想化のパターンとしては大きくHyper-VとVMWareの2種類。
Hyper-VはWindowsでしか使えない。

必然的にWindowsメインのお客さんで仮想化といってくればHyper-Vですね、となる。
Winサーバーのライセンスを買うと、無償でHyper-Vを立てて仮想化ホストを何台か使えることを利用して、例えば、Win2003サーバーをそのまま移行したいけどライセンスが切れるので、仮想化ホストにして環境は維持したい、という場合などに、Win2012サーバーにHyper-Vサーバーを立てて、その中に仮想化ホストとしてWin2003を2台作る。そしてP2Vで環境をそのまま移行する、とかもある。

あるいは、WindowsServer2008にHyper-Vサーバーを立てて、仮想化ホストを作り、仮想化ホストに統合管理サーバーを入れて、数100台のPCを管理させるというのもある。
従来なら物理的に作っていたものを、仮想化ホストとして存在させるというやり方になる。

VMwareのESXiとかも多い。やってることはHyper-Vと同じだけど、VMの方がより多彩なことが出来る。反面、ライセンス料は高い。

ただ、案件としては、今はどこもVMかHyper-Vを入れているので、新しく仮想化環境を作るということはまずなく、既存のVM環境に追加で自分の案件の仮想化ホストを作って、そこでテストしたり検証して客先のVM環境で反映したりといったことをよくやっている。

要は、一度は仮想化やっとけってことですね。案件としては100%といっていいほど絡んでくる。別に家のPCでも入れられるし、会社でなくてもどこでも実践は出来ます。

ドキュメント

トレンドですらないけど、書いておく。案件として受ける以上ドキュメントの話が必ず出てくる。なぜ出てくるかというと、システムを作って客に納品するものを成果物っていってるんだが、この成果物に必ずドキュメントが含まれている。
もうそういう慣習なので、営業も当然契約内容に入れてくるし、筆者らエンジニアもあるものとして準備している。

本音としては『運用手順書あれば引渡し後も何とかなるからいいじゃん』なのだが、もうそういう風土なので今更どうしようもない感じ。
ドキュメントの成果物としてよくあるのは基本設計書、詳細設計書、ネットワーク構成図、運用設計書、運用手順書。

基本設計書はなぜこのシステムをどういう目的でどのように組みたいですという宣言をするような内容。
詳細設計書は基本設計書の内容を受けて、じゃあ具体的にどういうパラメータで作るの?という部分をひたすら書く。そのまんまパラメータ設定書といっているところも多い。

運用設計書や運用手順書は、そのシステムで必要になる定例バックアップとか、障害発生時の対応手順とか、そういうことを書く。

学生時代にはもちろん、社会人になっても研修でも設計書の作り方なんて習わないのに、成果物としては必ず作れといわれる。
筆者も勿論独学というか、最初は見様見真似で作ってこういうものか、と覚えていった。必要な理由などなく、ただ惰性で慣習だから作っている。

まあ、難しく考える必要は余りなくて、通常の案件では、ドキュメント類は必ず、似たようなシステムからコピーして作る。
一から作るとか、膨大な手間がかかることはしない。
一から作るなら、お時間下さい、またはお金出して人雇ってくださいってことです。

ドキュメントの作成期間も当然線表に入っているので、その期間内に作るには、ひたすらコピーして表現とか値だけ変えるってのが大半。
難しく考える必要は全くなく、過去資料と同様に書けばよい。

ドキュメントに関しては、9割くらいがMS OfficeのExcelで作る。設計書、線表、客先に出す成果物の9割はExcelで作る。
なぜか、運用手順書のみWordで作ることが多い。
ExcelでもマクロやVBAを使っているところはまずないです。

Vlookupくらい出来れば普段使いには便利だけど、関数使っていることすらまずない。
それでもなぜか、多くの企業ではExcelで大半のドキュメントを作っている。
即戦力とは何かと聞かれたら、筆者の中では『Excel使えること』というのが回答になる。

企業でよくある資料作成のパターン

Excel 大半の資料を作成する。必須。
Word 手順書系の資料を作成する。使い辛い。
Powerpoint プレゼン資料を作成する。
Visio 高機能の図表ソフト。使っている企業はまずない。大抵Excelで代用される。
Project プロジェクト管理ソフト。使っている企業はまずない。大抵Excelで代用される。

ネットワーク

ネットワークは技術的にはかなり精通していないと1から10まで対応が難しいので、通常、どこの部署もネットワーク専任の人を置いている。但し、インフラ、サーバー技術をやる以上は、ある程度ネットワークの話は避けて通れないので、以下のような話題は最低限、理解できていた方がよい。
営業の人でも話だけならこういう話題で普通に会話してきます。まして技術者であれば、直接自分が設定する箇所でなくても、話題に付いていけることは必須だと思うべき。

  • ネットワーク設計
  • IPレンジ
  • ルーティング
  • DNS
  • DHCP
  • IP-VPN、トンネリング

ネットワーク側の担当者とは一番密に会話することになるが、彼らは専門用語でしか会話しないので、こちらも話しについていけるように日ごろから学習しないといけない。
マスタリングTCP/IP 入門編やCiscoの資格試験に出るような用語、概念は必ず理解すべきだ。

どの程度の知識が必要かについては、サーバー担当者であれば初歩的なCCNAレベルの知識でも十分に通じる。サーバー担当者がやるのは、ケーブル物理結線、IP設定、ルーティング設定、ネットワーク疎通テスト、この辺りになる。ルーターとかスイッチなどへの設定をサーバー担当者がやる事は余りない。小さい会社ではあるかもしれないけど、通常ルーターやスイッチは専門分野になるので、サーバー担当者が兼任することは余りない。

まあ、この辺は現場によるので一概には言えないけど、まずはこの2冊あたりの話が分かるかどうか、分からなければ十分に学習すべきだと思う。

なお、ネットワーク担当者やるならネットワークスペシャリストやCCNPクラスの知識が必須になる。サーバー担当者は広く浅くだが、ネットワーク担当者はひたすらネットワークの世界で狭く深くを追求しないといけない。

一般の人の知識が1~10、サーバー技術者の知識が100~500だとしたら、ネットワーク技術者は3000~数万くらいの知識が要る。そのくらいNEは厳しい。ただ、NEはサーバーと違ってミドルがないので、余り業務寄りにならなくて済むのがいい点かもしれない。

マスタリングTCP/IP 入門編 第5版
竹下 隆史 村山 公保 荒井 透 苅田 幸雄
オーム社
売り上げランキング: 7,158
徹底攻略 Cisco CCENT/CCNA Routing & Switching 教科書 ICND1編[100-101J][200-120J]対応 (ITプロ/ITエンジニアのための徹底攻略)
株式会社ソキウス・ジャパン
インプレスジャパン
売り上げランキング: 18,043

本稿のまとめ

以上5つの点から見てきました。
ここに書いていない話題で重要なのはDB、AD、ストレージ、クラスター、セキュリティソフト(アンチウィルスサーバー)辺りですかね。
あと、話題としては定型化しづらいけど、どの企業でも管理ソフトを入れている。例えばIBMならTivoli、日立ならJP1、マイクロソフトならSCCMなど。

こういうものは学生の時や研修時にはまず意識したり触ることはありませんが、ITで技術やるようになると「どこそこの会社は管理ソフトの○○を入れていて」という話題が当たり前になってきます。
これらの実装もサーバー案件だと避けて通れない。
筆者も案件絡みでこの3つの実装全てはやりました。

クラウドの案件は、企業が余り積極的にやっていない印象で、プロジェクトとしてはほとんど見てないですね。
今回は比較的流す感じになってしまったが、最近のトレンドについてでした。

SPONSORED LINK