サーバ管理を理解するための10の心得

「サーバ管理、お願い」「なにすればいいんですか?」
という質問に対しての答え文章です。具体的な作業は、その場その場で異なりますし、ネットに情報が繁茂しているので、ここでは心得的なものを示します。

1. 管理する状況を作ろう
なんといっても、管理する必要に迫られる事が第1です。自分でWebで動くプログラムを作りたい、という積極的な目的があれば最高。会社や大学でサーバ管理してくれと言われた、という場合なら良い機会です。語学やプログラミング言語同様に、機会に恵まれた方が、サーバ管理は身につきます。

2. 管理対象を明確にしよう
サーバと言っても色々な種類があります。Webサーバ、ファイルサーバ、メールサーバ、計算用クラスタなどなど。管理する対象がどれであるか明確にしましょう。一つの管理していくと、実は互いに密接に繋がっている事が分かると思いますが、はじめは何を管理するか目標があった方が分かりやすいでしょう。(この密接に繋がっているせいで、サーバ全部、と言われることも多いと思います。何サーバを管理するか、列挙してもらいましょう。)

3.1年間管理しよう
サーバ管理の目標は安定稼働です。いつでも異常が起きたときが仕事の時です。なのでエンドレスです。正常に稼働していると何も行うことはありません。何も起きてない事を監視することが管理です。一方で、サーバはハードウエアからソフトウエアまでが全て正常に動いて初めて動く物なので、異常が起きたときが勉強をするときです。何が動いていないか突き止めて、問題を解決しましょう。
また、1年間管理すると、色々なイベントに立ち会えます。たとえば、暑い季節には熱暴走、正月を狙ったウイルスなどなどです。一通り経験すると、一段高見からサーバ管理がみられると思います。
また、サーバ管理には人によって向き、不向きがあります。初めは分からなく、つらい事も多いでしょうが、一通りのイベントを経験して、それでもつらいならきっと合っていません。サーバ管理にこだわる必要は無いので、他の仕事ができるようになりましょう。サーバ管理に没頭する瞬間があれば、きっと向いてます。

4.手足を動かそう
自分でサーバを構築しましょう。気になった物を片っ端からインストールして、動かして試しましょう。数学のロジックのように1から順に勉強する方法もあるかと思いますが、ハードウエアやOSの基礎知識さえあれば、あとはその場その場で学んでいくのが良いでしょう。色々試すと、サーバというものがどのような共通認識の上で作られているのが、体感していけるとおもいます。同時に、日々の技術進化にも対応できます。
自分のサーバ構築の際は、利用できるハードウエアがあれば、それを利用しましょう。無い場合は、VMWareなどで十分です。

5. 雑誌を1年分読もう
最近なら、日経LinuxSoftware Designなどを1年分読みましょう。理由は、記事が新入社員向けの4月からスタートして翌年の3月までで区切りになることが多いから。特集もほぼ1年周期で回っているためです。できるだけ新しい年のものを読みましょう。意味が分からなくても、試してみたり、いじってみたり、壊してみたりする機会が得られます。

6.本を読もう、、、たくさん
本はたくさん読みましょう。サーバ管理好きの人は概してサーバ関連書籍にも詳しいです。表紙の色や絵柄で本が分かったりします。

何か1冊分厚い本があると安心する人も多いと思います。もう大分サーバ入門書に入るべき項目は確立され*1、どの本を取っても似ている事が多いですが、とりあえず以下の本を示しておきます。他にもFedora Core用の本などもあるでしょう。

CentOS徹底入門 第2版 (DVD付)
中島 能和 飛田 伸一郎
翔泳社
売り上げランキング: 10907

あと、毛色の違うものとして、以下の本はサーバ管理に特化したコマンドの説明が多く、役立つのでお勧め。(その代わりOSのインストール方法とかは書いてません)

Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)
高町 健一郎 大津 真 佐藤 竜一 小林 峰子 安田 幸弘
アイ・ディ・ジー・ジャパン
売り上げランキング: 1944

本には良質の情報が多く詰まっている事が多いので、すこし情報が古い事をわきまえた上で、どんどんチェックしましょう。あ、Windows Serverの本は使わないので知りません。おしえて、偉い人。

7.常にアンテナを張ろう
ソフトウエアも日々進化します。WebサーバはApacheが使われる事が多いですが、lighttpdなども場合によっては使われますし、Rails系ではMongrelなども使われます。メールサーバも、昔はsendmailでしたが、今はpostfixが多いでしょう。新しい技術を全て知る必要はありませんが、アンテナを張っておきましょう。ソーシャルブックマークはてなのホットエントリとか)、RSSリーダを通じたblogの購読、twitterなど、様々なアンテナを張るのがよいでしょう。また、ネットの情報も、検索時に更新日時を最近半年などにして、できるだけ新しい物を参考にしましょう。昔問題だったところが、改善されていたり、よりよいソフトが出ている可能性があります。

8.動いているサーバにアカウントをもらおう
もし、今稼働しているサーバのアカウントをもらえたらラッキーです。そのサーバを管理している人の管理方法が分かります。是非、そのサーバの中を漁って(漁らせてもらって)、どんどん真似をしましょう。

9.壊そう
サーバの仕組みを最も覚える時は、サーバを壊して(壊れて)しまった時です。何度 rootで rm -rf /* とかやったことか・・・(遠い目)。壊してしまって、どうしても復旧しない状況に置かれた時が、最も色々調べるし、分かるとおもいます。サーバが壊れても命は取られません(たぶん)。臆せず壊しましょう。

10.そのサーバを使おう
自分の構築したサーバを使いましょう。がんがん使いましょう。壊しましょう。使うほど愛着が湧き、問題点が見つかり、さらに改善&管理したくなります。

おわりに
自分がサーバを作る必要に迫られたのは、大体10〜12年前くらい。Webが世の中に広まり始める時代の話なので、時代錯誤の入門部分があるかもしれません。トラバやコメントで突っ込み歓迎です。

*1:いずれも絶版 or 超古いですが、トッパンから出ていたLinux入門(小山ら)とFreeBSD徹底入門(あさだたくやら)で、PC-UNIX入門の原型がまとまった気がします。