Skip to content

Latest commit

 

History

History
87 lines (54 loc) · 4.69 KB

google-cloud.mdx

File metadata and controls

87 lines (54 loc) · 4.69 KB
title description type i18nReady
AstroサイトをGoogle Cloudにデプロイする
Google CloudでAstroサイトをウェブにデプロイする方法。
deploy
true

import { Steps } from '@astrojs/starlight/components';

フル機能のWebアプリホスティングプラットフォームGoogle Cloudで、Astroサイトをデプロイできます。

デプロイ方法

Cloud Storage (静的配信のみ)

1. [新しいGCPのプロジェクトを作成](https://console.cloud.google.com/projectcreate)、または既存のプロジェクトを選択します。
  1. Cloud Storageで新しいバケットを作成します。

  2. バケットに名前を付け、その他必要な設定を行います。

  3. distフォルダをバケットにアップロードするか、Cloud Buildを使用してアップロードします。

  4. 新しくStorage オブジェクト閲覧者という権限をallUsersに追加して、公開アクセスを有効にします。

  5. Webサイトの設定を編集し、エントリポイントとしてìndex.htmlを、エラーページとして404.htmlを追加します。

Cloud Run (SSRと静的配信)

Cloud Runはインフラストラクチャを管理せずにコンテナを実行できるサーバーレスプラットフォームです。 静的サイトとSSRサイトの両方のデプロイに使用できます。

サービスの準備

1. [新しいGCPのプロジェクトを作成](https://console.cloud.google.com/projectcreate)、または既存のプロジェクトを選択します。
  1. Cloud Run APIが有効になっていることを確認してください。

  2. 新しいサービスを作成します。

Dockerfileの作成とコンテナのビルド

AstroのサイトをCloud Runにデプロイする前に、コンテナのビルドに使用されるDockerfileを作成する必要があります。AstroでDockerを使用する方法の詳細はレシピセクションをご覧ください。

Dockerfileが作成されたら、イメージをビルドしてGoogle Cloudにプッシュします。これを実現するには、いくつかの方法があります:

Dockerを使用してローカルでビルドする:

docker buildコマンドを使用してイメージをビルドし、docker tagでタグを付け、docker pushでレジストリにプッシュします。Google Cloud の場合、Artifact 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システムを使用して自動的に行うこともできます。

:::note[公開アクセスが必要ですか?] Cloud Runの権限設定のallUsersグループにCloud Run 起動元権限を追加することを忘れないでください! :::