リージョン ID
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。既存のアプリでは省略可能ですが、まもなく、新しいアプリのすべてにおいて App Engine の URL に REGION_ID.r
を含めることが必須となる予定です。
移行がスムーズに行われるように、リージョン ID を使用するよう App Engine を徐々に更新しています。Google Cloud プロジェクトがまだ更新されていない場合、アプリにリージョン ID は表示されません。ID は既存のアプリでは省略可能なため、リージョン ID が既存のアプリで使用可能になったときに、URL の更新や他の変更を行う必要はありません。
詳しくは、リージョン ID をご覧ください。
このクイックスタートでは、短いメッセージを表示する小さな App Engine アプリを作成する方法について説明します。
始める前に
このクイックスタートでは、Java SE 8 Development Kit(JDK)がインストール済みであることを前提としています。このクイックスタートを実行してデプロイする前に、Cloud SDK をインストールして、App Engine 用に Cloud プロジェクトを設定します。
Cloud SDK をダウンロードしてインストールします。
注: Cloud SDK がすでにインストールされている場合は、次のコマンドを実行して更新します。gcloud components update
新しいプロジェクトを作成します。
gcloud projects create [YOUR_PROJECT_ID] --set-as-default
[YOUR_PROJECT_ID]
は、プロジェクトを一意に識別する文字列に置き換えます。例:my-project-24
--set-as-default
フラグは、新しいプロジェクトをgcloud
が使用するデフォルト プロジェクトとして設定します。プロジェクトが作成されたことを確認します。
gcloud projects describe [YOUR_PROJECT_ID]
次のようなプロジェクトの詳細が表示されます。
createTime: year-month-hour lifecycleState: ACTIVE name: project-name parent: id: '433637338589' type: organization projectId: project-name-id projectNumber: 499227785679
プロジェクトで App Engine アプリケーションを初期化し、そのリージョンを選択します。
gcloud app create --project=[YOUR_PROJECT_ID]
プロンプトが表示されたら、App Engine アプリケーションを配置するリージョンを選択します。
プロジェクトで課金が有効になっていることを確認します。アプリケーションを App Engine にデプロイするには、課金アカウントをプロジェクトにリンクする必要があります。
フレキシブル環境でデプロイすると、有効である間は費用が発生します。完了するごとにプロジェクトをクリーンアップして、継続的な費用が発生しないようにしてください。
次の前提条件でインストールします。
- Git をダウンロードしてインストールします。
- Maven 3.5 以降をダウンロードしてインストールします。このクイックスタートでは、Apache Maven バージョン 3.5 以降を使用してサンプルアプリを構築、実行します。
App Engine のロケーション
App Engine はリージョナルです。つまり、アプリを実行するインフラストラクチャは特定のリージョンに配置され、そのリージョン内のすべてのゾーンで冗長的に利用できるように Google が管理しています。
レイテンシ、可用性、耐久性の要件を満たすことが、アプリを実行するリージョンを選択する際の主な要素になります。一般的には、アプリのユーザーに最も近いリージョンを選択できますが、App Engine が使用可能なロケーションと、アプリが使用するその他の Google Cloud プロダクトおよびサービスのロケーションを考慮する必要があります。使用するサービスが複数のロケーションにまたがっていると、アプリのレイテンシだけでなく、料金にも影響する可能性があります。
設定したアプリのリージョンは変更できません。
すでに App Engine アプリケーションを作成している場合は、次のいずれかの方法でそのリージョンを表示できます。
gcloud app describe
コマンドを実行します。Cloud Console の App Engine ダッシュボードを開きます。ページの上部にリージョンが表示されます。
Hello World アプリをダウンロードする
Java 用のシンプルな Hello World アプリが用意されており、Google Cloud へのアプリのデプロイをすぐに試すことができます。
Hello World サンプルアプリ リポジトリのクローンをローカルマシンに作成します。
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
または、zip 形式のサンプルをダウンロードして、ファイルを抽出します。
サンプルコードが含まれているディレクトリに移動します。
cd java-docs-samples/flexible/helloworld
ローカルマシン上で Hello World を実行する
ローカルのパソコンで Hello World アプリを実行するには:
- Jetty Maven プラグインを使用してローカルの Jetty ウェブサーバーを起動します。
mvn jetty:run-exploded
ウェブブラウザに次のアドレスを入力します。
http://localhost:8080
サンプルアプリから Hello World というメッセージがページに表示されます。ターミナル ウィンドウで Ctrl+C キーを押してウェブサーバーを終了します。
Hello World を App Engine にデプロイして実行する
App Engine フレキシブル環境にアプリをデプロイするには:-
helloworld
ディレクトリで次のコマンドを実行して、Hello World アプリをデプロイします。gcloud app deploy
オプションのフラグをご覧ください。
共通の
gcloud
コマンドフラグ- アプリのバージョンを一意に識別する ID を指定するには
--version
フラグを含めます。このフラグを含めない場合は自動的に生成されます。例:--version [YOUR_VERSION_ID]
gcloud
ツールでデフォルトとして初期設定したものに代わる 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 フレキシブル環境に最初の Java アプリをデプロイできました。
アプリケーションのデプロイでエラーが発生した場合は、トラブルシューティングのヒントをご覧ください。クリーンアップの詳細については、以下の説明をご覧ください。また、活用できる次のステップへのリンクも併せてご覧ください。
クリーンアップ
課金されないようにするには、Cloud プロジェクトを削除してプロジェクト内のすべてのリソースへの課金を停止します。
- Cloud Console で [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
次のステップ
プラットフォーム全体について学習する
App Engine アプリの開発とデプロイについて概要を理解した後は、Google Cloud の残りの部分についても確認します。すでに Cloud SDK がインストールされているため、Cloud SQL、Cloud Storage、Firestore などと連携するツールの利用が可能になっています。
App Engine だけでなくプラットフォーム全体を使用するアプリの作成方法を学ぶチュートリアルについては、Bookshelf アプリの作成に関するクイックスタートをご覧ください。
App Engine フレキシブル環境について学習する
App Engine についてさらに理解を深めるためのトピックをご紹介します。
Hello World のコードレビュー
Hello World は、サービスが 1 つだけ含まれ、バージョンも 1 つだけで、すべてのコードがアプリケーションのルート ディレクトリにあるという、最もシンプルな App Engine アプリケーションです。このセクションでは、このアプリの各ファイルを詳しく説明します。
HelloServlet.java
HelloServlet.java
ファイルでは、アプリがリクエストをリッスンする場所を記述する URL パターンを指定し、すべてのリクエストに対して「Hello World」というメッセージで応答します。
app.yaml
app.yaml
ファイルには、アプリのデプロイ構成が記述されています。
この例では、このアプリによって使用されるランタイムを app.yaml
で指定しています。また、env: flex
を設定することで、このアプリがフレキシブル環境を使用することを指定しています。
- Java ランタイムの機能の詳細については、Java 8 / Jetty 9.3 ランタイムをご覧ください。
pom.xml
Hello World には pom.xml
ファイルも含まれており、ここには依存関係やビルド ターゲットなどのプロジェクト情報が記述されています。
pom.xml
ファイルの詳細については、Maven のドキュメントをご覧ください。