Google Cloud で Rails を実行する

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

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

Google Cloud で Rails をデプロイするには主に 3 つのオプションがあります。

Rails デプロイ オプション 使用に適したケース 使用に適さないケース スタートガイド
App Engine フレキシブル環境
  • App Engine のほとんどのメリットを享受したい場合。
  • システム ライブラリとそれに依存する RubyGems ライブラリが必要な場合。
  • カスタムの Docker ランタイムが必要。
ベースとなる仮想マシンの完全な制御が必要。 App Engine フレキシブル環境で Rails を実行する
Google Kubernetes Engine(GKE)
  • マイクロサービス環境で Rails コンテナを使用したい。
  • 独自のコンテナベースのプラットフォームを設計するツールキットが必要な場合。
フル機能の PaaS(Platform-as-a-Service)が必要。コンテナベースの PaaS の場合は、App Engine フレキシブル環境を検討してください。 GKE での Rails
Compute Engine
  • VM を使用する一般的な IaaS(Infrastructure-as-a-Service)が必要な場合。
  • Windows VM と Linux VM の両方のサポートが必要。
独自のインフラストラクチャを構成しなくてよいサーバーレス環境が必要な場合 Compute Engine での Rails

データベース

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

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 をインストールすることもできます。