独自サーバー構築記
サーバー移転に至った経緯

 2003年9月19日の夜、いつもトップページの右上に表示されているクロサワネットのバナーが表示エラーになっていました。おかしいなと思ってバナーをクリックしてクロサワネットのページを見てみたら「倒産」の文字が表示されておりました!

 クロサワネットは使いはじめた当初は対応がよかったので安心して使っていたのですが、最近ネット上では評判が芳しくなく、そのうち乗り換えようかと思っておりました。しかし、ここより安いレンタルサーバー屋が無く、ずるずると使っておりましたところに今回の事件が起きました。

 クロサワネットの倒産告知を読んだ途端、「これはまずい」と思いました。それはドメイン名の問題です。夏にドメインの更新料を払ったばかりというのと、せっかく取得したドメイン名が使えなくなってしまうかもしれないと思ったからです。ちなみに、「softdrinks〜」というドメイン名でまともに動いているのは、知っている限り世界中で私のサイトだけなのです。

ドメイン名の奪還

 前払いのサーバー使用料が15000円近く残っておりましたが、上記理由により、「もったいないけどお金はいいや」ということで、まずはドメイン奪還をまず考えました。adminのアカウントはクロサワネットが握っていたので、まずはadminアカウントを変更するところから始めました。

 うちのドメイン名はアメリカのNetwork Solutions社が管理しておりまして、ネットで調べてみると、こういう場合は申請書をダウンロードして、パスポートのコピーと一緒にFAXするとadminの変更が可能なのだそうです。いきなり国際FAXを送ることになるのかなと思いましたが、クロサワネットのサイトに「ドメインのadminアカウントが届いていない人はメールを送れば知らせる」とありました。ダメモトでメールしてみたら、幸運にもadminアカウントが送られてきました。これで国際FAXを送らずに済みました。

 さっそく私の情報をadmin登録し、クロサワネットのアカウントを削除して、ドメイン名を完全に私の管理下に置くことができました。ここまでできたらドメイン管理を日本国内の業者に移転すればいいのですが、それは今後の検討事項といたしました。

ハードウエア

 次はサーバーの問題です。クロサワネットのサーバーはいつ消滅するかわからないので、早急にサーバーを移転させなければなりません。別のレンタルサーバーを借りれば一番簡単なのですが、一気に自前サーバーに移行することにしました。実は以前から自前サーバーを計画しておりまして、春にパソコンを1台作っておいたのです。スペックは以下の通りです。インターネットサーバーとしての性能ですが、勤務先でPentium2 230MHz(!)で作ったサーバーが動いておりますので、現在のデスクトップ機の性能からすると若干劣りますが、必要かつ充分な性能ではないかと思います。部品は自宅で余ったもの、粗大ゴミで拾ったものが主体です。CD-Rドライブを拾えたのはラッキーでした。

部品入手方法一覧
部品 コメント
マザーボード BioStar M7VKQ
昨年秋安売りで別のマザーボードを買ったが、組み立て時に静電気で壊れ再度購入。
CPU AMD Duron 1GHz
昨年秋パソコンショップの安売りで購入。
メモリ 128MB DIMM×2
今まで自宅のパソコンで使っていたもの。当初128MBだったが、稼動後もう128MB追加して256MBに。
フロッピーディスク
ドライブ
MITSUMI 2モード用
これはちゃんと購入した。
ハードディスク MAXTOR 27GB
今まで自宅のパソコンで使っていたもの。
SCSIカード Adaptec AHA-2910
今まで自宅のパソコンで使っていたもの。
CD-Rドライブ IO-DATAの物。品番不明。
粗大ゴミで拾ったSCSI外付型を分解して使用。
MOドライブ 三菱化成 230MB
今まで自宅のパソコンで使っていたもの。SCSI接続。
ケース Windyの抜け殻
近所の粗大ゴミで拾った。
ATX電源 ノーブランド品
ケースについていたものが壊れていたので購入した。
サービスコンセント付だったが、電源非連動だったので、サービスコンセントの意味があまり無い。

データ回線

 データ回線は自宅がまだフレッツISDNであることと、サーバーの置き場所が無いので、このサーバーはとりあえず勤務先に設置いたしました。勤務先はフレッツADSLの8MBタイプで、そんなに使用頻度が高くないので、回線容量的にも問題は無いと考えます。以前は1.5MBでサーバー動かしていましたから。また、プロバイダとの契約が固定IPアドレスタイプ、それも8個もらえる契約でして、IPアドレスが余っていたというのも好都合でした。勤務先のネットワーク管理者は私なので、いろいろできるのです(汗)。いつかBフレッツを自宅に引けるようになったら、サーバーを自宅に持っていこうと考えています。

ソフトウエア

 パソコンを作るのは慣れれば簡単ですが、問題はソフトウエアです。できるだけお金をかけないようにと考えました。Linuxは慣れておらず管理が大変ということで、勤務先のサーバー構築と運用管理でノウハウがあるWindowsサーバーにしました。

