Webサーバー構築


ネットワーク環境

キャリア

自分はNTT東日本の「フレッツADSLモア12M」を契約しているが、伝送損失が大きいために実際には下り1.2Mbps程度のスピードしか出ていない。 それでも小規模なサイトなら、Webサーバーを立てるのに支障はない。 実際、ISDN(64kbps)でもWebサーバーを立てている人はいる。 それでも上り下りが速い光ファイバー(FTTH)がベストなのは確か。

CATVの場合は、サーバー設置を許可していない事業者もあるらしい。

ISP

WAKWAK(NTT-ME)の「ざんまいADSL」に、「アドレスプラスサービス」(固定IPアドレス)を付加している。 ドメイン名の自由度は少ないし、料金も割高(ADSLで月額\2,000、Bフレッツなら月額\4,500)。 最近はダイナミックDNSサービスも一般的になってきたので、固定IPアドレスでなくてもWebサーバーは立てられる。

サーバー用PC

デスクトップ兼用 or サーバー専用

最近は、WindowsのデスクトップPCで、Webサーバーを立ち上げる為の参考書籍も出ている。 試してみる程度なら、このような方法も検討に値する。

固定IPアドレスを取得して、永続的なWebサーバーを運用するつもりなら、安定性や運用面を考えるとサーバー専用PCを用意したい。

設置場所

理想は空調設備とネットワークケーブルの配線が完備されていて、埃が少なく常時人が居ることが少ない部屋(笑)だが、現実にはムリだろう。 だが、真夏の室温が30℃以上になる部屋では、CPUの冷却能力に余裕がないと、連続稼動は難しい。 

大抵の場合は、普段使っているPCの近くかADSLモデムなどのそばに、サーバーPCを設置することになると思う。 居間や寝室に置かざるおえない場合、騒音対策を行わないと家人からの苦情にさらされることになる。

サーバーPCとは

サーバーといっても特別なハードウェアは必要ない。 500MHz程度のCPUと128MB以上のメモリ、10GB以上のHDDを積んだPCなら十分だ。 高性能に越したことはないが、FTTHでもない限りネットワークがボトルネックになってしまうので、あまり意味がない。 一般に高性能なCPUほど発熱も大きいので、冷却ファンの騒音も大きくなりがちだ。

家庭用PCではイーサネットのポートが無いことが多いので、ネットワークカードを装着しよう。 USB接続のイーサネットアダプタもあるが、サーバー用途には薦められない。 メーカー別では、定評のある Intel や 3com の製品がオススメである。

サーバーPCの調達

PCの買い替えの際に、余った中古PCを転用するというのが一般的だろう。 PCを自作している人なら、溜まった古いパーツを寄せ集めれば作れるかも。 意外に有用なのは中古ノートPCで、消費電力や騒音が少なく、畳んでおけば場所も取らない。 最近のUNIX系OSは、ACPIやCardBusに対応しているので、ノートPCにも導入できる。

新規に用意できるなら、キューブ型PCなど省スペースタイプの筐体を選ぶこともできる。 ただし、連続稼動時の発熱や騒音についても考慮する必要がある。 冷却ファンを使わずヒートシンクのみで稼動できる、低消費電力タイプのCPUを採用するのも良いだろう。 マザーボードはMicroATXなど小さめのもので、LAN(100Base-T)とVGAがオンボードになっているものが使いやすい。

電源に内蔵されているファンについても、製品によって騒音レベルの違いが大きい。 静音タイプとして販売されている物に交換するだけで、かなり静かになる。

サーバーOSの選択

Windows, Mac or UNIX like OS

Windows系(特にNT系列)OSでも、Webサーバーを立てることは可能だ。 (セキュリティーホールが多いことで有名な)MicrosoftのIIS以外にも、後述のApacheにもWin32版がある。 UNIX系のOSに馴染めない人にはそういう選択肢もある。

Windows系OSは、リモートでのメンテナンスが難しい。 GUIを切り離してシェイプアップできるUNIX系OSに比べると、より強力なスペックのPCが必要になる。 そしてWindowsは有料である。

Macに関しては使っていないのでなんとも言えない。 MacOS X の基本部分(Darwin)は、FreeBSDのコードを基にしているので、Webサーバーを立てるのになんら問題はないだろう。 サーバー版のMacOS X Serverならなお良いが、どちらにしても有料なので、経済的負担は大きい。

Linux or FreeBSD

WindowsやMacしか触ったことがない人には、Linuxの方がとっつき易いはず。 WindowsやMacOSのインストールが出来る人なら、最近のLinuxディストリビューションは問題なくインストール出来るだろう。 Red Hat Linuxには、Windows Updateのようにセキュリティー警告やアップデートを自動で行ってくれる、Red Hat Network(RHN)というサービスもある。 ただ、X Windowをインストールするなどリッチな構成にすると、Windows並に重たいシステムになるので、GHz級のCPUが欲しくなるだろう。

対するFreeBSDは、高機能化と共に複雑になりつつあるLinuxディストリビューションとは対極に、シンプルで見通しの良いシステムが特徴だ。 CD-ROM付きの書籍を買ってきて、解説に沿って作業すれば、サーバー構築も難しくはない。 後述のCVSupにより、システムを常に最新の状態に保つこともできる。

個人的には、KDEなどのデスクトップも使うならLinux。 X Windowを入れないで純粋にサーバーとして使うならFreeBSDがオススメ。 どちらもよくできたシステムなので、雑誌の付録などで両方を試してみて、好みの方を選べば良いだろう。

ルーター機能

ブロードバンドルーター or サーバー兼用

UNIX系OSにダイアルアップルーターを兼用させる方法は、ファイアーウォールの設定が複雑になりやすい。 初心者が抜け漏れなく設定するのは難しい。

ダイアルアップルーター&ファイアーウォール機能を、ブロードバンドルーターに持たせた方が、サーバーのファイアーウォールの設定は簡単になる。

HTTPサーバー

Apache 1.x or Apache 2.x

参考情報や書籍はまだ1.xベースの物が多いが、新規に導入するなら2.xを選択するべきだ。

その他のサーバー

BIND, sendmail, ftp etc...

OS標準のものをそのまま使用する。 セキュリティー的に穴の多いコンポーネントもあるのだが、素人が下手に入れ替えるよりは、ベースシステムのアップグレードを待った方が無難。

システム管理

Webmin

ほとんどのUNIX系OSで使用できる、Webベースのシステム管理ユーティリティー。 OSの設定以外にも、Apacheなどのアプリケーションの設定も可能。

OSのアップデート

CVSup

UNIX系OSはオープンソースになっているものが多い。 アプリケーションもソースファイルで配布されている(最近はWindowsと同じようにバイナリ形式での配布が増えたが)。

FreeBSDの場合は、開発中のソースファイルの管理にCVSというシステムを使用している。 CVSupはCVSのサーバーにアクセスして、指定したバージョンのソースファイルを取得するアプリケーションである。 cronで一定期間ごとにCVSupを起動すれば、常に最新のソースファイルに保つことができる。