このチュートリアルは、初めてクラウドでアプリを構築する方々を対象にしています。 エンジニアやウェブ デベロッパーなどが、に適用できるアプリ開発の重要なコンセプトを学習する場合に役立ちます。 Google Cloud
目標
- 基本的な Google Cloud ツール(Google Cloud コンソールや
gcloudなど)について学習します。 - アプリをCloud Runにデプロイします。
- Firestore でデータを保存します。
- Cloud Storage にアップロードしたファイルを保存します。
- Google Cloud Observability を使用してアプリをモニタリングします。
費用
このドキュメントでは、課金対象である次のコンポーネントを使用します。 Google Cloud
このドキュメントの手順は、リソース使用量が
Google Cloud's Always Free
ティアの制限内に収まるように設計されています。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
- アカウントに Google Cloud ログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Firestore データベースをネイティブ モードで作成するには、次の手順に沿って操作してください。
-
コンソール Google Cloud で、[**Firestore のデータベースの作成**] ページに移動します。
- [Cloud Firestore モードの選択] 画面から [ネイティブ モードを選択] をクリックします。
- Firestore データベースのロケーションを選択します。このロケーション設定は、 プロジェクトのデフォルトの Google Cloud リソースのロケーションです Google Cloud 。 このロケーションは、ロケーション設定を必要とする Google Cloud プロジェクト内の Google Cloud サービス(特にデフォルトのCloud StorageバケットおよびCloud Runアプリ)で使用されます。
- [データベースを作成] をクリックします。
-
コンソール Google Cloud で、[**Firestore のデータベースの作成**] ページに移動します。
-
Cloud Run Admin、Cloud Storage、Cloud Logging、Error Reporting API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。 -
サンプル リポジトリのクローンを作成して、Cloud Shell でサンプル アプリケーションを開きます。
Cloud Shell に移動Cloud Shell を使用すると、ブラウザからコマンドラインで直接 Google Cloud リソースにアクセスできます。
- リポジトリのクローンを作成するプロンプトで、[確認] をクリックします。
-
Cloud Shell で、
gcloudツールを構成して新しい Google Cloud プロジェクトを使用します。# Configure gcloud for your project gcloud config set project PROJECT_ID
PROJECT_ID は、 Google Cloud コンソール Google Cloud を使用して作成したプロジェクト ID に置き換えます。
Google Cloud CLI は、コマンドラインから Google Cloud リソースを操作する基本的な方法です。このチュートリアルでは、
gcloudツールを使用してアプリをデプロイおよびモニタリングします。
アプリを実行する
-
Cloud Shell で、
pipを使用してアプリの依存関係をインストールします。pip3 install -r requirements.txt --user
-
Gunicorn HTTP サーバーを実行します。
~/.local/bin/gunicorn -b :8080 main:app
- Cloud Shell で、[**ウェブでプレビュー**] , をクリックし、[**ポート 8080 でプレビュー**] を選択します。新しいウィンドウが開き、実行中のアプリが表示されます。
アプリを Cloud Run にデプロイする
Google Cloud には、コードを実行する際に使用できるオプションがいくつか用意されています。この 例では、Cloud Run を使用してスケーラブルなアプリを Google Cloudにデプロイします。Cloud Run では、サーバーを管理する必要はなく、トラフィックの急増に対応するために自動的にスケーリングします。
- Cloud Build を使用して Docker コンテナをビルドし、Container Registry に公開します。
gcloud builds submit --tag gcr.io/
PROJECT_ID/bookshelf .PROJECT_IDを、作成した Google Cloudプロジェクトのプロジェクト ID に置き換えます。 - Cloud Run を使用してコンテナを実行します。
gcloud run deploy bookshelf --image gcr.io/
PROJECT_ID/bookshelf \ --platform managed --region us-central1 --allow-unauthenticatedこれで、アプリは
gcloud runの出力に表示される URL で確認できるようになりました。Service [bookshelf] revision [bookshelf-00001] has been deployed and is serving 100 percent of traffic. Service URL: https://bookshelf-swsmmh5s5a-uc.a.run.app
-
URL を Web ブラウザにコピーして、アプリを表示します。

Cloud Run へのデプロイの詳細については、Cloud Run のドキュメントをご覧ください。
Firestore を使用してデータを保存する
Cloud Run インスタンスに情報を保存することはできません。インスタンスを再起動すると情報が失われ、新しいインスタンスが作成されたときにはその情報は存在しないためです。そこで、すべてのインスタンスが読み取りおよび書き込みするデータベースを使用します。
Google Cloud には データを保存する際に使用できるオプションがいくつか用意されています。この例では、Firestore を使用して各書籍のデータを保存します。 Firestore はフルマネージドでサーバーレスの NoSQL ドキュメント データベースで、データを保存および照会できます。Firestore はアプリのニーズを満たすために自動でスケールし、使用しない場合はゼロにスケールします。最初の書籍を追加しましょう。
-
デプロイしたアプリ用の書籍を作成するには、[Add book] をクリックします。
- [Title] 項目に「
Moby Dick」と入力します。 - [Author] 項目に「
Herman Melville」と入力します。 -
[保存] をクリックします。Bookshelf アプリにエントリが追加されました。
- コンソール Google Cloud で Firestore ページを更新するには、 [Refresh] refresh をクリックします。 データが Firestore に表示されます。Bookshelf アプリは、各書籍を 一意の ID とともに Firestore ドキュメントとして保存し、これらのドキュメントはすべて Firestore コレクション内に保存されます。 このチュートリアルでは、コレクションを書籍集(books)と呼びます。