OS Windows2000
 最新OSのWindowsXPまでは要らないだろうということで、Windows2000にしました。このOS、低性能のパソコンでも意外に使えます。以前使っていたFMV Biblo NP316(MMX Pentium2 166MHz、メモリ128MB)でもちゃんと動きました。今回のインストールに際しては、もちろんWindows Updateをしっかり行いましたが、ファイアウォールもウィルス対策ソフトも入れないでグローバルIPアドレスで接続したら、翌日見事にウィルスにやられて再インストールする羽目になってしまいました。なお、Windows2000 Serverを使っているかどうかは聞かないでください(汗)。

ファイアウォール Agnitum Outpost Personal Firewall Free Edition
 フリーのファイアウォールというとこのAgnitum Outpost Personal FirewallとSygate Personal Firewallが有名ですが、メニューが日本語というところからAgnitumを選択いたしました。後述しますがIRCチャットサーバーで使用するポート番号の関係で、これを選んで正解でした。

ウィルス対策ソフト AVG Anti-Virus System Free Edition
 これもフリーソフトです。市販のウィルスソフトは重いのと年間更新料を取られるので、こちらにしました。防御が市販のお金がかかるソフトに比べて弱い、という話もありますが、データの更新もまめに行われていますので、まず大丈夫だと思います。英語版ですが、英和辞典があればメニューの意味を理解するのは難しくないと思います。

wwwサーバー AN_httpd
 これはWindowsのwwwサーバーでは定番のソフトです。日本製です。Windows標準だとIISなんてソフトもありますが、セキュリティ面を考えると、IISやApacheに比べはるかにマイナーなソフトなので、まず間違いは無いと思います。

メールサーバー ウィズ98メールサーバー
 勤務先では別のメールサーバーソフト(これもフリーソフト)を使っているのですが、Windowsのサービス起動ができるフリーソフトのメールサーバーを探していたら、これが見つかりました。GUI、コマンドラインの両方から設定ができること、設定ファイルが全部テキストデータなので、いじるのも楽です。日本語版でマニュアルも詳細です。メーリングリストも作れます。

ftpサーバー Tiny FTP Daemon
 これも日本語版ソフトです。Windows2000ではちょっと挙動不審(サービス起動したときになぜかアカウントの管理が動かない)ですが、ftpのアカウントはそんなに頻繁に更新するものではないので、気にせず使っています。

IRCサーバー TonIRCD
 これも勤務先で使っているものを採用しました。IRCチャットサーバーソフトにはircdという世界的定番ソフトがあるのですが、設定が非常に面倒くさいので、簡単に使えるTonIRCDにしました。
 IRCサーバーを構築するに当たっての問題として、ファイアウォールとの相性があります。IRCではポート番号6667を使用するのですが、ファイアウォールによっては、このポート番号での通信ができなかったりします。Norton Personal FirewallSygate Personal Firewallだと、どんなにがんばってもポート番号6667を開放することができなかったのですが、Agnitumは一発で通信ができました。

Dynamic DNS管理ソフト DICE
 これも定番ソフトです。ネームサーバー(DNS)構築は大変なので、DNSに関してはダイナミックDNSサービスを使い、自前のDNSは構築しないことにしましたが、この場合サーバーが接続されているDNSをサービス会社に定期的に知らせる必要があります。そこで、このDICEを使って自動的に通知できるようにしてあります。
 フリーウエアですが、作者に寄付するとサービス起動できるProfessional版が使えるので、僅かですが寄付をいたしました。
 
 なお、ダイナミックDNSサービスは、これも勤務先で使用しているDDO.JPにいたしました。運営者が地元新潟の人という安心感もありますし、何よりも安定して稼動しているのがうれしいです。

時計合わせソフト AdjustPC
 パソコンの時計が狂ってはいろいろ問題がありますので、タイムサーバーにアクセスして時計を合わせてくれるソフトを入れてあります。これもサービスで起動できるところから選びました。

タイマーソフト Multi Function Alarm
 データのバックアップ、全文検索のインデックス作成、サーバーの自動再起動に使っています。特にWindowsマシンはUnix系マシンと違い、長い間ノンストップで動かしているとおかしくなってしまうので、定期的に再起動をかけなければなりません。Windowsのタスク機能を使えばできるのでしょうが、こっちの方が簡単なので使っています。

自動ログオンソフト NTLogon
 OSがWindows2000なので、起動時にログオンしないとスタートアップから起動するソフトを起動できないので、アカウントを設定すると自動的にログオンしてくれるソフトを使っています。一度設定すると解除するまで有効です。

CGIを使用したWebシステムの構築

 せっかくの自前サーバーですから、CGIについても積極的に使用することにしました。これもインターネットでフリーのスクリプトを集めてシステムを構築しました。

プログラム言語 ActivePerl
 cgiを動かすには何かプログラム言語が必要ですが、これも慣れている(と言ってもプログラムを一から作る程の技術は無い)Perlにしました。バージョンがいくつかあるのですが、後述するnamazuが動作するバージョンの上限がありまして、最新版は使っておりません。(ActivePerl 5.6.1 build 635を使用。ActivePerl 5.8.0 build 806もダウンロードできるが、こっちだとnamazuが動かない)

