これからサーバー構築する友人へ サービスを公開するLinuxサーバーを構築するときに何点か意識をしておかないと後で面倒な事になります。 運用に一度乗ってしまうと、そう易々と設定を変えられないことに起因するんですが、実際にサーバー構築して、運用に乗っけてから失敗したなぁ・・・って事が在ったので、書いておきます。

サーバーのディレクトリやアプリの構成は統一すべし

Linuxをインストールする際に、出来るだけサーバー構成を統一しましょう。 ディレクトリ構成だけでなく、アプリケーションのインストール先や、設定ファイルの置き場等は絶対同じにしていた方がいいです。 何故かと言うと、トラフィックが増大してきた時に、一台ではまかないきれなくなってきます。 そうすると、MPP環境を構築する事になると思うのですが、MPP環境を構築するとき、サーバーの構成が違っていると、か・な・り面倒です。 並列化するソフトウェアを使う場合、サーバー構成が同じであることが条件であるソフトが結構在ります。 大体台数が増えてくると、いちいちサーバーの違いなんて覚えていられません。

アプリを稼働させる前にバックアップ計画を

特にDBにかんしてですが、バックアップ計画を先に立てておかないと、非常に困ります。 一度運用始まると、アプリケーションの再起動すらなかなか出来ません。 特にDBによっては、バックアップ時にロックをかける事があるので、多少なりとも停止してしまう時間が出来てしまいます。 メンテナンスウィンド(システム停止時間)を何処に置くかをちゃんと考えておかないと、すぐにメンテナンス出来なくなってしまいます。 365日24時間稼働の無停止システムとなると、その難易度は更に増大します。ってか基本的に止められないので、バックアップやバージョンアップが出来ません。初めからHA構成にしておかないと、痛い目見ます。 HAにしたところで、切り替えの時は一時的に停止してしまうと思うので、更に冗長化する必要が在ります。 激しく気を遣ってください。

運用はshellで

どんなに運用計画をシッカリ立てても、人手を介す限りミスは発生してしまいます。 そこで、出来るだけshellスクリプトで自動化しておきましょう。 リリース、バージョンアップ、サーバーのヘルスチェック、設定変更etc...各種shellを用意しておくと便利です。

パスワード認証は破られる

パスワード認証危ないです。ウチのサーバーも一日3000件以上不正アクセスを受けています。 辞書攻撃をくらったりするので、最低でもsshの公開鍵認証は設定しましょう。 それでもセキュリティホールはあるので、Logwatchなどで、ログのサマリーを取得してメールで送るようにしておくと便利。