콘텐츠로 이동

Astro 사이트를 Google Cloud에 배포

Google Cloud는 Astro 사이트를 배포하는 데 사용할 수 있는 모든 기능을 갖춘 웹 앱 호스팅 플랫폼입니다.

배포 방법

Cloud Storage (정적 전용)

  1. 새 GCP 프로젝트를 생성하거나 이미 가지고 있는 프로젝트를 선택하세요.

  2. Cloud Storage에서 새 버킷을 생성합니다.

  3. 이름과 기타 필수 설정을 지정합니다.

  4. dist 폴더를 여기에 업로드하거나 Cloud Build를 사용하여 업로드하세요.

  5. allUsersStorage Object Viewer라는 새 권한을 추가하여 공개 액세스를 활성화합니다.

  6. 웹사이트 구성을 편집하여 index.html을 엔트리포인트로 추가하고 404.html을 오류 페이지로 추가합니다.

Cloud Run (SSR 및 정적)

Cloud Run은 인프라를 관리할 필요 없이 컨테이너를 실행할 수 있는 서버리스 플랫폼입니다. 정적 사이트와 SSR 사이트를 모두 배포하는 데 사용할 수 있습니다.

서비스 준비

  1. 새 GCP 프로젝트를 생성하거나 이미 가지고 있는 프로젝트를 선택하세요.

  2. Cloud Run API가 활성화되어 있는지 확인하세요.

  3. 새로운 서비스를 생성합니다.

Dockerfile 생성 및 컨테이너 빌드

Astro 사이트를 Cloud Run에 배포하려면 먼저 컨테이너를 빌드하는 데 사용할 Dockerfile을 만들어야 합니다. 레시피 섹션에서 Astro와 함께 Docker를 사용하는 방법에 대한 자세한 내용을 찾아보세요.

Dockerfile이 생성되면 이미지로 빌드하고 Google Cloud에 푸시합니다. 이를 수행하는 몇 가지 방법이 있습니다:

Docker를 사용하여 로컬로 빌드:

이미지를 빌드하려면 docker build 명령을 사용하고, 이미지에 태그를 지정하려면 docker tag를 사용하고, 레지스트리에 푸시하려면 docker push를 사용하세요. Google Cloud의 경우 Artifact Registry가 가장 쉬운 옵션이지만 Docker 허브를 사용할 수도 있습니다.

# 컨테이너 빌드
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, docker.io).
  • PROJECT: Google Cloud 프로젝트 ID입니다.
  • TARGET-IMAGE: 레지스트리에 저장될 때 이미지의 이름입니다.
  • TAG는 이미지와 관련된 버전입니다.

Google Cloud 문서에서 자세히 알아보세요.

다른 도구 사용:

GitHub Actions와 같이 Docker를 지원하는 CI/CD 도구를 사용할 수 있습니다.

Cloud Build를 사용하여 빌드:

Dockerfile을 로컬로 빌드하는 대신 Google Cloud에 원격으로 이미지를 빌드하도록 지시할 수 있습니다. 여기에서 Google Cloud Build 문서를 참조하세요.

컨테이너 배포

배포는 using gcloud하여 터미널에서 수동으로 처리하거나 Cloud Build 또는 기타 CI/CD 시스템을 사용하여 자동으로 처리할 수 있습니다.

:::note[공개 액세스가 필요합니까?]Cloud Run 권한 설정의 allUsers 그룹에 Cloud Run Invoker 권한을 추가하는 것을 잊지 마세요!:::

더 많은 배포 가이드

기여하기 커뮤니티 후원하기