IISYSでは自社サーバーでの運用が「ウリ」のひとつでしたが、自前で運用するデメリットが時代とともに大きくなってきているので、VPSへの移行を前提に現在の構成を取りまとめてみました。
19インチサーバーラック(42U)
鉄の塊で出来ていてラックだけでも100kg以上あります。
サーバーを搭載した状態では1トン近くになります。
IISYSではこれが2基あり、移転の際には大型クレーン車で窓から搬入しました。
約10年間このラックにサーバーを複数台積んで運用していましたが、消費電力が尋常ではない(数万円/月)のと24時間ジェット機が飛んでいるかのような騒音に嫌気がさして、タワー型省電力サーバーに仮想化ソフトを導入して統合しました。
しかし42Uラックはいまだに2台鎮座しています。
移転を考えるたびに、大きな足かせになっています。
サーバー本体
上述のように以前はラックマウントタイプを複数台稼働させていましたが、現在はタワー型サーバーに統合させています。
VMware等、仮想化についての知識が必要となります。
また統合させた分1台に負荷が集中しますので、OSやアプリケーションの最適化が必要になります。
障害ポイントが1台に集中しますので、HDDのRAID構成(ミラーリング)や電源の冗長化(電源供給の二重化)などが必要となり、サーバー本体の異音などに過敏になります。
また仮想化した事で、万が一の際にゼロから再構築するにはハイパーバイザで「ホストの設定」「ゲストの設定を複数」を正しくしたうえで、各サーバーの構築しなおす必要があり、時間もかかるうえにリスクが増えた気がします。
そのため同一構成にした予備機に定期的にミラーリングを行い、コールドスタンバイしています。
このコールドスタンバイ機、幸か不幸か一度も使ったことはありませんが。
仮想化ソフト
これだけで資格があるほど掘り下げるとやっかいな存在です。
物理的なサーバー台数を減らせるというメリットはありますが、構築時とトラブル時にしか使わない部分なので、必要な時には毎回覚えていません。
構築をした段階で、トラブル時に備えた完全なマニュアル作成が絶対不可欠です。
また安定稼働しているサーバー環境ではハイパーバイザはアップデートをしない事も多いと思いますが、トラブルが発生した際に「現行バージョンよりも古いバージョンを使っていた」という事態に陥ります。
環境を復元するためのソース類をローカル環境に全て揃えておく必要があります。
復元の一部にダウンロードが必要な場合、以前の環境を復元できないという事がありました。
復旧しなければと気が焦っている中、新しいバージョンについて学ぶのはしんどいです。
DNSサーバー(ネームサーバー)
BINDを使って外向きのプライマリ構成にしています。
現在は(かなり前からみたいですが)ドメインを取得したレジストラの管理画面でレコード設定のほとんどができます。
DDNSなどの運用でも無い限り、外向けネームサーバーを自前で運用する優位性を感じられませんが、10年以上前の名残でそのままになっています。
Webサーバー
OSやPHPのバージョン違いなどで複数台稼働しています。
既に稼働中のコンテンツがあるため、何か大きな変更を加えるときは新しくサーバーを立ち上げてしまっています。
メールサーバー
これが一番厄介だと思っています。
過去の記事でも紹介していますが、qmailというメールサーバーソフトウェアが非常に優れいていますが、古いんです(20年以上前)。
そのため最近の技術を導入するにはパッチをあてたり、自分で修正する必要があり、導入はかなりハードルが高いものとなってしまっています。
他のメールサーバーソフトも使ってみましたが、要件を満たして安定動作には至らずqmailで構築しています。
メールサーバーはある意味WebサーバーやDBサーバーよりもシビアなんですよね。
基本的にサーバーは、負荷が高くレスポンスが悪くても少しすれば改善されます。ゆえにレスポンスが悪かったという事に(ログでも見ない限りは)気付かないという事も多々あります。
しかしメールサーバーの利用者は、定期的に自動受信設定している人も多く即座に異変に気付きます。
ですので、メールサーバーでは可能な限り他サービスを動かさない等の努力はしていますが、海外からの攻撃を受けて時々レスポンスが悪くなりお叱りを受けます。
DBサーバー
WordPress等の簡易なデータベースはWebサーバーで動作させていますが、規模の大きいものはチューニングを施したDBサーバーを用意します。
バックアップサーバー
バックアップスケジュール等を設定して、仮想化されたサーバーイメージを管理するためのサーバーです。
フリーのスクリプトなども検討しましたが信頼性が重要な部分でしたので、信頼できるメーカー製のソフトウェアを導入しました。
全てが自動化できているのですが、過信しすぎると、〇ヶ月前の〇日からずっとエラーが出ていて、最新バックアップは〇ヶ月前…なんてなります。
毎日バックアップ完了ログのチェックが必要ですね。
本当は定期的にバックアップからの復元練習も必要ですが、正常に動いている本番環境でそれを試してみる気にはなれません。
練習用として完全に同じ環境を用意できたとしても、本番環境とIPアドレス等が重複してしまうため難しい部分です。
バックアップ用NAS
毎日深夜に電源が入るように設定して、全サーバーイメージのバックアップを取得しています。
速度よりも信頼性重視でRAID1(ミラーリング)構成にしています。
UPS(無停電電源装置)
必須です。しかし地味にランニングコストがかかります。
通信機器(ONUやルーター)とサーバーだけをつないで、停電時になるべく長持ちできるようにしていますが、それでも通常は10~20分程度しか持ちません。
大規模な災害でも無い限りは、停電は数分で復旧することがほとんどですので有用です。
蓄電用のバッテリーが数年で交換が必要となりますが、安価な社外品を使って痛い目を見たことがあります。
(交換したその日から容量不足アラートが出て、交換してもらいましたが同様。おそらく容量の問題で仕様のようでした。)
純正品が理想ですが、それ以外でも日本製のセルを使ったものであれば外れたことはありません。
監視用クライアントPC
上述のUPSを監視したり、仮想化ホストに接続するために古いノートパソコンをLANケーブルで繋いで電源を入れてあります。
ルーター
YAMAHAのRTXシリーズを使っています。
ルーターは絶対にケチってはいけない部分だと思います。
ISDNで専用線を引いていた時代になりますが、BUFFALOやIOデータの廉価版ルータを使ってサーバーを公開していた際に、毎日パケット詰まりで外出先から飛んで戻って再起動を強いられた記憶があります。
YAMAHAのRT/RTXシリーズは何種類か使いましたが、再起動が必要になるトラブルは格段に減りました。
Ciscoも良いようですが、使ったことがありません。
ただ固定IPアドレス・IPマスカレードやNAT・フィルタリング等の設定を正しく行うには、GUI設定では無くConfigを直接読み書きする必要があります。
「ネットワーク技術者」と呼ばれる分野もあるほど専門性の高い分野ですので、Webサービス提供のためだけに習得しても、そのコストを回収するのは難しいです。
プロバイダー(固定IPアドレス)
サーバーを公開するのであれば固定IPアドレスは必須です。
(個人レベルであればDDNSでもなんとか使えますが。)
固定IPアドレス1個だけでも、アンナンバードやNATなどを駆使してネットワークを構築すればできるようですが、通常は8個または16個を割り当ててもらいます。
私は8個割り当ててもらっていますが、ネットワークアドレス・ブロードキャストアドレス・ルータアドレスにそれぞれ1個使われるので、実際には5個しか使えません。
ルーターへ適切に設定する必要があり、設定当初(もう15年以上前になりますが)、設定がうまくいかずにYAMAHAに電話して長時間付き合ってもらった覚えがあります。
最近は固定IPアドレスを安い価格で提供しているプロバイダーもあるようですが、毎月2万円近くかかっています。
24時間死活監視
サーバーやネットワークを監視するサービスは多数ありますが、問題を検知すると通知が来て、最終的に対応しなければならないのは人間です。
タブレットやスマホで外出先からも遠隔操作できるツールを試しましたが、ルーター・サーバー本体・仮想化ホストにトラブルが発生した場合は物理的な対応が必要になる場合がほとんどです。
サーバー管理者が1人しかいない場合には、旅行などはもってのほかです。
過去数ヶ月、安定稼働していたのに「少し遠出したその時にトラブルが発生」は良くある話です。
以前映画で見たのをまねして、私もサーバーに「厄除けのお札」を貼っています。