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を使用することもできます。
プロジェクトに合わせて、上記のコマンド内の次の値を変更します。
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 起動元
権限を追加することを忘れないでください!