このチュートリアルは、初めてクラウドでアプリを構築する方々を対象にしています。 エンジニアやウェブ デベロッパーなどが、に適用できるアプリ開発の重要なコンセプトを学習する場合に役立ちます。 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 プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $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 データベースをネイティブ モードで作成するには、次の手順に沿って操作してください。
-
コンソールで、[**Firestore のデータベースの作成**] ページに移動します。 Google Cloud
- [Cloud Firestore モードの選択] 画面から [ネイティブ モードを選択] をクリックします。
- Firestore データベースのロケーションを選択します。このロケーション設定は、 プロジェクトのデフォルトの Google Cloud リソースのロケーションです Google Cloud 。 このロケーションは、ロケーション設定を必要とする Google Cloud プロジェクト内の Google Cloud サービス(特にデフォルトのCloud StorageバケットおよびCloud Runアプリ)で使用されます。
- [データベースを作成] をクリックします。
-
コンソールで、[**Firestore のデータベースの作成**] ページに移動します。 Google Cloud
-
Cloud Run Admin、Cloud Storage、Cloud Logging、Error Reporting API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(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 コンソールを使用して作成したプロジェクト ID に置き換えます。 Google Cloud
Google Cloud CLI は、コマンドラインから リソースを操作する基本的な方法です。 Google Cloud このチュートリアルでは、
gcloudツールを使用してアプリをデプロイおよびモニタリングします。
アプリを実行する
-
composerを使用してアプリの依存関係をインストールします。composer install -
PHP 組み込みウェブサーバーを実行します。
GOOGLE_CLOUD_PROJECT=PROJECT_ID php -S localhost:8080PROJECT_ID は、作成した Google Cloud プロジェクト ID に置き換えます。
-
新しいウィンドウが開き、実行中のアプリが表示されます。
アプリを Cloud Run にデプロイする
Google Cloud には、コードを実行する際に使用できるオプションがいくつか用意されています。この 例では、スケーラブルなアプリをCloud Runにデプロイします。Cloud Run では、サーバーを管理する必要はなく、トラフィックの急増に対応するために自動的にスケーリングします。
- コンテナを Cloud Run にデプロイします。
gcloud run deploy bookshelf --region us-central1 --allow-unauthenticated \ --set-env-vars="GOOGLE_CLOUD_PROJECT=
PROJECT_ID" --source .これで、アプリは
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 アプリにエントリが追加されました。
-
コンソールで Firestore ページを更新するには、
[Refresh] refresh をクリックします。
Google Cloud データが Firestore に表示されます。Bookshelf アプリは、各書籍を
一意の ID とともに
Firestore ドキュメントとして保存し、これらのドキュメントはすべて
Firestore コレクション内に保存されます。このチュートリアルでは、コレクションを書籍集(books)と呼びます。
Firestore は Firestore クライアント ライブラリを使用して書籍集を保存します。Firestore ドキュメントを取得する例を次に示します。
Firestore の使用方法の詳細については、 Firestore にデータを追加するをご覧ください。
Cloud Storage にアップロードしたファイルを保存する
書籍を追加したので、書籍の表紙の画像を追加します。ファイルをインスタンスに保存することはできず、データベースは画像ファイルに適していません。そこで Cloud Storage を使用します。
Cloud Storage はメインの blob ストアです Google Cloud。Cloud Storage を使用して、 で共有するアプリのアセットをホストできます Google Cloud。Cloud Storage を使用するには、データを保存する基本的なコンテナである Cloud Storage バケットを作成する必要があります。
- コンソールで Cloud Storage の [**ブラウザ**] ページに移動します。 Google Cloud
- [バケットを作成] をクリックします。
- [バケットの作成] ダイアログで、 プロジェクト ID を文字列
_bucketに付け加えてバケットの名前を入力して、名前をYOUR_PROJECT_ID_bucketのようにします。 Google Cloud この名前は バケット名の要件を満たしている必要があります。他のすべての項目はデフォルト値のままにします。 - [作成] をクリックします。
- バケットの作成後、ユーザーが閲覧できるようにオブジェクトを一般公開する必要があります。オブジェクトを一般公開するには、データの一般公開をご覧ください。
-
[Edit book] をクリックして、書籍の表紙としてアップロードする画像を選択します。たとえば、このパブリック ドメインの画像を使用します。

-
[保存] をクリックします。Bookshelf アプリのエントリがあるホームページにリダイレクトされます。

Bookshelf アプリは、Cloud Storage クライアント ライブラリを使用して、アップロードされたファイルを Cloud Storage に送信します。
Cloud Storage の使用方法については、 Cloud Storage の概要をご覧ください。
Google Cloud Observability を使用してアプリをモニタリングする
アプリをデプロイし、書籍を作成して修正しました。ユーザーのためにこのようなイベントをモニタリングするには、アプリケーション パフォーマンス管理を使用します。
Cloud Logging でログをモニタリングする
-
で、[**ログ エクスプローラ**] に移動します。 Google Cloud
[ログ エクスプローラ] に移動アプリをリアルタイムでモニタリングできます。アプリに問題が発生した場合は、まずこちらの画面を確認してください。
- [リソース] プルダウン リストで、[Cloud Run のリビジョン, bookshelf] を選択します。
Error Reporting でエラーをモニタリングする
-
コンソールで [Error Reporting] ページに移動します。 Google Cloud
[Error Reporting] ページに移動
Error Reporting では、アプリ内のエラーと例外が強調表示され、 そのアラートを設定できます。 -
ブラウザで、アプリの
/errorsURL にアクセスします。YOUR_CLOUD_RUN_URL/errors
これにより、新しいテストの例外が生成され、Google Cloud Observability に送信されます。
-
コンソールで、[Error Reporting] ページに戻り、しばらくすると新しいエラーが表示されます。 Google Cloud [自動再読み込み] をクリックすると、ページを手動で更新する必要がなくなります。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトを削除する
- コンソールで [**リソースの管理**] ページに移動します。 Google Cloud
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。