激安VPS cloudatcost 試し中

激安VPS CloudAtCostがあるということで気になって試してみた（試し中）
とりあえずの目標としては無料のSSL証明書[Let'sEncrypt](https://letsencrypt.org/)を試してみるところまで。

## CloudAtCostとは
カナダの激安のVPSサービス
http://cloudatcost.com/
月額とかではなく、買い切りで契約する。一生使えるかはちょっと怪しい。
最安のプラン(1CPU/512MBRAM/10GBSSD)で、$35だし、割引キャンペーンもやっているので試しにやるのには良さそう。

完全買い切りと思っていたら、[CloudAtCost (CloudPRO 1)契約してみた](http://qiita.com/tukiyo3/items/04b3ad1de88d419046ba)にもあるように
実は、「毎年 $9 のメンテナンス料が別途必要」ということだった。
利用開始して12ヶ月後に請求が来るとなっている。先日、請求のメールが来て初めて気づいた。
$9なので安いとはいえ、買い切りの魅力が半減してしまう気がする。

ちなみに、支払いしないでほっておくと、まず、ネットワークが使えなくなって外部から接続できなくなって、
３０日以上たつと、maintenance feeをキャンセルしたいなら、CloudPRO servicesをキャンセルしてくださいとアナウンスが表示される。

![planc.png](https://qiita-image-store.s3.amazonaws.com/0/34699/8b1b7fbf-df7b-429e-5906-8d84e4641cd2.png)

## CloudAtCostに契約する

設定方法は下記のサイトを参考にした。
[人柱: 激安VPSのcloudatcostを試してみた](http://qiita.com/sharow/items/70d1584752322af812cc)

プランは、Developer1の512MB RAM だと心もとないので、Delover2の2vCPU、１GBRAMのプランで試してみた。
下記のページで時々割引の告知がされている。購入時に割引だったり、一定プラン以上だったら割引とか、クーポンコードで割引だったり、色々あるので、サイトやTwitterの告知を見ておくと良い。20%〜90%OFFとまちまち。
Retweetすると抽選で何名に100%OFFになるキャンペーンもやっていたりする。

https://members.cloudatcost.com/
https://twitter.com/cloudatcost


契約完了するとメールが送られてくる。
送られてきたメールに管理パネルの　URLとパスワードがあるので、そこでログインする。

管理パネル上でインスタンスを作成する、２CPUあれば、１つのインスタンスに２CPUを割り当てるのもできるし、２つのインスタンスに1CPUずつ割り当てることもできる。

OSは、Windows 2008, Windows 2012, CentOS67, Debian,Ubuntuが選べる。
今回はCenOS7を使用する。
Windowsは多分ライセンスはついてないと思うので別途調達が必要なのかも。

##  CloudAtCostの設定

pingをしてみると、平均２５０msぐらい。
試しにAWSのオレゴンリージョンからpingをしてみたら平均78msなので、
カナダと日本間のネットワーク距離が大きそう。

CloudAtCostにブラウザでローカルログインできるコンソール画面があるが、遅いし、カーソルを見失うので、ちょっとこれで作業し続けるのは辛い。起動時にVMWareの画面が出てくるのでVMWareを使っているんだろうか。

規定だとSafe Modeで７日経過するとShutdownする仕様になっているので、
Cloudatcostの管理パネルのModify>Change Server Run Modeで
Normal Mode(Leave Power On)にする。


SSHで作業する場合、初回は何故か繋がらない。何度か再起動していると繋がるようになる。
多少接続が途切れたりするが、tmuxを入れて仮想コンソールで使うとそれなりに使えそう。
rootのパスワードは、管理パネルの「i」アイコンマークをクリックすると表示されるのでこれを使う。


## OSのセットアップ

今回はroot用で直接SSHにつないでいるが、厳密には専用のユーザを作った方が良いかもしれない。
http://iwamocchan11.hatenadiary.jp/entry/2015/10/25/124048
http://qiita.com/gotohiro55/items/36a22516de2b381b3c6e


接続をSSHとhttpとhttpsに限定させる。

https://www.imd-net.com/column/13339/

```
firewall-cmd --permanent --add-service=ssh 
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
```

tmuxを入れる
http://qiita.com/akata/items/07e4dae33f1a05b79526

```
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum -y install tmux
```


ちなみに、割り当てられたGlobal　IPの前後のIPをhttpでアクセスしてみると、
CentOS＆ApacheやUbunutuの初期ページが表示されるサイトがいくつもあった。

sshdのログを見てみると、ftpuserやpiのユーザ名で接続を試みようとしてエラーになった形跡があった。ちゃんと設定していないと怖い。

ちなみに、
yumとかwgetとかhost名が認識されていないので確認したら、DNSが設定されていなかったので、8.8.8.8をセットしておく。
http://server-setting.info/centos/network-config-c7.html
http://yoshikawam.hatenablog.com/entry/2016/01/08/104736

```
nmcli c mod ens33 ipv4.dns "8.8.8.8 8.8.4.4"

```


## ドメインの契約
お名前コムで契約。xyzドメインが初年度２円で契約できるのだが、
なぜかドメイン名が何日経っても反映されなかった。topドメインで契約した方は１日くらいで反映されたので
そちらを使う。

ドメインの反映が確認されたら、Cloudatcostの管理パネルのModify>Reverse DNSで名前を変更する。


## 監視サービスを入れる。
MackerelとかNewRelicとか入れてみる。
何か動かしているわけではないので大した変化はなし。


Mackerel
![sc3.png](https://qiita-image-store.s3.amazonaws.com/0/34699/b74439e2-d7c5-f99d-4629-355bc1c4970b.png)


NewRelic
![sc2.png](https://qiita-image-store.s3.amazonaws.com/0/34699/c6e273e4-2ecd-f202-52ae-ad73a8f8da85.png)


Datadog
![sc.png](https://qiita-image-store.s3.amazonaws.com/0/34699/d2085ebe-e83e-f2a8-c89a-fa9066d0324c.png)





## WEBサーバの設定

http://qiita.com/fk1/items/3ef1d989d1d5e44a1d03


## Let'sEncryptの設定
下記を参考
http://qiita.com/sak_2/items/ff835b669c0a7e110b09
http://postd.cc/secure-web-deployment-with-lets-encrypt-and-nginx/

```bash

git clone https://github.com/letsencrypt/letsencrypt

cd letsencrypt/

# -w はサイトのドキュメントルート、-dはドメインを指定する。
./letsencrypt-auto certonly --webroot -w /usr/share/nginx/html -d www.example.com


sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.orig
sudo touch /etc/nginx/conf.d/default.conf

```


/etc/nginx/conf.d/default.confに下記の設定を入れる。

```vim:/etc/nginx/conf.d/default.conf

server {
    listen 443 ssl;
    server_name www.example.com;
    root /usr/share/nginx/html;
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
}

```


## なんか入れる
WordPressとか
http://qiita.com/fk1/items/3ef1d989d1d5e44a1d03

プロキシサーバ化してみる。
http://qiita.com/pcnikki/items/404329f9ad9cb6e235d4
Let'sEncrypt用にドメインを割り当てていたので、REMOTE_HOST名にwww.〜が付いていて
プロキシ判定されてしまった。ちゃんとやりたければもう一個サーバを用意した方がいいかも。
http://taruo.net/e/?
Webサーバとプロキシサーバ兼任だと、IPからドメイン逆引きされて、そこからWHOIS情報辿れてしまうので
むしろ個人情報をさらけ出している感じに。