メンテナンス画面を簡単に出してみる
ウノウラボの記事に対抗しているわけではありません。多分。(笑)
私が昔やっていた方法はメンテナンス画面表示専用ノートPCを用意する方法です。ノートPCにApacheを入れて超軽量メンテナンス画面データを置いておきます。メンテ時間になったらロードバランサーの向き先を切り替えるか、LANケーブルごとぷちっと差し替えることでメンテナンス画面に切り替えます。(ただし後者の場合はネットワーク機器にMACアドレスのキャッシュが残ることで通信できなくなる可能性があるのでその場合は適切に処理します)
さて、なぜこのような方法を取るようにしたか。
・まずメンテナンス画面専用機器を用意したのは、サーバのセキュリティパッチを適用したり再起動したりといったサーバ自体のメンテナンスが発生する場合単純に面倒くさいからです。
・ノートPCにしたのはバッテリーが付いているので一定期間バッテリーで動くからです。これなら電源まわりのメンテナンスも可能になります。
・専用ノートPCとは言ってもかなり低スペックのマシンでも十分だったので秋葉原で1万円で買ってきた超おんぼろPCでした。メンテナンスを行っていたのは深夜ばかりでしたし、メンテナンス画面が超軽量だったのでこの程度のマシンでも十分なんです。
メンテナンス画面と言えば、以下のようなことにも気をつけてました。
・メンテ終了予定時間近くになると急激にアクセスが増えてくるので、わざとメンテ終了時間を長めに書いておいた。
・メンテ時間を過ぎるとユーザの怒りが大きいので、そういう意味でもわざとメンテ終了時間を長めに書いておいた。
・メンテ終了予定時間を過ぎるとF5(or CTRL+F5)、俗称F5アタックを使ってリロードを試みる人が増えるのでますますサーバ負荷が上がってページが見えなくなる。これを防ぐためにいろいろなテクニックを使った(方法は内緒)。
・少しでもサーバ負荷を減らすために、HTTP Response headersを書き換えてWEBブラウザのキャッシュに残るようにした。ただしあまり長い時間キャッシュさせるとメンテが終わってもメンテ画面のままなのでほどほどにする。


Comments