さくらのVPS「SSD 2Gプラン」を試してみました!

標題の通り、さくらVPSのSSD 2Gプランを試してみました。

変更のきっかけ

これまで使用していたHDD 2Gプランでも割りと満足だったのですが、
今開発中のWebサービスのパフォーマンスを底上げしたかったので
プラン変更をすることになりました。

まだすべての設定が終わったわけでないので分かりませんが、 すでに現時点でレスポンスが高く、チューニング後どこまで行けるのかとても楽しみです。

サーバ設定の基本コンセプト

  • 必要最低限の機能を設定する
  • ユーザごとの権限をしっかり分離する(Suexec)
  • スペックの範囲内で最大限のレスポンスを追求する

必要最低限の機能

主にサイトが公開出来れば良いのと、自前でDNSサーバやメールサーバを持つことはリスクが高いので DNSサーバはドメイン会社(ムームードメイン)のもの、メールサーバはGoogleAppsを使用します。

  • CentOS 6.5x
  • Apache 2.2x
  • Perl 5.8x + FCGI
  • PHP 5.3x + FCGI
  • Postfix *内部からの発信専用
  • MySQL 5.2x
  • SSH

ドメインベースの管理

1個前のサーバは1ユーザ:1ドメイン想定でしたが、今はテスト環境と本番環境など1つのサイトで2つのドメインを 持つ可能性も大いにあるので、ドメインとユーザの関わりを薄くすることにしました。

ユーザは管理者が増えることに個別にuseraddし、必要に応じてドメイン単位で管理を譲渡できるようにします。

  • 名前ベースのバーチャルホスト
  • サイトの公開パスは、/var/www/(ドメイン名)
  • 公開パス以下のファイル所有者はサイト管理者を設定
  • サイトの管理者は担当サイト以外のフォルダは閲覧不可

設定内容(詳しくは下記の参考サイトをご参照ください)

全体

  • VPS起動
  • rootのパスワード変更
  • 作業用ユーザの作成
  • sudoの設定
  • iptablesの設定
  • 利用されていないデーモンを終了する
  • 環境を日本語に設定する
  • logwatchの送信先変更
  • sshdのポート設定変更

Apache

  • インストール(yum)
  • 設定
  • 不要なモジュールの読み込みを停止する

MySQL

  • インストール(yum)
  • 不要なユーザ・テーブルの削除
  • 設定
  • デフォルトエンジンをInnoDBに変更(default-storage-engine=InnoDB)
  • MySQLTunerを使いながらチューニング

PHP

  • インストール(yum)
  • タイムゾーンの設定(date.timezone = Asia/Tokyo)

Node.js

  • インストール(yum install nodejs npm --enablerepo=epel)

Movable Type用のPerlモジュールを追加

  • yum -y install ImageMagick ImageMagick-perl
  • yum -y install perl-Archive-Tar perl-Archive-Zip perl-Cache-Memcached perl-GD perl-Mail-Sendmail
  • yum -y install perl-libwww-perl perl-libxml-perl perl-Digest-SHA
  • yum install perl-FCGI mod_fcgid

参考サイト

全般

Apache

MySQLチューニング