2015
02/02
03:53

さくらのVPSからDigitalOceanへ移転

[さくらのVPS][docker-compose][docker][fig][DigitalOcean]

しました。 ### DigitalOceanにした理由 実は、最初はさくらVPSのSSDプランに乗り換えるつもりで移転準備を進めていました。 さくらVPSのSSDプランはDigitalOceanのプランをそのままコピーしたような内容で、 どうせなら国内にサーバーがある方がいいかなと思ったのですが、 年明けにGoogleAnalyticsをみると、 どうやら「低速病」にかかったらしく、ページのロード時間が20秒とかになっており、 100ms程度のレイテンシ差はどうでもいい感じになりました。 ![sakura_loading_time.png](/userdata/blog/sakura_loading_time.png) さくらの低速病は[他のユーザのあおりを受ける](http://www.teradas.net/archives/13034/)場合と、 [自分のサーバが負荷をかけすぎて規制される](http://blog.malrone.info/archives/4269)場合の二通りあるようですが、 このブログはせいぜい一日数百ヒットなので多分前者かなと。 運が悪かったですね。 あと、さくらだと最安プランで初期費用が1,000円かかるのですが、 DigitalOceanは逆にサインアップ時に[10ドル分のクーポン](https://www.digitalocean.com/?refcode=c6073ed1a13a)があって、 初期費用で実質2,000円強の差が発生します。 (ちなみにクーポン使ってもらえると私にもメリットがあるのでぜひ使って下さい。) プラン変更、解約の柔軟度もDigitalOceanが優っています。 さくらではプラン変更は一旦解約の後、再契約することになりますが、 DigitalOceanでは仮想マシンを停止した後、Webからプラン変更申し込みをすることで切り替えられます。 さくらでプランを解約すると、毎月20日までの申し込みで翌月末まで、20日を過ぎての申し込みでは翌々月までの利用料金を取られますが、 DigitalOceanでは分単位の課金なので、仮想マシンを全て削除すればそこで課金がとまります。 それから、これはさくらでもそうなのかわからないのですが、 DigitalOceanは仮想マシンの "PowerOff" をしていても課金されます。 テスト用に作ったサーバは使い終わったら削除するようにしましょう。 逆にさくらのほうがDigitalOceanよりいいところはデータ転送に課金がないことです。 DigitalOceanはプランごとに無料転送枠が決まっています。 ほかに、docker machineを使ってみたいとか、プラン変更が簡単とかいう理由もあって、 最終的にDigitalOceanにしました。 ### DigitalOceanでサーバ作成 ![digitalocean_1.png](/userdata/blog/digitalocean_1.png) ![digitalocean_2.png](/userdata/blog/digitalocean_2.png) ![digitalocean_3.png](/userdata/blog/digitalocean_3.png) ![digitalocean_4.png](/userdata/blog/digitalocean_4.png) ![digitalocean_5.png](/userdata/blog/digitalocean_5.png) "Create Droplet"をクリックして1分ほどでサーバが使えるようになります。 SSHキーは必ず追加しましょう。追加しないと **メールでパスワードが送られてきます** シンガポールでpingの応答時間は80msでした。 ### 作成後やること * rootでログイン ``` ssh root@xxx.xxx.xxx.xxx ``` * 作業用アカウント作成 ``` adduser username ``` * 追加したユーザにsudo権限を追加 ``` usermod -aG sudo username ``` * authorized_keysファイルのコピーと削除 ``` cp -R /root/.ssh /home/username chown -R username:username /home/username/.ssh rm /root/.ssh/authorized_keys ``` * 一旦ログアウトして作成したユーザでログイン ``` ssh username@xxx.xxx.xxx.xxx ``` * rootでのsshログイン禁止とポート変更 ``` sudo vi /etc/ssh/sshd_config ``` 以下の二行を編集 ``` Port 新しいポート番号 PermitRootLogin no ``` * sshdをリスタート ``` sudo service ssh restart ``` * "unattended-upgrades"を有効化 ``` sudo dpkg-reconfigure -plow unattended-upgrades ``` * タイムゾーン変更 ``` sudo dpkg-reconfigure tzdata ``` * pipのインストール ``` curl https://bootstrap.pypa.io/get-pip.py | sudo python ``` ### ブログ移転作業 このブログで使っているのは * nginx * mongodb * nodejs * redis の4つで、今まではそのままサーバ上のプロセスとして動かしていたのですが、 移転にあたってすべてdockerizeしました。 イメージとしてdocker1.4.1が入っているDropletを選んだので残念ながらdocker machineの出番はなく、 docker-composeをインストールするだけでセットアップは完了です。 ``` sudo pip install docker-compose==1.1.0-rc1 ``` 次にDockerfile四つとdocker-compose.yml、アプリケーションのコード、mongodbとredisのデータをrsyncでサーバにコピーして、コマンドラインでdocker-compose upとするだけ。 ``` sudo docker-compose up -d ``` これで後は待つだけです。 ベースイメージをダウンロードしてきて、コンテナを作って、ブログが動くようになるまで5分位でした。 ブログはあっけなく移転作業完了です。 ### メールサーバ移転作業 2011年末にさくらのレンタルサーバからさくらのVPSに移行した時にメールサーバも自分で作りました。 どうやったのかはもう覚えていませんが、やたらめんどくさかったことだけは覚えています。 面倒な作業もその後の肥やしになればいいのですが、あれから3年強、一度もメールサーバを作る機会などありません。 どうせこれからもそんな機会はないだろうと踏んで、外部のサービスを利用することにしました。 GMailが独自ドメインで利用できたと思ったので調べたところ、2012年末で無料から有料に切り替わっていました。お値段が月980円。 いっぽうさくらでは[さくらのメールボックス](http://www.sakura.ne.jp/mail/)というサービスがあり、こちらは年1,029円です。 ということでメールサーバだけはさくらに残すことにしました。 さくらのメールボックスに申込み後、やることは3つです。 * DNSサーバで独自ドメインのMXレコードがさくらのサブドメインを指すようにする * 独自ドメインをさくらのコントロールパネルからさくらに登録する * メールソフトのサーバ設定を独自ドメインからさくらのサブドメインに変更する さくらに独自ドメインを登録する際にDNSの設定がどうこうという説明が出てきますが、全部無視です。 というわけでメールサーバのみはさくらのVPSからさくらのメールボックスへ移転となりました。 以上で移転作業はすべて終了です。

このエントリーをはてなブックマークに追加