カテゴリー : VPS

AnsibleでさくらのVPSのセットアップをするために2週間無料のお試し期間で登録した話

今までサーバの環境構築は手動でやっていたのですが、そろそろ構成ツールを使って自動化できるようになりたいなと思う今日このごろです。

思うだけではダメで、行動しなければ!ということで、さくらのVPSの2週間無料のお試し期間へ登録しました。

さくらのVPSへ登録

まず、さくらのVPSにクレジットカード支払いで登録します。

無料お試し期間のみ使うことが決まっていれば、月払いを選択すると解約忘れのリスクを回避できそうです。

以下のバナーから登録してもらえると、僕にキックバックが入るので嬉しいです。



さくらのVPSからの仮登録メールを確認

申し込みすると以下のような仮登録メールが届きます。

rootユーザのパスワードやIPアドレスなど重要な情報が記載されているので、大切に保存しておきましょう。

[件名]
[さくらのVPS] 仮登録完了のお知らせ

[本文]
―――――――――――――――――――――――――――――――――――
このメッセージはさくらインターネットのサービス登録システムより自動
送信されています。
お心当たりのない場合は、他の方がメールアドレスを間違えて登録された
可能性がございます。
その際には、誠にお手数ですが本メールへの返信にてご連絡ください。
―――――――――――――――――――――――――――――――――――

◯◯ 様 (wno12345)

さくらインターネット株式会社

仮登録完了のお知らせ

この度は、さくらインターネットのサービスをお申込みいただき誠にありが
とうございます。

お申込みいただきましたサービスの仮登録が完了し、ご試用いただく準備が
整いましたので、以下の通りお知らせいたします。

======================================================================
┏┓
┗■ お申込み・ご利用情報
└────────────────────────……………‥‥‥・

▼契約者/契約サービスの情報

会員ID :wno12345
ご契約者名:◯◯ 様
電子メール:codenote@example.com

サービス名 :さくらのVPS(v4) SSD 1G TK02
サービスコード :xxxx
お申込み日 :2016年07月24日
お試し期間 :2016年08月07日 まで

▼サーバ情報

[サーバ基本情報]
IPアドレス:160.16.55.xxx

[管理用ユーザ]
ユーザ名 :root (for Windows Server の場合は Administrator )
初期パスワード:xxxx

[VPSコントロールパネル ログイン情報]
URL :https://secure.sakura.ad.jp/vps/
IPアドレス:160.16.55.xxx
パスワード:xxxx

※ご提供時の初期状態ではサーバは停止状態になっていますので、利用を開始
する際は「VPSコントロールパネル」にログインしサーバを起動して下さい。

======================================================================
┏┓
┗■ VPSサービスのご利用にあたって
└────────────────────────……………‥‥‥・

▼【重要】セキュリティ対策について

 さくらのVPSは、お客様にroot権限(管理者権限)をお渡しているサービス
です。特にセキュリティの設定を実施しない場合、お客様のVPSが第三者に
乗っ取られるなどの被害にあうことがありますので、必ず対策を行ってく
ださい。
 弊社サポートサイトにてサーバの初期設定マニュアルをご用意しておりま
 すので、ご参照ください。(for Windows Serverを除く)

▽ 初期設定ガイド
https://help.sakura.ad.jp/app/answers/detail/a_id/2429

▼お試し期間中の機能制限について

お試し期間中は、機能制限がありますのでご利用上の注意をご確認ください。

▽ さくらのVPS
http://vps.sakura.ad.jp/flow/

▽ さくらのVPS for Windows Server
http://solution.sakura.ad.jp/windows_vps/flow.html

▼ for Windows Server の初回起動時について

さくらのVPS for Windows Server では、サーバの初回起動時にOSのインス
トールが行われます。インストールには5~10分程度のお時間がかかります。

※OfficeやSQL Serverのオプションをお申込みいただいた場合は15~30分
程度のお時間がかかります。

▼マニュアル

ご不明な点がありましたら、「オンラインマニュアル」や「よくある質問」
をご覧ください。

▽ オンラインマニュアル
https://help.sakura.ad.jp/app/vps/

▽ よくある質問
https://help.sakura.ad.jp/app/faq/

======================================================================
┏┓
┗■ サービスの本契約・キャンセルについて
└────────────────────────……………‥‥‥・

▼本契約について

お試し期間終了後、自動的に本契約へ切り替わります。

お試し期間終了を待たずに本登録をお急ぎの場合は、下記マニュアルを
ご参照いただき、お手続きください。

▽本登録の方法
https://help.sakura.ad.jp/app/answers/detail/a_id/2037

▼キャンセルについて

申込キャンセルは、下記マニュアルをご参照いただき、お手続きください。

▽お申込みのキャンセル
https://help.sakura.ad.jp/app/answers/detail/a_id/2024

