App Engine スタンダード環境向けの Java 8 のクイックスタート

このクイックスタート ガイドでは、サンプルアプリを App Engine にデプロイする方法を紹介します。App Engine 向けのアプリのコーディングについて学習したい場合は、アプリの構築をご覧ください。

料金

このガイドの実行に伴う費用はありません。このサンプルアプリを実行するだけなら、無料の割り当てを超過することはありません。

始める前に

このクイックスタートでは、Java SE 8 Development Kit(JDK)がインストール済みであることを前提としています。

このサンプルを実行してデプロイする前に、次の手順を行います。

  1. GCP Console を使用して、新しい App Engine アプリケーションを作成します。
    App Engine に移動

    プロンプトが表示されたら、App Engine アプリケーションを配置するリージョンを選択します。

  2. 次の前提条件をインストールし、構成します。
    1. git をダウンロードしてインストールします
    2. Google Cloud SDK をダウンロードしてインストールします。
      SDK をダウンロード
    3. gcloud コマンドライン環境を設定します。
      gcloud init
      gcloud auth application-default login
    4. App Engine コンポーネントをインストールします。
       gcloud components install app-engine-java
    5. Cloud SDK とすべてのコンポーネントを最新バージョンに更新します。
       gcloud components update 
    6. Maven をインストールします。このクイックスタートでは、Apache Maven バージョン 3.5 以降を使用してサンプルアプリの構築、実行、デプロイを行います。Maven のインストールの詳細については、Apache Maven と App Engine プラグインの使用をご覧ください。

App Engine のロケーション

App Engine はリージョナルです。つまり、アプリを実行するインフラストラクチャは特定のリージョンに配置され、そのリージョン内のすべてのゾーンで冗長的に利用できるように Google によって管理されます。

レイテンシ、可用性、耐久性の要件を満たすことが、アプリを実行するリージョンを選択する際の主な要素になります。一般に、アプリのユーザーに最も近いリージョンを選択できますが、アプリで使用されている他の GCP プロダクトやサービスのロケーションを考慮する必要があります。使用するサービスが複数のロケーションにまたがっていると、アプリのレイテンシだけでなく、料金にも影響します。

App Engine は次のリージョンで利用できます。

  • northamerica-northeast1(モントリオール)
  • us-central(アイオワ)
  • us-west2(ロサンゼルス)
  • us-east1(サウスカロライナ)
  • us-east4(バージニア北部)
  • southamerica-east1(サンパウロ)*
  • europe-west(ベルギー)
  • europe-west2(ロンドン)
  • europe-west3(フランクフルト)
  • asia-northeast1(東京)
  • asia-east2 (香港)
  • asia-south1(ムンバイ)
  • australia-southeast1(シドニー)

* サンパウロ リージョンをご利用のお客様には、すべてのリージョナル プロダクト SLA が引き続き有効です。ただし、北米と南米を対象とするマルチリージョン機能およびクロスリージョン機能は、可用性またはパフォーマンスが一時的に低下する可能性があります。

アプリのリージョンを設定した後で変更することはできません。

App Engine アプリケーションをすでに作成している場合は、gcloud app describe コマンドを実行するか GCP Console の App Engine ダッシュボードを開くことで、リージョンを表示できます。App Engine アプリケーションのリージョンは http://[YOUR_PROJECT_ID].appspot.com に表示されます。

Hello World アプリをダウンロードする

Java 8 ランタイム用のシンプルな Hello World アプリが用意されています。これを使用することで、App Engine スタンダード環境へのアプリのデプロイをすぐに試すことができます。

サンプルアプリをダウンロードし、アプリのディレクトリに移動するには:

  1. Hello World サンプルアプリ レポジトリのクローンをローカルマシンに作成します。

    git clone https://github.com/GoogleCloudPlatform/getting-started-java.git
    

    または、zip ファイルとしてサンプルをダウンロードし、ファイルを解凍します。

  2. サンプルコードが入っているディレクトリに移動します。

    cd getting-started-java/appengine-standard-java8/helloworld
    

