AstroサイトをGoogle Cloudにデプロイする
フル機能のWebアプリホスティングプラットフォームGoogle Cloudで、Astroサイトをデプロイできます。
デプロイ方法
Cloud Storage (静的配信のみ)
- 
新しいGCPのプロジェクトを作成、または既存のプロジェクトを選択します。 
- 
Cloud Storageで新しいバケットを作成します。 
- 
バケットに名前を付け、その他必要な設定を行います。 
- 
distフォルダをバケットにアップロードするか、Cloud Buildを使用してアップロードします。
- 
新しく Storage オブジェクト閲覧者という権限をallUsersに追加して、公開アクセスを有効にします。
- 
Webサイトの設定を編集し、エントリポイントとして ìndex.htmlを、エラーページとして404.htmlを追加します。
Cloud Run (SSRと静的配信)
Cloud Runはインフラストラクチャを管理せずにコンテナを実行できるサーバーレスプラットフォームです。 静的サイトとSSRサイトの両方のデプロイに使用できます。
サービスの準備
- 
新しいGCPのプロジェクトを作成、または既存のプロジェクトを選択します。 
- 
Cloud Run APIが有効になっていることを確認してください。 
- 
新しいサービスを作成します。 
Dockerfileの作成とコンテナのビルド
AstroのサイトをCloud Runにデプロイする前に、コンテナのビルドに使用されるDockerfileを作成する必要があります。AstroでDockerを使用する方法 (EN)の詳細はレシピセクションをご覧ください。
Dockerfileが作成されたら、イメージをビルドしてGoogle Cloudにプッシュします。これを実現するには、いくつかの方法があります:
Dockerを使用してローカルでビルドする:
docker buildコマンドを使用してイメージをビルドし、docker tagでタグを付け、docker pushでレジストリにプッシュします。Google Cloud の場合、Google Cloud Registryが最も簡単なオプションですが、Docker Hubを使用することもできます。
# コンテナをビルドしますdocker build .
docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/TARGET-IMAGE:TAG
# イメージをレジストリにプッシュしますdocker push HOSTNAME/PROJECT-ID/IMAGE:TAGプロジェクトに合わせて、上記のコマンド内の次の値を変更します。
- SOURCE_IMAGE: ローカルイメージ名またはイメージID。
- HOSTNAME: レジストリのホスト(- gcr.io,- eu.gcr.io,- asia.gcr.io,- us.gcr.io)。
- PROJECT: Google CloudのプロジェクトID。
- TARGET-IMAGE: レジストリに保存された時のイメージ名。
- TAGはイメージに関連付けられたバージョンです。
詳細はGoogle Cloudのドキュメントをご覧ください。
他のツールを使用する:
GitHub Actionsのような、DockerをサポートするCI/CDツールを使用できます。
Cloud Buildを使用してビルドする:
Dockerfileをローカルでビルドする代わりに、イメージをリモートでビルドするようにGoogle Cloudに指示できます。Google Cloud Buildのドキュメントを参照してください。
コンテナのデプロイ
デプロイはgcloudを使用してターミナルで手動で行うことも、Cloud Buildやその他のCI/CDシステムを使用して自動的に行うこともできます。
Cloud Runの権限設定のallUsersグループにCloud Run 起動元権限を追加することを忘れないでください!