=======================================================================

ご不明な点やご質問等ございましたら、本メール返信にてお問い合わせ
ください。

今後ともさくらインターネットをよろしくお願いいたします。

─── さくらインターネット株式会社 カスタマーセンター ───────

 ■Twitterサポート
  https://twitter.com/sakura_ope

■サポートサイト
https://help.sakura.ad.jp/

■FAQ(よくある質問)から調べる
https://help.sakura.ad.jp/app/faq

■電話・メールによるお問い合わせ
https://help.sakura.ad.jp/app/answers/detail/a_id/2005
電話受付時間 :平日 10:00 – 18:00(土日祝、当社指定休日は休み)
メール受付時間:10:00 – 18:00(土日祝営業、当社指定休日は休み)

───────────────────────────────────

VPSコントロールパネルからログインしてサーバを起動する

ほとんどのサーバ環境構築は Ansible で設定したいので さくらのVPS サーバの初期設定ガイド|さくらインターネット公式サポートサイト に記載されている「STEP1 サーバを起動しましょう」の項目のみ手作業でおこないます。

まず、メールに記載されているURL https://secure.sakura.ad.jp/vps/ からVPSコントロールパネルにログインします。

さくらのVPS VPSコントロールパネル サーバ一覧

次に、対象のサーバのチェックボックスを ✔ して [起動] ボタンをクリックします。

最後に、サーバが起動したら root ユーザで ssh 接続できるか確認します。

起動後しばらく経っても ssh できない場合は以下の記事の通りコンソールを確認して気長に待ちましょう。

以上で Ansible でサーバをセットアップするための事前準備が整いました。

Ansible を使ったサーバセットアップについては別の記事で書きたいと思います。

さくらのVPSで初回起動時にコンソールに Updating RPMS on system と出力されたら気長に待とう

さくらのVPSで契約したサーバを初回起動して ssh すると Connection refused エラーで接続できませんでした。

エラーメッセージ: Connection refused

$ ssh root@160.16.55.xxx
ssh: connect to host 160.16.55.xxx port 22: Connection refused

仕方ないので、さくらのVPS専用の「VPSコントロールパネル」からサーバに接続して、コンソールを確認してみると Updating RPMS on system が出力されているところで処理が止まっていました。

Updating RPMS on system - CentOS

調べてみたところ、初回起動時にインストールされている RPM を全て更新する仕様らしく、そのため時間が掛かっているようでした。

20分ぐらい待ってコンソールを確認すると次の処理に進んでいて、しばらくすると無事に login プロンプトが表示されていました。

初回起動時だけなので困るのは最初だけですが、定期的に RPM が最新の状態の CentOS がデフォルトでインストールされると嬉しいですね。

UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY エラー出てるじゃん! と思ってたら「【さくらのVPS】障害に関するご報告」というメールが届きました

ブラウザからウェブサイトを開いても response が返ってこない…

サーバに ssh しても繋がらない…

仕方ないから、さくらのVPSの管理画面から VNC コンソール経由で確認してみると「UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY」というエラーが出ていることが確認できました。

このエラーを見るのは初めてだったので「さて、どうやって復旧すればいいのかな?」と思いながら Google 検索していると、さくらインターネットからメールが届きました。

件名:
【さくらのVPS】障害に関するご報告

本文:
■ご連絡日 [2015-03-01]

        ご利用中のさくらのVPSサービスについて

さくらインターネット株式会社

平素よりさくらインターネットをご利用いただき、誠にありがとうございます。

お客様にご利用いただいておりますサービスが収容されているホストサーバに
おいて、ハードウェアの不具合によりデータの不整合が発生する状況が確認され
ました。

そのため、弊社にて以下の緊急メンテナンスを実施いたしました。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

作業日程 : 2015年03月01日15時30分~2015年03月01日18時30分
影響範囲 : さくらのVPS SSD 4Gプランの一部
IPアドレスが下記の範囲のお客様
133.242.182.135 ~ 133.242.182.184
作業内容 : ハードウェア交換作業
補足事項 : 作業時間中 VPSサービスへ接続できなくなります。
お客様ご利用のVPSに再起動が発生します。

 【緊急メンテナンス】
  http://support.sakura.ad.jp/mainte/mainteentry.php?id=15625

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

ハードウェア交換につきましては 18時30分頃に完了いたしましたが、データの
不整合によってお客様ご契約中のさくらのVPSサービスが正しく起動しないこと
が判明いたしました。

弊社にて保持している2015年02月17日のバックアップデータから復旧を行う
ことは可能でございます。

当該データでの復旧を希望される際は、本メールの返信にてお知らせくだ
さいますようお願いいたします。

また、さくらのVPSのコントロールパネルより、OS再インストールを行って
いただくことも可能でございます。