ローカルマシンで Hello World を実行する

ローカルのパソコンで Hello World アプリを実行するには:

  1. Jetty Maven プラグインを使用してローカルの Jetty ウェブサーバーを起動します。

    mvn appengine:run
    
  2. ウェブブラウザで次のアドレスにアクセスします。

    http://localhost:8080
    
  3. サンプルアプリから「Hello World」というメッセージがページに表示されます。

  4. ターミナル ウィンドウで Ctrl+C キーを押してウェブサーバーを終了します。

Hello World を App Engine にデプロイして実行する

アプリを App Engine スタンダード環境にデプロイするには:

  1. getting-started-java/appengine-standard-java8/helloworld ディレクトリで次のコマンドを実行し、Hello World アプリをデプロイします。
    mvn appengine:deploy
    デプロイが完了するまで待ちます。
  2. ブラウザを起動して次のコマンドを実行し、http://YOUR_PROJECT_ID.appspot.com でアプリを表示します。
    gcloud app browse

今回、Hello World メッセージが表示されるページは、App Engine インスタンスで実行されているウェブサーバーから配信されます。

これで完了です。 App Engine スタンダード環境に最初の Java 8 アプリをデプロイできました。

クリーンアップの詳細については、以下の説明をご覧ください。また、活用できる次のステップへのリンクも併せてご覧ください。

次のステップ

プラットフォーム全体について学ぶ

App Engine アプリの開発とデプロイの概要を理解した後は、Google Cloud Platform の残りの部分についても学習しましょう。すでに Google Cloud SDK がインストールされているので、Google Cloud SQL、Google Cloud Storage、Google Cloud Datastore といったプロダクトを操作するツールを使用できます。App Engine だけでなくプラットフォーム全体を使用するアプリケーションの作成方法を学ぶチュートリアルについては、Bookshelf アプリの作成に関するクイックスタートをご覧ください。

App Engine スタンダード環境について学ぶ

App Engine についてさらに理解を深めるためのトピックをご紹介します。

Hello World コードレビュー

Hello World は、1 つのサービスのみが含まれ、1 つのバージョンのみが存在し、すべてのコードがアプリのルート ディレクトリに存在する、最もシンプルな App Engine アプリです。このセクションでは、このアプリの各ファイルの詳細について説明します。

HelloAppEngine.java

HelloServlet.java ファイルでは、アプリがリクエストをリッスンする場所を記述する URL パターンを指定し、すべてのリクエストに対して「Hello World」というメッセージで応答します。

import com.google.appengine.api.utils.SystemProperty;

import java.io.IOException;
import java.util.Properties;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// With @WebServlet annotation the webapp/WEB-INF/web.xml is no longer required.
@WebServlet(name = "HelloAppEngine", value = "/hello")
public class HelloAppEngine extends HttpServlet {

  @Override
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws IOException {
    Properties properties = System.getProperties();

    response.setContentType("text/plain");
    response.getWriter().println("Hello App Engine - Standard using "
            + SystemProperty.version.get() + " Java "
            + properties.get("java.specification.version"));
  }

  public static String getInfo() {
    return "Version: " + System.getProperty("java.version")
          + " OS: " + System.getProperty("os.name")
          + " User: " + System.getProperty("user.name");
  }

}

pom.xml

Hello World には pom.xml ファイルも含まれており、ここには依存関係やビルド ターゲットなどのプロジェクト情報(Maven プラグインを使用するために必要な行を含む)が記述されています。

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>appengine-maven-plugin</artifactId>
  <version>1.3.1</version>
</plugin>

appengine-web.xml

appengine-web.xml ファイルには、特定の必要な設定が含まれています。たとえば、App Engine にこのアプリケーションを Java 8 ランタイムで実行するように指示する、<runtime> 要素の java8 設定などです。

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <runtime>java8</runtime>
  <threadsafe>true</threadsafe>
</appengine-web-app>
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Java の App Engine スタンダード環境