App Engine フレキシブル環境で Ruby アプリを作成する
リージョン ID
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r
は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。
詳しくは、リージョン ID をご覧ください。
このクイックスタートでは、ショート メッセージを表示するアプリを作成してデプロイする方法を説明します。このクイックスタートのサンプル アプリケーションは、app.yaml
ファイルでランタイム バージョンとオペレーティング システムを指定することで、Ruby のサポート対象のバージョンで使用できます。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud Build API を有効にします。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud Build API を有効にします。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
追加の前提条件
プロジェクトで App Engine アプリケーションを初期化し、そのリージョンを選択します。
gcloud app create --project=[YOUR_PROJECT_ID]
表示された指示に従って、App Engine アプリケーションを配置するリージョンを選択します。
次の前提条件をインストールします。
App Engine のロケーション
App Engine はリージョナルです。つまり、アプリを実行するインフラストラクチャは特定のリージョンに配置され、そのリージョン内のすべてのゾーンで冗長的に利用できるように Google が管理しています。
レイテンシ、可用性、耐久性の要件を満たすことが、アプリを実行するリージョンを選択する際の主な要素になります。一般的には、アプリのユーザーに最も近いリージョンを選択できますが、App Engine が使用可能なロケーションと、アプリが使用するその他の Google Cloud プロダクトおよびサービスのロケーションを考慮する必要があります。使用するサービスが複数のロケーションにまたがっていると、アプリのレイテンシだけでなく、料金にも影響する可能性があります。
設定したアプリのリージョンは変更できません。
すでに App Engine アプリケーションを作成している場合は、次のいずれかの方法でそのリージョンを表示できます。
gcloud app describe
コマンドを実行します。Google Cloud コンソールの App Engine ダッシュボードを開きます。ページの上部にリージョンが表示されます。
Hello World アプリをダウンロードする
App Engine 用の Hello World アプリが用意されており、Google Cloud へのアプリのデプロイをすぐに試すことができます。
Hello World サンプルアプリ リポジトリのクローンをローカルマシンに作成します。
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
または、zip 形式のサンプルをダウンロードして、ファイルを抽出します。
サンプルコードが含まれているディレクトリに移動します。
cd ruby-docs-samples/appengine/flexible/hello_world
ローカルマシンで Hello World を実行する
次の例では、Bundler を使用してローカルのパソコンで Hello World アプリを実行します。
ランタイム用にプログラミング言語をまだインストールしていない場合は、Ruby をダウンロードしてインストールします。
Bundler をインストールします。
gem install bundler
このプロジェクトの依存関係をインストールします。
bundle install
ローカルのウェブサーバーを起動します。
bundle exec ruby app.rb -p 8080
ウェブブラウザで次のように入力します。
サンプルアプリから Hello World というメッセージがページに表示されます。ターミナル ウィンドウで Ctrl+C キーを押してウェブサーバーを終了します。
Hello World を App Engine にデプロイして実行する
App Engine フレキシブル環境にアプリをデプロイする手順は次のとおりです。-
flexible/hello_world
ディレクトリで次のコマンドを実行して、Hello World アプリをデプロイします。gcloud app deploy
オプションのフラグをご覧ください。
共通の
gcloud
コマンドフラグ- アプリのバージョンを一意に識別する ID を指定するには
--version
フラグを含めます。このフラグを含めない場合は自動的に生成されます。例:--version [YOUR_VERSION_ID]
-
gcloud
ツールでデフォルトとして初期設定したものに代わる Google Cloud プロジェクト ID を指定するには、--project
フラグを指定します。例:--project [YOUR_PROJECT_ID]
例:
gcloud app deploy --version pre-prod-5 --project my-sample-app
コマンドラインからアプリをデプロイする方法について詳しくは、アプリのテストとデプロイをご覧ください。すべてのコマンドフラグの一覧については、
gcloud app deploy
リファレンスをご覧ください。 - アプリのバージョンを一意に識別する ID を指定するには
-
ブラウザを起動し、
https://PROJECT_ID.REGION_ID.r.appspot.com
にアクセスしてアプリを表示します。gcloud app browse
ここでPROJECT_ID
は、Google Cloud プロジェクト ID です。
今回、Hello World メッセージが表示されるページは、App Engine インスタンスで実行されているウェブサーバーから配信されます。
これで完了です。App Engine フレキシブル環境に最初の App Engine アプリケーションをデプロイしました。
アプリケーションのデプロイでエラーが発生した場合は、トラブルシューティングのヒントをご覧ください。クリーンアップの詳細については、以下の説明をご覧ください。また、活用できる次のステップへのリンクも併せてご確認ください。
クリーンアップ
課金されないようにするには、Google Cloud プロジェクトを削除してプロジェクト内のすべてのリソースへの課金を停止します。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
次のステップ
プラットフォーム全体について学習する
App Engine アプリの開発とデプロイについて概要を理解した後は、Google Cloud の残りの部分についても確認します。すでに Google Cloud CLI がインストールされているため、Cloud SQL、Cloud Storage、Firestore などのプロダクトを操作するツールを使用できます。
App Engine フレキシブル環境について学習する
App Engine についてさらに理解を深めるためのトピックをご紹介します。
Hello World コードレビュー
Hello World は、サービスが 1 つだけ含まれ、バージョンも 1 つだけで、すべてのコードがアプリケーションのルート ディレクトリにあるという、最もシンプルな App Engine アプリケーションです。このセクションでは、このアプリケーションの各ファイルについて詳しく説明します。
app.rb
Hello World アプリは 1 つのファイルからなる基礎的な Sinatra アプリです。
app.yaml
app.yaml
ファイルには、アプリの次の構成が記述されます。
env: flex
の設定。アプリで App Engine フレキシブル環境が使用されることが示されます。アプリで使用するランタイムを指定します。
Ruby ランタイムの動作の詳細については、Ruby ランタイムをご覧ください。
バージョンとサービスを利用するアプリケーションの作成方法について詳しくは、App Engine の概要をご覧ください。
App Engine の構成の詳細については、app.yaml によるアプリケーションの構成をご覧ください。
Gemfile
Gemfile
はアプリの RubyGem 依存関係を指定するために使用され、Bundler は依存関係を宣言およびインストールするために使用されます。Hello World アプリには 1 つの Ruby gem(Sinatra ウェブ フレームワーク)が必要です。