iMarketをGCPに移行した
2013年から運用している株式投資のWebサービス iMarket(適時開示ネット) をさくらVPSからGCPに移行しました。
去年からDockerの本番運用の事例も増えてきて、コンテナを使う流れにキャッチアップするためiMarketもDockerでコンテナ化しています。
嬉しい誤算としてレスポンスが速くなってるみたいですね。
さくらVPSがSandy BridgeでGCEがBroadwellだから、3世代!も違うわけでそれで速くなったのかな。
これからクラウドは全てGCPにするつもり。無料枠のBigQueryのスキャンが毎月1TBあるなど、大盤振る舞いなところも素敵です。
Container Builderがお気に入り
GCPでコンテナを扱う際に欠かせない(と私が思っている)のがContainer Builderです。
本来はYAMLの定義ファイルを書いてビルドフローを制御するもののようですが、GitHubへ特定のブランチやタグのpushを契機としてコンテナをビルドし、Container Registryにイメージを保存する機能があります。
例えば手元でインスタンスを立ち上げる時は、最新のビルドになるよう以下のようなシェルを書いて使ってます。
CONTAINER_RAILS=gcr.io/xxxxxxxx/github-tynmarket-imarket:`git show origin/docker | grep commit | awk '{print $2}'` create_app_instance() { gcloud beta compute instances create-with-container $1 \ ... --container-image=$CONTAINER_RAILS \ ... } # rails-1という名前で起動 create_app_instance rails-1
Slackで通知も受け取れるようで、色々使いこなせると便利そうです。
費用の変化とさよならJenkins
1ドル110円の月 24 * 31 時間とするとサーバ代は1445円増加。
+527 - Railsのインスタンス(f1-micro)
+1845 - MySQLのインスタンス(g1-small)
-972 - Jenkinsサーバ(さくらVPS)
最近は放置されがちだったJenkinsサーバは移行を期に退役。差し引き1500円程度なら負担感は少ないかな。
100GBを超えるPDFファイル問題
iMarketでは過去数年分の決算短信などのPDFファイルを配信しており、その総量が100GBを超えるという頭の痛い問題があります。
ディスクの容量を食うことも然ることながら、クラウドのネットワークに乗せるとトラフィックの料金がかかるのも気になります。
200GBのディスクに3CPU + 2GBメモリがついてくるので、とりあえずVPSを1つ配信サーバとして残しました。
Railsのログが見えない
STDOUTに出したRailsのログはDockerのgcpログドライバ経由でStackDriver Loggingに送られるはずなのですが、なぜか送られてきません。
これは後で調べないと。。
まとめ
GCPに移行して良かったです。