AWSで動かしていたRailsアプリケーションをGCPに移した

これまで、AWS(EC2)で動かしていたRailsアプリケーションをGCPに移しました。という日記

GCPには、無期限で無償で使用できるAlways Free枠というのがあるので、その範囲内で利用しました。

https://cloud.google.com/free/?hl=ja

スペック

これまで

  • EC2(t2.micro) vCPU 1 メモリ 1GB
  • RDS

これから

  • Google Compute Engine(f1-micro) vCPU 1 メモリ 600MB

構成

Nginx + Unicorn(Rails) + MySQL

構築する

負荷については、一日に10人訪問すれば良いかなというくらいなので気にしなくても良いレベル

昔書いたメモを参考に構築 http://takapi86.hatenablog.com/entry/2017/06/25/215412

スムーズに構築できましたが、一部すんなりいかなかった点としては、 メモリが600MBしかないので、Rubyのビルドと、bundle install するタイミングで、Out of memoryになってしまったところ。

Swapがoffになっていたので、スワップファイルを作って回避しました。

$ vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0  46600  47092      0  69052    1   18   885   311   85  125  1  1 95  3  0
 0  0  46600  47092      0  69036    0    0     0     0   46  100  0  0 100  0  0
 0  0  46600  47092      0  69036    0    0     0     0   42   93  0  1 99  0  0
 0  0  46600  47092      0  69036    0    0     0     0   44   92  0  0 100  0  0
 0  0  46600  47092      0  69036    0    0     0     0   40   89  0  0 100  0  0
$ free -h
              total        used        free      shared  buff/cache   available
Mem:           587M        473M         46M        1.2M         67M         27M
Swap:          1.0G         45M        978M

再起動直後に測ったもの。とくに問題なく動いてそうな気がする。

余談

設定後次の日、GCPから [Update] New Google Cloud billing budget a... という件名のメールが来ていたので、確認してみると以下の請求が・・・

f:id:takapi86:20190815121101p:plain

$1000 !? うわっ…私の請求、高すぎ…?

えっ?swap file を作ったのが良くなかった?(DiskIOか何かの請求!? まさかの噂に聞いていたクラウド破産!?とにかく、Googleに連絡しなければ!? どうにも出来なかった場合、$1000今後どうやって支払っていけば良いのだ。人生設計を見直さなければ・・・ というか、そもそも7月使ってなくない!?

(ここまで0.8秒)

というのが走馬灯のように頭を駆け巡ったのですが、よくよくタイトル全文を確認してみると・・・

[Update] New Google Cloud billing budget alert notification format

スマホGmailアプリのメール一覧から件名が欠けていたので気付かなかったのですが、通知のフォーマットが変わったというお知らせで、上の請求はサンプル画像だったのでした。

文章はちゃんとよく読みましょう

おしまい。