
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create and Deploy the front-end to App Engine flexible environment
/ 50
Update an App Engine Flexible Environment Application
/ 50
App Engine アプリケーションは、1 つ以上のサービスを持つ単一のアプリケーション リソースです。各サービスは、それぞれ異なるランタイムを使用したり、異なるパフォーマンス設定で動作したりするように構成できます。各サービスでは、そのサービスの複数のバージョンをデプロイし、構成したトラフィック処理量に応じて 1 つ以上のインスタンスでサービスを実行できます。詳しくは、App Engine の概要をご覧ください。
App Engine では、スタンダード環境またはフレキシブル環境を使用します。スタンダード環境ではサンドボックスでインスタンスが実行され、利用可能な CPU のオプションやディスクへのアクセスに制限があります。
一方、フレキシブル環境では、Google Compute Engine 仮想マシン(VM)上の Docker コンテナでアプリケーションが実行されるため、制限は少なくなります。たとえば、任意のプログラミング言語やライブラリを使用したり、ディスクに書き込んだりできるほか、複数のプロセスを実行することも可能です。また、インスタンスに使用する Compute Engine のマシンタイプを選択することもできます。 App Engine 環境について詳しくは、App Engine スタンダード環境と App Engine フレキシブル環境をご覧ください。
このラボでは、App Engine フレキシブル環境にクイズ アプリケーションをデプロイし、バージョンやトラフィック分割などの App Engine の機能を使用します。
このラボでは、次のタスクの実行方法について学びます。
app.yaml ファイルを作成して、アプリケーション用の App Engine フレキシブル環境の要件を記述する。
App Engine フレキシブル環境にクイズ アプリケーションをデプロイする。
バージョンとトラフィック分割を使用して、アプリケーションの機能の A/B テストを行う。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
Qwiklabs にシークレット ウィンドウでログインします。
ラボのアクセス時間(例: 1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
[Google Console を開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。
利用規約に同意し、再設定用のリソースページをスキップします。
Google Cloud Shell は、デベロッパー ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。 Google Cloud Shell は、GCP リソースへのコマンドライン アクセスを提供します。
GCP Console の右上のツールバーにある、「Cloud Shell をアクティブにする」ボタンをクリックします。
Continue をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。以下に例を示します。
gcloud は Google Cloud Platform のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
出力:
Credentialed accounts:
- <アカウント名>@<ドメイン名>.com(有効)
出力例:
Credentialed accounts:
- google1623327_student@qwiklabs.net
次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project
出力:
[core]
project = <プロジェクト ID>
出力例:
[core]
project = qwiklabs-gcp-44776a13dea667a6
このセクションでは、Cloud Shell にアクセスしてクイズ アプリケーションを含む Git リポジトリのクローンを作成してから、環境変数を設定してアプリケーションを実行します。
クラス用にリポジトリのクローンを作成します。
作業ディレクトリへのショートカットとしてソフトリンクを作成します。
このラボのサンプル ファイルが含まれているディレクトリに移動します。
次のコマンドで実行可能ファイルを実行します。
このスクリプト ファイルを実行すると、以下の処理が行われます。
App Engine アプリケーションを作成する。
Cloud Storage バケットを作成する。
環境変数 GCLOUD_PROJECT と GCLOUD_BUCKET をエクスポートする。
Python 3 対応の隔離された virtualenv
Python 環境を作成して有効にする。
pip を更新し、pip install -r requirements.txt
を実行する。
Datastore にエンティティを作成する。
IAM ロールとサービス アカウントを作成する。
Pub/Sub トピックを作成する。
Spanner のインスタンス、データベース、テーブルを作成する。
Cloud Functions の関数を作成する。
プロジェクト ID を出力する。
このラボでは、ファイルの閲覧と編集を行います。Cloud Shell にインストールされている shell エディタ(nano や vim)または統合コードエディタ(gcloud)を使用できます。
このセクションでは、Cloud Shell テキスト エディタを使用して、クイズ アプリケーションのコードを確認します。
Cloud Shell で [エディタを開く] をクリックします。
ブラウザの別のタブで、Cloud Shell と統合コードエディタが起動します。
/appengine/start
に移動します。
クイズ アプリケーションのフォルダ構造には、アプリケーションが App Engine でデプロイされるときの状態が反映されています。たとえば、ウェブ アプリケーションは frontend
フォルダにあるため、App Engine の構成ファイルである app.yaml
ファイルも frontend
フォルダにあります。
このセクションでは、クイズ アプリケーションのフロントエンド
を App Engine フレキシブル環境にデプロイするための構成ファイルを変更します。
Cloud Shell コードエディタで、frontend/app.yaml
を開きます。
2 つの key: value
ペアを追加し、スケーリングを手動に設定します。
1 つ目のペアで、python ランタイムを使用することを指定します。
2 つ目のペアで、フレキシブル環境を使用することを指定します。
インスタンスの数は 1 に設定されます。通常、本番サービスはより多くのインスタンスに拡張できるようにする必要があります。
3 つ目の構成エントリを追加し、app.yaml
ファイルのエントリポイントを指定します。
この値は、gunicorn HTTP サーバーを使用して Flask アプリケーションを実行するコマンドラインです。
runtime_config を追加します。
最後の構成エントリ env_variables
を app.yaml
ファイルに追加します。GCLOUD_BUCKET
キーを含めます。値として、プロジェクトの -media
バケットを指定します。[GCLOUD_PROJECT]
の部分は、ラボの左側のペインに表示されている GCP プロジェクト ID に置き換えてください。
app.yaml
Cloud Shell で、Cloud Build のリクエスト タイムアウトを設定します。
App Engine フレキシブル環境にクイズ アプリケーションをデプロイします。
「Y」と入力して確定します。
App Engine によってコードが自動的にパッケージ化、コンテナ化され、デプロイされます。
デプロイが完了するまでに 20 分ほどかかります。
Cloud Platform Console で、ナビゲーション メニュー > [App Engine] をクリックします。
App Engine ダッシュボードの右上で、アプリケーションのリンクをクリックします。
リンクは https://<プロジェクト ID>.appspot.com
のような形式です。
アプリケーションが表示されます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、アプリケーション コードを変更し、アプリケーションを再デプロイします。
Cloud Shell コードエディタで、frontend/quiz/webapp/templates/home.html
を開きます。
最上位の見出しに感嘆符をいくつか追加します。
ここでは、アプリケーション更新の際に行う変更の例として、ごく簡単な変更を加えました。
ファイルを保存します。
Cloud Shell で、App Engine アプリケーションを再デプロイします。
「Y」と入力して確定します。
コマンドにフラグが 2 つ追加されている点に注意してください。これは、前のバージョンが引き続きトラフィックを受信することを示しています。
更新したアプリケーションのデプロイが完了するまでに、20 分ほどかかる場合があります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Console で、ナビゲーション メニュー > [App Engine] > [ダッシュボード] をクリックします。
ウィンドウの右上にあるアプリケーションの URL をクリックします。アプリケーションが古いタイトルのままで表示されます。
[App Engine] ウィンドウで [バージョン] をクリックします。アプリケーションの 2 つのバージョンが表示されない場合は、ページを更新してみてください。
両方のバージョンのリンクをクリックして、新しいバージョンと古いバージョンのクイズ アプリケーションを表示します。
新しいバージョン(追加した感嘆符が表示されます):
古いバージョン:
アプリケーションの両方のバージョンのチェックボックスをオンにし、[トラフィックを分割] をクリックします。
ラジオボタンを選択して、トラフィックが各バージョンにランダムに送られるようにします。
トラフィックの 50% が古いバージョンに、50% が新しいバージョンに送られるように分割を構成します。
[保存] をクリックします。
ダッシュボードに戻り、[バージョン] を [すべてのバージョン
] に設定し、アプリケーションのリンクをクリックします。
アプリケーションの 1 つのバージョンが表示されます。
ホームページを何度か更新します。
古いバージョンと新しいバージョンのホームページが約半々の割合で表示されます。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください