チェックポイント
Check Firestore Database Deployment
/ 25
Check Cloud Run application Deployment
/ 25
Check Cloud Functions application Deployment
/ 25
Check App Engine application Deployment
/ 25
Google Cloud サーバーレス プラットフォームへの Go アプリのデプロイ
GSP702
概要
Go は、Google によるオープンソースのプログラミング言語で、Go を使うと信頼性と効率性に優れた、高速かつスケール可能なソフトウェアを簡単に構築できます。このラボでは、シンプルな Go のアプリを Cloud Run、Cloud Functions、App Engine にデプロイして、Go の基礎を学びます。次に、Go アプリを使用して、BigQuery と Firestore のデータにアクセスします。
演習内容
このラボでは、次のタスクを行います。
- Firestore データベースを設定して、データをインポートする
- Cloud Build の機能の概要を確認する
- BigQuery と Firestore のデータにアクセスする
- App Engine、Cloud Run、Cloud Functions に Go アプリをデプロイする
- Go アプリのコードを調べる
- 各プラットフォームでアプリをテストする
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
- Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
-
[承認] をクリックします。
-
出力は次のようになります。
出力:
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
Go とは
Go(golang)は、システムのプログラミング用に設計された汎用言語です。堅牢なこの言語は、ガベージ コレクション機能を備えており、並行プログラミングをサポートしています。プログラムはパッケージで構築され、それらのプロパティにより依存関係を効率的に管理できます。
Python や JavaScript と違って、Go はスクリプト言語ではなく、コンパイル言語です。Go のソースコードは、実行前にマシンコードにコンパイルされます。そのため、Go は一般的にスクリプト言語より高速かつ効率的で、プログラムを実行するために Node、Python、JDK のようなランタイムをインストールする必要ありません。
サーバーレス プラットフォーム
サーバーレス コンピューティングを利用することで、デベロッパーはインフラストラクチャを意識することなく、コードの記述に集中できます。従来のコンピューティングに比べ、サーバー管理不要、事前プロビジョニング不要、自動スケーリング、使用したリソースのみに対する支払いなどの利点があります。こうした利点を活かして、ステートレスな HTTP アプリケーション、ウェブ、モバイル、IoT バックエンド、バッチとストリーミングのデータ処理、チャットボットなどの幅広い用途に利用できます。
Go は、効率性とポータビリティに優れていて、使い方を簡単に学べるので、クラウド アプリケーションに最適です。このラボでは、Cloud Build を使って、Google のサーバーレス プラットフォームである Cloud Run、Cloud Functions、App Engine に Go アプリをデプロイする方法を学びます。
- Cloud Run
- Cloud Functions
- App Engine
Cloud Build
Cloud Build は、Google Cloud インフラストラクチャでビルドを行うサービスです。Cloud Build では、Cloud Storage、Cloud Source Repositories、GitHub、Bitbucket からソースコードをインポートし、仕様に合わせてビルドを実行して、Docker コンテナなどのアーティファクトを生成します。
Cloud Build は、一連のビルドステップとしてビルドを実行します。各ビルドステップは、Docker コンテナで実行されます。ビルドステップでは、環境に関係なく、コンテナで実行可能なすべての処理を実行できます。詳細については、Cloud Build のドキュメントをご覧ください。
Cloud Run
Cloud Run は、ステートレス コンテナを自動的にスケールするフルマネージド型のコンピューティング プラットフォームです。Cloud Run はサーバーレスです。インフラストラクチャ管理が一切不要なため、最も重要な作業であるアプリケーションの構築に集中できます。
アーキテクチャ
Go アプリのサンプルである Google Cloud Data Drive を Cloud Run にデプロイすると、データフローのアーキテクチャは以下のようになります。
Cloud Functions
Cloud Functions は、Google Cloud のイベント ドリブンのサーバーレス コンピューティング プラットフォームです。Go はマシンコード バイナリにコンパイルされ、起動の際にフレームワークに依存せず、インタプリタを必要としないので、Go のコールド スタート時間は 80~1400 ms です。このように起動時間が短く、その間はアプリケーションとサービスを利用しないため、費用がかかりません。また、スタートアップとコールド スタートのトラフィックの処理は 1400 ms 以内です。起動後に、Cloud Functions の関数はトラフィックを瞬時に処理します。これだけでも、Go が Cloud Functions にデプロイする最適な言語であることがわかります。
アーキテクチャ
Go アプリのサンプルである Google Cloud Data Drive を Cloud Functions にデプロイすると、データフローのアーキテクチャは以下のようになります。
App Engine
App Engine スタンダード環境は、Google のインフラストラクチャで実行されるコンテナ インスタンスに基づいています。コンテナは、複数の利用可能なランタイムの 1 つで事前構成されています。
アーキテクチャ
Go アプリのサンプルである Google Cloud Data Drive を App Engine にデプロイすると、データフローのアーキテクチャは以下のようになります。
Google Cloud Data Drive のソースコード
このラボでは、Google Cloud Data Drive という名前のシンプルなアプリをデプロイします。Google は、Google Cloud からデータをすぐに抽出できるように、このアプリを開発し、ソースコードを公開しました。Google Cloud Data Drive アプリは、Cloud API とサービスを使う際に効果的な利用パターンを示す一連のツールの 1 つです。
Google Cloud Data Drive Go アプリは、シンプルで構成可能な URL パスを公開し、サポートされる Google Cloud データ プラットフォームから JSON 形式でデータを取得します。現在このアプリは BigQuery と Firestore をサポートしていますが、モジュール化された設計であり、多数のデータソースをサポートすることが可能です。
Google Cloud Data Drive を実行している Google Cloud からデータを取得する際に使用される HTTP URL パターンを以下に示します。
-
Firestore :
[SERVICE_URL]/fs/[PROJECT_ID]/[COLLECTION]/[DOCUMENT]
-
BigQuery:
[SERVICE_URL]/bq/[PROJECT_ID]/[DATASET]/[TABLE]
ここで
パラメータ |
説明 |
[SERVICE URL] |
App Engine、Cloud Run、または Cloud Functions からのアプリケーションのベース URL です。App Engine のベース URL は、 |
[PROJECT ID] |
アクセスする Firestore コレクションまたは BigQuery データセットのプロジェクト ID。プロジェクト ID はラボの左側のパネルで確認できます。 |
[COLLECTION] |
Firestore コレクション ID( |
[DOCUMENT] |
返信する Firestore ドキュメント( |
[DATASET] |
BigQuery データセット名( |
[TABLE] |
BigQuery テーブル名( |
curl
を使用しますが、URL を自分で作成して、ブラウザで機能テストを別に実施することもできます。タスク 1. 環境の設定
- このラボの後半で使用するために、Cloud Shell で 以下のコマンドを入力して、プロジェクト ID を保存する環境変数を作成します。
- このラボのサンプルコードを Google Cloud Storage(GCS)からコピーします。
データベースの準備
このラボでは、BigQuery と Firestore のサンプルデータを使って Go アプリをテストします。
BigQuery データベース
BigQuery は、ML、データ パーティショニング、セグメンテーション向けの多数の機能を備えた、サーバーレスのデータ ウェアハウスで、長期の使用が可能です。BigQuery では、ANSI SQL を使用してギガバイトからペタバイト規模のデータを極めて高速に分析でき、運用のオーバーヘッドは発生しません。
BigQuery データセットは、カリフォルニア州の郵便番号を示したもので、ラボ開始時に作成されました。
Firestore データベース
Firestore は、ドキュメントを超高速で検索する機能とリアルタイムのイベントを処理する機能を備えた、サーバーレスのドキュメント データベースです。また、99.999% の SLA を保証します。アプリのテストに Firestore のデータを使用するには、Firestore をネイティブ モードに初期化して、サンプルデータをインポートする必要があります。
Firestore ネイティブ モードのデータベース インスタンスがあらかじめ作成されています。
- Cloud コンソールで、ナビゲーション メニュー > [Firestore] > [データ] の順にクリックして、コンソールで Firestore を開きます。
Firestore データベース インスタンスが初期化されるまで待ちます。この処理によって同じリージョンの App Engine も初期化されるので、最初に App Engine インスタンスを作成することなく、アプリケーションを App Engine にデプロイできます。
- Cloud Shell で Firestore インポート ジョブを起動します。これにより、ラボ用の Firestore サンプルデータが準備されます。
このインポート ジョブにより、symbols
というコレクションの Cloud Firestore バックアップが $PROJECT_ID-firestore
ストレージ バケットに読み込まれます。
インポート ジョブが完了するには最長で 5 分ほどかかることがあります。その間に次のセクションに進みます。
Cloud Build の権限の構成
Cloud Build は、Google Cloud インフラストラクチャでビルドを行うサービスです。デフォルトの Cloud Build には、以下にアプリケーションをデプロイするための十分な権限がありません。
- App Engine
- Cloud Run
- Cloud Functions
Cloud Build を使って Google Cloud Data Drive アプリをデプロイする前に、これらのサービスを有効にする必要があります。
- コンソールで、ナビゲーション メニュー > [Cloud Build] > [設定] の順にクリックします。
- [Cloud Functions] の [ステータス] を [有効] に設定します。
- プロンプトが表示されたら、[すべてのサービス アカウントにアクセス権を付与] をクリックします。
- [Cloud Run] の [ステータス] を [有効] に設定します。
- [App Engine] の [ステータス] を [有効] に設定します。
タスク 2. Cloud Run にデプロイする
Google Cloud Run は App Engine スタンダード環境ととても似ていますが、カスタム コンテナを使用(BYOC)できるところが異なります。Docker コンテナを作成する Dockerfile を Google Cloud Data Drive アプリ用に準備して、このコンテナを Cloud Run にデプロイします。
Dockerfile
の確認
Go は、コンテナ プラットフォームでのデプロイ用にアプリを作成するには優れた言語です。コンテナには、Go でコンパイルされたバイナリだけが含まれます。以下の例では distroless/static
というベースコンテナを使用していることがわかります。このベースコンテナはゼロから構築されていて、公開証明書のルートとタイムゾーン ファイルの情報だけが含まれます。Go バイナリが、起動コマンドとして挿入されて登録されます(以下の Dockerfile
の最後のコマンドラインをご覧ください)。他のフレームワークを含めたりする必要はありません。このようなコンテナを構築することで、最小のコンテナとセキュリティ フットプリントが作成されるので、GKE、Anthos、オンプレミスのホスティング ソリューションにコンテナを簡単に移植できます。
- コンテナを構築する
Dockerfile
コードは以下のとおりです。
-
GitHub の
Dockerfile
を確認してください。
Cloud Build YAML 構成ファイルの確認
以下に示した Cloud Build YAML ファイル DIY-Tools/gcp-data-drive/cloudbuild_run.yaml
には、ご使用のアプリケーションを Cloud Run にデプロイするための Cloud Build ステップ定義が含まれます。このファイルを使って、アプリケーションを Cloud Run にデプロイします。
-
最初のステップでは、
git
コマンドを実行して、アプリケーションを含めたソース リポジトリのクローンを作成します。このステップは、アプリケーションのブランチ間で簡単にスイッチできるようにパラメータ化されます。 -
2 つ目のステップでは、Cloud Build を使用するために
gcloud builds submit
コマンドを実行して、Dockerfile
に含まれたステップを使用し、コンパイルされたアプリケーションを含めたコンテナを作成します。このコンテナはgcr.io
に保存されます。 -
3 つ目のステップでは、アプリケーションのコンテナ イメージを
gcr.io
からリージョンの Cloud Run にデプロイします。
自分でコンテナを作成し、gcloud run deploy
コマンドを使用して、アプリを手動でデプロイすることもできます。しかし、Cloud Build を使用することで、この作業を Google インフラストラクチャにオフロードできます。Google Cloud Build システムによってコミット イベントをタグフィルタでリッスンできるので、このシステムは自動 CI/CD システムのコア コンポーネントといえます。このような機能が統合されて、デベロッパーがライフサイクルのデプロイでコミットした信頼性の高い自動パイプラインが一貫して作成されます。
GitHub の cloudbuild_run.yaml
のステップを確認してください。
インポート処理の確認
Cloud Shell で、データを Filestore に読み込むインポート処理が完了したかを確認します。完了したら次のセクションに進み、Google Cloud Data Drive アプリをデプロイします。
Google Cloud Data Drive アプリをデプロイする
- Cloud Shell で、GitHub からクローンを作成したアプリケーションのディレクトリに変更します。
- Cloud Build で Google Cloud Data Drive アプリを Cloud Run にデプロイします。
デプロイには数分かかります。コンソールに赤いテキストが表示されることがありますが、エラーログではありません。
- Cloud Run サービス URL を環境変数に保存します。
-
curl
を使用してアプリケーションを呼び出し、プロジェクトの Firestore のsymbols
コレクションにあるデータをクエリします。
これに対して、プロジェクトの symbols
コレクションの値が含まれた JSON ファイルのコンテンツが返されます。ファイルの内容は大体次のようになっています。
-
curl
を使用してアプリケーションを呼び出し、ラボ プロジェクトの BigQuery のpublicviews.ca_zip_codes
テーブルにあるデータをクエリします。
これに対して、BigQuery SQL ステートメント SELECT * FROM publicviews.ca_zip_codes;
の結果が含まれた JSON ファイルのコンテンツが返されます。ファイルの内容は大体次のようになっています。
Go は、主にポータビリティとコンパイル サイズに優れているので、Cloud Run での使用に最適な言語です。Go は静的に型付けされたコンパイル言語ですが、モジュール化する方法で、異なるデータ プラットフォームにも効果的にアクセスできます。この Go アプリのアプリケーション コンテナの詳細を確認してください。
コンテナの詳細の確認
- Cloud コンソールでナビゲーション メニュー()> [Cloud Run] をクリックします。
- サービスのリストの gcp-data-drive をクリックします。
- [リビジョン] タブをクリックします。
- 右側のパネルにある [コンテナ] タブで、[イメージの URL] をクリックします。
[コンテナ] ペインには、Container Registry のイメージを調べるために、コンテナ イメージの URL が含まれています。
新しいブラウザタブで Container Registry が開き、[イメージの詳細] ウィンドウが表示されます。
仮想サイズからもわかるように、コンテナには Go バイナリしかないため非常に小さく、セキュリティ攻撃を受ける可能性が最も低くなります。また、Go コンテナはサイズが小さく、各種の CPU 間と OS 間で移植できるため、Anthos サービスにも最適です。これによって、Cloud からオンプレミスのプラットフォーム、逆にオンプレミスのプラットフォームから Cloud へとコンテナを簡単に移行できます。
タスク 3. Cloud Functions へのデプロイ
Cloud Functions は、Google Cloud のイベント ドリブンのサーバーレス コンピューティング プラットフォームです。Go と Cloud Functions とを組み合わせると、スピンアップ時間が速く、無制限にスケールできる、優れたサーバーレスのプラットフォームとなります。また、アプリケーションでのイベント ドリブンの応答時間が最短になります。
ソースコードを調べて、Cloud Functions で Google Cloud Data Drive ソースコードを再利用する方法を確認します。
main
関数の確認
-
DIY-Tools/gcp-data-drive/cmd/webserver/main.go
のmain
関数を起動する際に、gcpdatadrive.GetJSONData
Go 関数へすべての HTTP リクエストを送信するようにウェブサーバーに指示します。
-
GitHub の
main.go
のmain
関数を確認してください。
Cloud Functions では、main.go
が使用されるのではなく、DIY-Tools/gcp-data-drive/gcpdatadrive.go
ファイルで定義された gcpdatadrive.GetJSONData
Go 関数に直接 HTTP リクエストを送信するように Cloud Functions ランタイムが構成されています。
- これについては、Cloud Build で
cloudbuild_gcf.yaml
を使用して、Google Cloud Data Drive アプリケーションを Cloud Functions にデプロイする方法を調べることで確認できます。
-
GitHub の
cloudbuild_gcf.yaml
を確認してください。
この Cloud Build のステップは、アプリケーションを Cloud Run にデプロイするステップに似ていますが、ここでは gcloud functions deploy
コマンドを使用してアプリケーションを Cloud Functions にデプロイします。
App Engine または Cloud Run にデプロイする場合は、Go のメイン パッケージの main
関数が使用されますが、ここでは Cloud Functions の --entrypoint
パラメータを使用して GetJSONData
関数を指定していることに注目してください。
Google Cloud Data Drive アプリをデプロイする
- Cloud Functions サービス アカウントに
roles/artifactregistry.reader
のロールを割り当てて、Artifact Registry からの読み取りを許可します。
-
DIY-Tools/gcp-data-drive
で、Cloud Build を使って Cloud Functions にデプロイします。
- 次のコマンドを入力して、認証されていないユーザーにも Google Cloud Data Drive の Cloud Functions 関数へのアクセスを許可します。
- Cloud Functions の HTTP トリガー URL を環境変数に保存します。
-
curl
を使用してアプリケーションを呼び出し、プロジェクトの Firestore のsymbols
コレクションにあるデータをクエリします。
これに対して、プロジェクトの symbols
コレクションの値が含まれた JSON ファイルのコンテンツが返されます。
-
curl
を使用してアプリケーションを呼び出し、ラボ プロジェクトの BigQuery のpublicviews.ca_zip_codes
テーブルにあるデータをクエリします。
これに対して、BigQuery SQL ステートメント SELECT * FROM publicviews.ca_zip_codes;
の結果が含まれた JSON ファイルのコンテンツが返されます。
タスク 4. その他の Cloud Functions トリガー
Cloud Functions はイベント ドリブンのアーキテクチャです。デプロイしたアプリでは HTTP リクエストがイベントとして使用されます。異なるイベントタイプで起動する別の Go アプリのコードを見てみましょう。この関数は、Firestore 書き込みイベントでトリガーされます。
以下の Go ソースコードは、Go Code サンプルガイドから抜粋したものです。
GitHub のソースコードの例を参照してください。
この例には、ラボのサンプル アプリケーションで使われる HTTP リクエスト トリガーではなく、Firestore イベントを処理する Cloud Functions をデプロイするために使われるコードが含まれます。DoSomeThingOnWrite
を Cloud Functions のエントリポイントとして使用し、この関数を Cloud Firestore イベント トリガーに登録します。
現在、Cloud Functions では以下のイベント トリガーをサポートしています。
上記はシンプルな例ですが、幅広い可能性があります。かつてはオペレーティング システムの管理という負担が伴っていたタスクを、シンプルな Go Cloud Functions 関数を利用して実行できるようになります。たとえば、ユーザーがモバイルアプリを使用して Cloud Firestore になんらかの書き込みを行う際に、このような関数を使ってデータ損失防止(DLP)を実行し、データをサニタイズできます。
また、Cloud Functions を利用して、Pub/Sub イベントに基づいてウェブ利用の概要レポートを書き換えて Firestore に書き込むこともできます。イベントベースの小さな処理は、数に関係なく Go Cloud Functions に適しています。さらには、サーバーにパッチを適用する手間も省けます。
タスク 5. App Engine にデプロイする
App Engine は Go アプリケーションの実行に最適です。App Engine は、ワークロードの変化に応じてスケールアップやスケールダウンを行う、フルマネージドのサーバーレス コンピューティング プラットフォームです。Go アプリケーションは、デプロイ時に単一の実行可能バイナリ ファイルにコンパイルされます。アプリケーションの Go のコールド スタート時間は多くの場合 80~1400 ms です。App Engine は、実行中でも水平方向にスケールできるので、要求の厳しいグローバルなスケールのワークロードでも数秒で対応できます。
Cloud Build YAML 構成ファイルの確認
以下に示した Cloud Build YAML ファイル DIY-Tools/gcp-data-drive/cloudbuild_appengine.yaml
には、ご使用のアプリケーションを App Engine にデプロイするための Cloud Build ステップ定義が含まれます。このファイルを使って、アプリケーションを App Engine にデプロイします。
最初のステップでは、git
コマンドを実行して、アプリケーションを含めたソース リポジトリのクローンを作成します。このステップは、アプリケーションのブランチ間で簡単にスイッチできるようにパラメータ化されます。
2 つ目のステップでは、sed
コマンドを実行して、app.yaml
ファイルの runtime: go113
を runtime: go121
に置き換えます。これは、Go 1.13 ランタイムが非推奨となり、将来削除されるためです。なお、これはアプリの実行を継続するためのパッチにすぎません。個々のプロジェクトでは、最新の Go ランタイムを使用できるようにアプリを更新する必要があります。
3 つ目のステップでは、gcloud app deploy
コマンドを実行して、アプリケーションを App Engine にデプロイします。
他の例と同じように、gcloud app deploy
コマンドを使用してアプリを手動でデプロイすることもできますが、Cloud Build を使用することで、この作業を Google インフラストラクチャにオフロードできます。たとえば、サーバーレス CI/CD パイプラインを作成する場合に Cloud Build を利用すると便利です。
GitHub の cloudbuild_appengine.yaml
を確認してください。
Google Cloud Data Drive アプリをデプロイする
-
DIY-Tools/gcp-data-drive
で、Cloud Build を使って Go ウェブサーバー アプリを App Engine にデプロイします。
デプロイが完了するまで数分かかります。
- App Engine URL を環境変数に保存し、アプリを呼び出すコマンドで使用します。
target url
です。-
curl
を使用して App Engine で実行されるアプリケーションを呼び出し、Firestore にあるデータをクエリします。
これに対して、プロジェクトの symbols
コレクションの 3 つの値が含まれた JSON ファイルのコンテンツが返されます。
-
curl
を使用して App Engine で実行されるアプリを呼び出し、BigQuery のデータをクエリします。
これに対して、BigQuery SQL ステートメント SELECT * FROM publicviews.ca_zip_codes;
の結果が含まれた JSON ファイルのコンテンツが返されます。
負荷の増加
負荷を増加するとどうなるかを確認します。
- nano エディタを使用して、アプリケーションに負荷をかけるためのシンプルなシェル スクリプトを作成します。
- エディタに以下のスクリプトを入力するか、貼り付けます。
- Ctrl+X キー、Y キー、Enter キーの順に押して新しいファイルを保存します。
- スクリプトを実行可能にします。
- 負荷テストを実行します。
- コンソールで、ナビゲーション メニュー > [App Engine] > [インスタンス] の順にクリックします。
インスタンス ウィンドウが開き、負荷テストを Cloud Shell で実行したときの 1 秒あたりのリクエスト処理数の概要と生成されたインスタンスのリストが表示されます。App Engine によって追加のアプリ インスタンスが自動的に作成され、HTTP 受信トラフィックが分散される様子を確認してください。
- 負荷テストがまだ実行されていたら、Cloud Shell で Ctrl+C キーを押して終了します。
お疲れさまでした
このセルフペース ラボでは、Go プログラミング言語を使って、すべての Google Cloud サーバーレス コンピューティング プラットフォームにデプロイする方法を学びました。まとめは以下のとおりです。
- Go プログラミング言語には、最新のクラウド アプリケーションとオンプレミス アプリケーションに最適な、収益性と効率性に優れた特長があります。
- 同じ Go コードベースを変更することなく、Google Cloud のサーバーレスでコンテナベースの Anthos コンピューティング プラットフォームすべてにデプロイできます。
- Cloud Build(同様にサーバーレス)は、ご使用のアプリケーションのライフサイクルで、クラウドベースの CI/CD パイプラインを一貫して提供するうえで、重要な役割を果たします。
- Cloud Run、Cloud Functions、App Engine は、Google 規模で起動して簡単にデプロイできるシンプルなサーバーレス プラットフォームです。
- Google Cloud Data Drive は、既存の Google Cloud 環境でも使用できる、オープンソースのデータ抽出ライブラリです。
次のステップと詳細情報
- Go の詳細については、Go プログラミング言語をご覧ください。
- GitHub での Go をご覧ください。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 3 月 14 日
ラボの最終テスト日: 2024 年 3 月 14 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。