弊社による2015年02月17日時点への復旧が不要の場合は、恐れ入りますがOSの
再インストールによる再構築を実施いただけますようお願い申し上げます。

この度はお客様に大変ご迷惑をお掛けしましたこと、深くお詫び申し上げます。
—-
ご不明な点やご質問等ございましたら、本メール返信にてお問い合わせ
ください。

今後ともさくらインターネットをよろしくお願いいたします。

─── さくらインターネット株式会社 カスタマーセンター ───────

 ■Twitterサポート
  https://twitter.com/sakura_ope

■サポートサイト
https://help.sakura.ad.jp/

■FAQ(よくある質問)から調べる
https://help.sakura.ad.jp/app/faq

■電話・メールによるお問い合わせ
https://help.sakura.ad.jp/app/answers/detail/a_id/2005
電話受付時間 :平日 10:00 – 18:00(土日祝、当社指定休日は休み)
メール受付時間:10:00 – 18:00(土日祝営業、当社指定休日は休み)

───────────────────────────────────

メールを読むと対応方法は「2015年02月17日のバックアップデータから復旧」or「さくらのVPSのコントロールパネルより、OS再インストール」と書いてありますね。

この時間から OS 再インストールするほど頑張りたくはないので、取り急ぎバックアップデータから復旧してもらってサービスを動くようにしてもらうことにしました。

さくらVPS(CentOS6.3)で nginx + php-fpm + MySQL で WordPress環境を構築

Nginx のインストール

■ Nginx リポジトリを登録

# vim /etc/yum.repos.d/nginx.repo
 
[nginx]
name=nginx
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=0

■ インストール可能な Nginx のバージョン確認

# yum info --enablerepo=nginx nginx

■ Nginx のインストール

# yum -y install --enablerepo=nginx nginx

Nginx が正常にインストールされたことを確認する。

# nginx -v
nginx version: nginx/1.4.2

■ Nginx の各種設定

