Gashooの裏側。
最初に
GASHOO Inc. Advent Calendar 2017土曜日担当、2日目を飾ります、t-kusakabeです。 今回は Gashooプロダクトを支える技術についてお話できればと思います。 (こういう構成の方がいいよ、これはよくないよ等ありましたらご教授いただけると)
Gashooのサーバー構成
現状Gashooの環境はいわゆるProduction環境、Staging環境の2つしかありません。 どちらもEC2内にサーバーだったりDBだったりを突っ込んでいる状態です。。。 インフラエンジニアがいないかつプロダクト自体が成長時期と言うこともあって後回しになっていたのですがこの度環境を見直そうという話になりました。 なのでここでは予定している構成を上げて行こうと思います。
現状目指している構成
今まではホスト環境で開発を進めていたため環境によるエラーが頻発していました。。。 現在は全てDockerに移行中です。 - Ruby:2.4.2-alpine - Node:9.1.0-alpine - MySQL:5.7 と予定です。
極力イメージを小さくしたかったので、ベースイメージはalpineを採用しています。 RubyでRoRを動かし、Nodeでフロントを動かしています。 フロント側ではgulpでSassとwebpackをよしなにしています。
DBをRDBに
現状EC2にmysqlを乗せていますがそろそろ辛いのでRDBを検討しています。 GashooプロダクトではDBのIOがボトルネックになっていることが多いので、データベースエンジンにはAuroraを予定しています。 AuroraはMySQLに比べ最大5倍、PostgreSQLに比べ最大3倍早いので移行することで解決することを願っています。。。
こんな感じにしたい。。。
最後に
どうでしたでしょうか。 まとめてみるとあまり変わったことをしていなくてどうしよう感があったのですが、ここからGashooらしさを出していければいいなと思います。(いろいろ検討中。。。) 現在は別機能でHanamiを導入しているので今後の記事で書ければなと思います。