メール送信ソフト Blaij
 BlatというWindowsNTのコマンドラインからメールを送信するソフトがありまして、その日本語版です。これを発見したおかげでメールフォームを作ることができました。(このソフト、曰くつきのソフトでして、自信が無ければ使わないほうがいいです。詳しくはこちら。)

全文検索 namazu for Win32
 namazu自体は以前から動かしているので、そんなに面倒ではありませんでしたが、Perlのバージョンが最新すぎると動かないというのには参りました。

カウンタ wwwcount
 「とほほのcgi入門」からダウンロードしました。カウンタのイメージは今まで使っていたものを流用しています。

メールフォーム postmail
 「KENT WEB」からダウンロードしました。Blatjと組み合わせて、パソコンにメールアドレスが設定されていなくともメールを送信できるようにしてあります。最近のメールサーバーソフトは踏み台(他人にメールサーバーを使用されてしまう)対策のため、発信元のメールアドレスはメールサーバーに登録されているアドレスでなければならないので、メール発信用アドレスを一つ作って、それを発信元に設定してあります。実際の発信者のメールアドレスはメール本文に記載されるようになっています。他にも同様のスクリプトがありますが、postmailは名前、メールアドレスなどの入力が無い場合、自動的にエラーにしてくれる機能があるので非常にありがたいです。

リアルタイムページビュー統計 Page View Analizer
 「ワンランク上のエンジニア」からダウンロードしました。今まではクロサワネットから週毎にアクセス統計が送られてきたので、それを編集して「展示室アクセストップ20」を作っていましたが、それはもう届きませんし、毎月手集計というのはなかなか大変でしたので、自動的に統計を取ってくれ、リアルタイムで状況を表示できるスクリプトを見つけました。実際はもっとたくさんの情報が取れるのですが、「今月の展示」のアクセス状況だけ表示できるようにしています。
 このシステムはPerl DataBaseというPerlで作ったデータベースエンジンを使っていますが、設定方法をよく読まなかったおかげで、データベースファイルをおかしくしてしまい、最初の半月分のデータをダメにしてしまいました。この障害に気づいたとき、「どうしてシーケンシャルファイルでデータベースができるんだ?」と不思議に思っておりましたが、それぞれのページにIDをふることにより、直接該当のデータを更新しているようです。間違って同じIDを全ページにふってしまったので、ファイルの排他制御がうまくいかず、ファイルをダメにしてしまったのでした。
 サーバー移行時、アクセス数が少なかった時は問題なく動いていたのですが、完全に移行してからは思ったよりも負荷が高いようで、CGIが止まってしまう事が多々ありました。リアルタイムでアクセス状況が見られるのはとても面白いのですが、運用に影響があるのは問題があるので、以下に示すバッチ集計に変更いたしました。

バッチページビュー統計 Httplog
 Vectorからダウンロードしました。こちらはhttpdのログファイルから集計を行うプログラムです。こちらも「今月の展示」のアクセス状況だけ表示できるようにしています。ログデータのボリュームが大きいことと、インタプリタゆえスピードは遅いですが、サーバーに影響が無いだけ良いのではないかと思います。

スレッド式掲示板 bgbbs3
 「黒山羊のcgi」からダウンロードしました。2ちゃんねる風のスレッド式掲示板を作りたいと思い、いろいろ探して試しましたが、これが一番簡単にカスタマイズできたのでこれにしました。画像が今までの掲示板のようにアップできないのはちょっと残念です。

Webメール WebMailer
 ブラウザ上でメールの読み書きができるプログラムです。これも勤務先で導入したものをカスタマイズして使っています。便利なことは便利なのですが、こちらのメールサーバーのせいなのか、相手によっては受信拒否されるのがちょっと気になります。

今後導入したい機能

 もともとパソコン好きなので、もっといろいろいじったり、知り合いにホームページのスペースや掲示板を貸すこと(商売ではなくあくまでも善意として)も考えましたが、知り合いから「サーバー屋さんになってしまうと大変だよ」と心配されましたので、とりあえずここまででやめました。最初の半月はいろいろありましたが、意外に手離れが良く、その後は順調に稼動しています。いつになるかはわかりませんが、今後導入したいと思っている機能は以下の通りです。

最後に

 こんな感じで自前サーバーを構築しましたが、あくまでもこれらは「素材」でして、細かいノウハウまでお教えするのはホームページだけでは無理ではないかと思います。私は以前、某情報処理サービス会社に情報処理奇術者(お前たちのやっていることはすべて全部お見通しだ!)やSE(Smile Engineer。笑って失敗をゴマカす)として勤務していたので、ある程度の知識はありましたが、汎用機の仕事ばかりでパソコンの仕事をしていたわけではありません。そのため、ここまで来るのには自腹による多額の投資と失敗をしてきました。やはり「体で覚える」のが一番ではないかと思います。


目次に戻る