# vim /etc/nginx/nginx.conf
user  nginx;
worker_processes  2;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    # gzip
    gzip  on;
    gzip_http_version 1.0;
    gzip_vary         on;
    gzip_comp_level   6;
    gzip_types        text/xml text/css application/xhtml+xml application/xml application/rss+xml application/atom_xml application/x-javascript application/x-httpd-php;
    gzip_disable      "MSIE [1-6]\.";
 
    # reverse proxy
    proxy_cache_path  /var/cache/nginx levels=1:2 keys_zone=czone:4m max_size=50m inactive=120m;
    proxy_temp_path   /var/tmp/nginx;
    proxy_cache_key   "$scheme://$host$request_uri";
    proxy_set_header  Host               $host;
    proxy_set_header  X-Real-IP          $remote_addr;
    proxy_set_header  X-Forwarded-Host   $host;
    proxy_set_header  X-Forwarded-Server $host;
    proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;
 
    upstream backend {
        ip_hash;
        server 127.0.0.1:8080;
    }
 
    include /etc/nginx/conf.d/*.conf;
}
# vim /etc/nginx/conf.d/virtual.conf
server {
 
    listen      80;
    server_name example.com;
    root        /var/www/vhosts/example.com/www;
    access_log  /var/log/nginx/example.com/access.log   main;
    error_log   /var/log/nginx/example.com/error.log;
    client_max_body_size 36M;
 
    location /wp-admin { proxy_pass http://backend; }
    location ~ .*\.php { proxy_pass http://backend; }
    location / {
        set $mobile "";
        if ($http_user_agent ~* '(DoCoMo|J-PHONE|Vodafone|MOT-|UP\.Browser|DDIPOCKET|ASTEL|PDXGW|Palmscape|Xiino|sharp pda browser|Windows CE|L-mode|WILLCOM|SoftBank|Semulator|Vemulator|J-EMULATOR|emobile|mixi-mobile-converter)') {
            set $mobile "@ktai";
        }
        if ($http_user_agent ~* '(iPhone|iPod|Opera Mini|Android.*Mobile|NetFront|PSP|BlackBerry)') {
            set $mobile "@mobile";
        }
        if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
            set $do_not_cache 1;
        }
 
        proxy_no_cache     $do_not_cache;
        proxy_cache_bypass $do_not_cache;
        proxy_cache czone;
        proxy_cache_key "$scheme://$host$request_uri$is_args$args$mobile";
        proxy_cache_valid  200 301 302 60m;
        proxy_cache_valid  404 5m;
        proxy_cache_use_stale  error timeout invalid_header updating
                               http_500 http_502 http_503 http_504;
        proxy_pass http://backend;
        proxy_redirect http://example.com:8080/ /;
    }
}
 
server {
 
    listen      8080;
    server_name example.com;
    root        /var/www/vhosts/example.com/www;
    access_log  /var/log/nginx/example.com/access.log   main;
    error_log   /var/log/nginx/example.com/error.log;
    client_max_body_size 36M;
 
    location / {
        index  index.php index.html index.htm;
        # static files
        if (-f $request_filename) {
            expires 14d;
            break;
        }
        # request to index.php
        if (!-e $request_filename) {
            rewrite ^(.+)$  /index.php?q=$1 last;
        }
    }
 
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        include        fastcgi_params;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  /var/www/vhosts/example.com/www/$fastcgi_script_name;
    }
}

ログディレクトリを作成します。

mkdir /var/log/nginx/example.com

設定ファイル編集後、文法チェックを行います。

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Port8080 を開放するためにファイアーウォールの設定に追記します。

# vim /etc/sysconfig/iptables
 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080  -j ACCEPT

■ Nginx の自動起動設定

chkconfig nginx on

MySQL のインストール

■ インストール可能な MySQL のバージョン確認

# yum info mysql-server

■ MySQL server のインストール

yum のパッケージは mysql ではなく、mysql-server なので間違えないように。

# yum -y install --enablerepo=remi mysql-server

■ MySQL 設定ファイルの修正

# cp /etc/my.cnf /etc/my.cnf.default
# vim /etc/my.cnf
 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
 
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
# Settings user and group are ignored when systemd is used (fedora >= 15).
# If you need to run mysqld under different user or group, 
# customize your systemd unit file for mysqld according to the
# instructions in http://fedoraproject.org/wiki/Systemd
user=mysql
 
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
 
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
 
# Semisynchronous Replication
# http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html
# uncomment next line on MASTER
;plugin-load=rpl_semi_sync_master=semisync_master.so
# uncomment next line on SLAVE
;plugin-load=rpl_semi_sync_slave=semisync_slave.so
 
# Others options for Semisynchronous Replication
;rpl_semi_sync_master_enabled=1
;rpl_semi_sync_master_timeout=10
;rpl_semi_sync_slave_enabled=1
 
# http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html
;performance_schema
 
character-set-server=utf8
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
 
# ここから下を追記する
 
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
[mysqldump]
default-character-set=utf8

■ MySQL の起動&自動起動の設定

service mysqld start
chkconfig mysqld on

■ MySQL のパスワード設定

# mysqladmin -u root password
# mysqladmin -u root -h hostname password

PHP のインストール

■ インストール可能な PHP のバージョン確認

# yum info php php-mbstring php-mysql php-pear php-gd php-pecl-apc php-fpm

■ PHP のインストール

# yum -y install php php-mbstring php-mysql php-pear php-gd php-pecl-apc php-fpm

PHP が正常にインストールされたことを確認する。

# php -v
PHP 5.3.15 (cli) (built: Jul 20 2012 12:50:06) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

■ php.ini の設定変更

# vim /etc/php.ini
expose_php = Off
 
error_log = /var/log/php_errors.log
 
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
 
[Date]
date.timezone = Asia/Tokyo

ログファイルの作成

# touch /var/log/php_error.log
# chmod 757 /var/log/php_error.log

■ APC の設定

mkdir -p /var/www/vhosts/example.com
cp /usr/share/doc/php-pecl-apc-3.1.10/apc.php /var/www/vhosts/example.com/
vim /var/www/vhosts/example.com/apc.php 
 
defaults('ADMIN_USERNAME','user');
defaults('ADMIN_PASSWORD','password');

■ Fast CGI のインストール確認

php-fpm が正常にインストールされたことを確認する。

# php-fpm -v
PHP 5.3.15 (fpm-fcgi) (built: Jul 20 2012 12:52:37)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

■ php-fpm の各種設定

# vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
 
pm = dynamic
pm.max_children =  30
pm.start_servers = 11
pm.min_spare_servers = 10
pm.max_spare_servers = 15
pm.max_requests = 500
 
php_admin_flag[expose_php] = off

php-fpm の起動

service php-fpm start

php-fpm の自動起動設定

chkconfig php-fpm on
# netstat -ltn | grep -E '(80|9000)'
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN

以上です。


参考情報

さくらの VPS に nginx を入れてリバースプロキシ設定するまでの作業メモ(検証用) | ウェブル

nginx+php-fpmをyumでインストールして、WordPress/CakePHPを動かす設定 – Shin x blog

さくらVPS(CentOS6.2)でnginx + spawn-fcgi + MySQLでWordPress環境を構築【その2】 | 青田んぼ.net

こちらの設定の方が良いかも。

Nginxを使ったもう一歩進んだWordPressチューニング | cloudrop

[さくらのVPS] Ubuntu 12.04 をインストール

さくらのVPS に Ubuntu 12.04 をインストールしました。

手順は公式サイトに詳しく書かれているので、これを読むだけでできました。

Ubuntu 12.04|カスタムOSインストールガイド|さくらのVPS|さくらインターネット公式サポートサイト