このクイックスタート ガイドでは、サンプルアプリを App Engine にデプロイする方法を説明します。App Engine 向けのアプリのコーディングについて学習したい場合は、アプリの構築をご覧ください。
費用
このガイドの実行に伴う費用はありません。このサンプルアプリを実行するだけなら、無料の割り当てを超過することはありません。
始める前に
このクイックスタートを実行してデプロイする前に、Cloud SDK をインストールして、App Engine 用に GCP プロジェクトを設定します。
Cloud SDK をダウンロードしてインストールします。
注: Cloud SDK がすでにインストールされている場合は、次のコマンドを実行して更新します。gcloud components update
新しいプロジェクトを作成します。
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
プロジェクトで App Engine アプリを初期化し、そのリージョンを選択します。
gcloud app create --project=[YOUR_PROJECT_ID]
プロンプトが表示されたら、App Engine アプリケーションを配置するリージョンを選択します。
次の前提条件をインストールします。
次のコマンドを実行して、Go 1.9 用の App Engine 拡張機能を含む gcloud コンポーネントをインストールします。
gcloud components install app-engine-go
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
に表示されます。
このクイックスタートでは、読者が Go プログラミング言語に精通しており、すでに Go がインストールされていることを前提としています。
Hello World アプリをダウンロードする
Google Cloud Platform にアプリをデプロイする感触をすぐに実感していただけるように、簡単な Go の Hello World アプリが用意されています。
Hello World サンプルアプリのリポジトリとその依存関係を、ローカルマシンの
helloworld
という名前のディレクトリにダウンロードします。go get -u -d github.com/GoogleCloudPlatform/golang-samples/appengine/helloworld/...
helloworld
ディレクトリに移動します。cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/appengine/helloworld
または、zip 形式のサンプルをダウンロードすることもできます。
アプリケーションをテストする
SDK に含まれるローカル開発用サーバーを使用して、アプリケーションをテストします。
アプリの app.yaml 構成ファイルが置かれている
helloworld
ディレクトリから、dev_appserver.py
コマンドを実行してアプリをコンパイルし、ローカル開発用サーバーを起動します。dev_appserver.py app.yaml
ローカルの開発用サーバーが起動し、ポート 8080 でリクエストを待機します。問題が発生する場合は、ここをクリックしてください。
ウェブブラウザで http://localhost:8080/ にアクセスして、アプリの動作を確認します。
ローカル開発用サーバー(dev_appserver.py
)の実行
ローカル開発用サーバーを実行するには、ディレクトリをフルパスで指定して dev_appserver.py
を実行するか、PATH
環境変数に dev_appserver.py
を追加します。
元の App Engine SDK をインストールした場合、ツールは次の場所に配置されています。
[PATH_TO_APP_ENGINE_SDK]/dev_appserver.py
Google Cloud SDK をインストールした場合、ツールは次の場所に配置されています。
[PATH_TO_CLOUD_SDK]/google-cloud-sdk/bin/dev_appserver.py
ヒント: Google Cloud SDK ツールを
PATH
環境変数に追加し、シェルでコマンドの補完を有効にするには、次のコマンドを実行します。[PATH_TO_CLOUD_SDK]/google-cloud-sdk/install.sh
ポート番号の変更方法など、ローカルの開発用サーバーの実行について詳しくは、ローカルの開発用サーバーのリファレンスをご覧ください。
変更を加える
ローカルの開発用サーバーは、プロジェクト ファイルの変更を監視しています。ソースコードを更新すると、アプリが再コンパイルされて起動されます。
- では試してみましょう。開発用サーバーを起動したまま
hello.go
ファイルを編集して、Hello, world!
を 別の文字列に変更します。 - http://localhost:8080/ を再読み込みして変更を確認します。
アプリケーションをデプロイする
アプリを App Engine にデプロイするには、app.yaml
ファイルの保存場所であるアプリケーション ルート ディレクトリ内から次のコマンドを実行します。
gcloud app deploy
詳細については、オプションのフラグをご覧ください。
一般的な gcloud
コマンドフラグ
-
アプリのバージョンを一意に識別する ID を指定するには
--version
フラグを含めます。これを含めない場合、自動的に生成されます。例:--version [YOUR_VERSION_ID]
-
gcloud
ツールでデフォルトとして初期設定したものに代わる GCP プロジェクト ID を指定するには、--project
フラグを含めます。例:--project [YOUR_PROJECT_ID]
例:
gcloud app deploy --version pre-prod-5 --project my-sample-app
コマンドラインからアプリをデプロイする方法の詳細については、Go 1.9 アプリのデプロイをご覧ください。
. すべてのコマンドフラグの一覧については、gcloud app deploy
リファレンスをご覧ください。
アプリケーションを表示する
ブラウザを起動して http://[YOUR_PROJECT_ID].appspot.com
でアプリを表示するには、次のコマンドを実行します。
gcloud app browse
これで完了です。
このクイックスタートは以上です。
クリーンアップの詳細については、以下の説明をご覧ください。また、活用できる次のステップへのリンクも併せてご覧ください。
クリーンアップ
プロジェクトに対する課金を有効にしている場合は、GCP プロジェクトを削除すれば、そのプロジェクト内のすべてのリソースへの課金を停止できます。
- GCP Console で [プロジェクト] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
次のステップ
プラットフォーム全体について学ぶ
App Engine アプリの開発とデプロイの概要を理解したところで、Google Cloud Platform の残りの部分についても学習しましょう。App Engine だけでなく、Cloud Platform の他のプロダクトを使用したアプリケーションの作成方法を学ぶチュートリアルについては、「アプリの構築」ガイドをご覧ください。このガイドでは、このクイックスタートで学んだことを踏まえ、ユーザーが投稿をアップロードして保存できる簡単なブログ アプリケーションをデプロイする方法を説明しています。
App Engine スタンダード環境の詳細
App Engine についてさらに理解を深めるためのトピックをご紹介します。