『ニフティクラウド IaaSによるシステム構築/活用入門』読書ノート

ニフティクラウド IaaSによるシステム構築/活用入門』を読んだので、学んだ点をまとめる。

1. クラウドコンピューティングとニフティクラウド

従来型のサービスとクラウドの違い

仮想化を使っているかどうか。

サービスモデル 従来型 主な差
Saas ASP 基本的には同じ
PaaS ホスティング、レンタルサーバ 仮想化により、他のサービスの影響を受けにくい。リソース増強の自由度が増した
IaaS VPS リソース増強の自由度が増した

クラウドコンピューティングが解決する課題

  • ITリソース調達にかかるリードタイムの短縮
  • ITリソース調達にかかるコストの削減
  • IT資産の管理にかかるコストの削減
  • IT資産を所有するリスクの回避

3. ニフティクラウドによるシステムインテグレーション

Webサーバ構築のポイント

ニフティの仮想サーバ標準のOS領域のディスクはそれほど高速ではないため、ログを記録する際のIO性能がボトルネックになりうる。Apacheを用いる場合は、複数のログ出力をメモリ上にバッファリングして書きだすBufferedLogsディレクティブを有効にすべき。

社内システムの場合

社内からだけアクセスする専用システムを構築する場合、VPNサービスを別途利用するか、社内LANとの間でプライベートLANを接続するゲートウェイサーバを利用して接続する。
構築するシステムがWebシステムの場合は、ファイアウォールで企業の拠点からの接続のみに制限するのが最も単純な構成となる。

4. 運用監視の「自動化」と「見える化」

安定運用のための運用監視

サーバの運用監視の目的

  • 生存監視: PING監視等、システムが正常に稼働しているかどうかの確認
  • リソース監視: ディスク使用率等、サーバのリソース状況の把握
  • システムの状況把握: 毎秒リクエスト数、SQLクエリ分類、スロークエリ数等

最低限、監視しなければならないのは、サーバ停止を発見するためのPING監視と、ディスク使用率。可能であればCPU使用率とメモリ使用率も監視するのが理想。
ネットワーク輻輳によるパケットロスで一時的に応答がないこともあるので、PING監視は数回繰り返す。
CPU使用率は30分など長時間90%以上となる状態が続く場合に通知するのが理想だが、バッチ処理が入れ替わり立ち替わり実行されるような場合には、いっそCPU使用率の監視をしないという選択肢もある。
重要なのは、対応が必要な状況以外は通知をしないこと。

ニフティクラウドの基本監視とパフォーマンスチャート

ニフティクラウドには基本的な監視機能が標準で提供されている。自分でもっと詳細な監視をするために監視サーバを立てた時は、監視サーバ自体をニフティクラウドの基本監視で監視すると良い。
基本監視は、SNMPエージェントを導入する必要がある。

ニフティクラウド以外の監視ツール

  • sysstat
  • Munin
  • Zabbix

Muninはsysstatに含まれるような項目から、Apacheのプロセス数やMySQL内部のSQLクエリ分類など、ミドルウェア個別の項目を監視できる。グラフで一日単位、一週間単位、一ヶ月単位、一年単位を描画できる。

9. ニフティクラウドの実践的テクニック集

fail2ban

ブルートフォース攻撃やDoS攻撃から守るためのもの。iptablesなどのファイアウォールの仕組みのフロントエンドとして実装されている。アプリのログを監視して、特定のパターンに引っかかる動作が記録されたら、ファイアウォールに動的にルールを追加、解除できる。
ブロックがiptablesレベルで行われるので、DoS攻撃でもサーバのパフォーマンスにはあまり影響を与えずにブロックできる。

-読書ノート