さくらの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