Google Cloud で Rails を実行する

Google Cloud で実行する Ruby on Rails アプリの開発は簡単に開始できます。作成したアプリは Google プロダクトと同じインフラストラクチャで動作し、ユーザー数の規模に合わせてスケールできるため、すべてのユーザーに対して確実にサービスを提供できます。

ホスティング プラットフォーム

これらは Google Cloud に Rails をデプロイする際に利用できるオプションの一部です。

Rails デプロイ オプション 始める
Cloud Run
App Engine フレキシブル環境 App Engine フレキシブル環境で Rails を実行する
Google Kubernetes Engine(GKE) GKE での Ruby
Compute Engine Compute Engine での Ruby

これらのプラットフォームの違いの詳細については、Google Cloud でのアプリのホスティング オプションをご覧ください。

データベース

リレーショナル データベース

Rails の Active Record は、従来の SQL データベースで最適に動作します。新しいプロジェクトを開始する場合、Cloud SQL を選択することをおすすめします。数回クリックするだけで、Google によって完全に管理されてスケーリングされる、ご自身での管理が不要な MySQL または PostgreSQL データベースを作成できます。Rails 5 での Cloud SQL for MySQL の使用、または Rails 5 での Cloud SQL for PostgreSQL の使用のチュートリアルをご覧ください。

NoSQL データベース

スケーラビリティやデータモデルへの適合性などの理由で、NoSQL データベースを使用せざるをえない場合が多くあります。NoSQL データベースとともに Rails モデルを使用するのは、難しい部分もありますが、一定の制限付きで可能です。たとえば、Rails で表現できるさまざまなデータベース結合は、Cloud Datastore やその他の NoSQL データベース(MongoDB など)でサポートされていません。詳細については、Cloud Datastore を使用した Rails Bookshelf のチュートリアルをご覧ください。このチュートリアルでは、Cloud Datastore を非リレーショナル データベースとして使用しています。大規模にスケーラブルなマネージド NoSQL ソリューションが必要な場合は、Datastore を検討してください。Cloud Datastore は、一般に SQL ソリューションよりスケーラビリティが高い非リレーショナル データベースです。

MongoDB を使用する場合は、Google Cloud Marketplace を使用してデプロイして独自にデータベースを管理するか、mLab によって提供されているマネージド MongoDB ホスティング サービスを利用できます。

キャッシュ

Compute Engine に Memcached をインストールするには、Cloud Marketplace を使用します。Compute Engine または GKE に Memcached をインストールするには、Memcached Docker イメージを使用します。同様に、Cloud Marketplace または Redis docker イメージを使用して Redis をインストールすることもできます。