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

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

費用

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

始める前に

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

このクイックスタートを実行してデプロイする前に、Cloud SDK をインストールして、App Engine 用に GCP プロジェクトを設定します。

  1. Cloud SDK をダウンロードしてインストールします。

    SDK をダウンロード

    : Cloud SDK がすでにインストールされている場合は、次のコマンドを実行して更新します。

    gcloud components update
    
  2. 新しいプロジェクトを作成します。

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    プロジェクトが作成されたことを確認します。

    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
    
  3. プロジェクトで App Engine アプリを初期化し、そのリージョンを選択します。

    gcloud app create --project=[YOUR_PROJECT_ID]
    

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

  4. 次の前提条件をインストールします。

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(フランクフルト)
  • europe-west6(チューリッヒ)
  • asia-northeast1(東京)
  • asia-northeast2(大阪)
  • asia-east2(香港)
  • asia-south1(ムンバイ)
  • australia-southeast1(シドニー)

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

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 8 の App Engine スタンダード環境