Astro 사이트를 Google Cloud에 배포
Google Cloud는 Astro 사이트를 배포하는 데 사용할 수 있는 모든 기능을 갖춘 웹 앱 호스팅 플랫폼입니다.
배포 방법
섹션 제목: 배포 방법Cloud Storage (정적 전용)
섹션 제목: Cloud Storage (정적 전용)-
새 GCP 프로젝트를 생성하거나 이미 가지고 있는 프로젝트를 선택하세요.
-
Cloud Storage에서 새 버킷을 생성합니다.
-
이름과 기타 필수 설정을 지정합니다.
-
dist
폴더를 여기에 업로드하거나 Cloud Build를 사용하여 업로드하세요. -
allUsers
에Storage Object Viewer
라는 새 권한을 추가하여 공개 액세스를 활성화합니다. -
웹사이트 구성을 편집하여
index.html
을 엔트리포인트로 추가하고404.html
을 오류 페이지로 추가합니다.
Cloud Run (SSR 및 정적)
섹션 제목: Cloud Run (SSR 및 정적)Cloud Run은 인프라를 관리할 필요 없이 컨테이너를 실행할 수 있는 서버리스 플랫폼입니다. 정적 사이트와 SSR 사이트를 모두 배포하는 데 사용할 수 있습니다.
서비스 준비
섹션 제목: 서비스 준비-
새 GCP 프로젝트를 생성하거나 이미 가지고 있는 프로젝트를 선택하세요.
-
Cloud Run API가 활성화되어 있는지 확인하세요.
-
새로운 서비스를 생성합니다.
Dockerfile 생성 및 컨테이너 빌드
섹션 제목: Dockerfile 생성 및 컨테이너 빌드Astro 사이트를 Cloud Run에 배포하려면 먼저 컨테이너를 빌드하는 데 사용할 Dockerfile을 만들어야 합니다. 레시피 섹션에서 Astro와 함께 Docker를 사용하는 방법에 대한 자세한 내용을 찾아보세요.
Dockerfile이 생성되면 이미지로 빌드하고 Google Cloud에 푸시합니다. 이를 수행하는 몇 가지 방법이 있습니다:
Docker를 사용하여 로컬로 빌드:
이미지를 빌드하려면 docker build
명령을 사용하고, 이미지에 태그를 지정하려면 docker tag
를 사용하고, 레지스트리에 푸시하려면 docker push
를 사용하세요. Google Cloud의 경우 Artifact Registry
가 가장 쉬운 옵션이지만 Docker 허브를 사용할 수도 있습니다.
프로젝트에 맞게 위 명령에서 다음 값을 변경합니다.
SOURCE_IMAGE
: 로컬 이미지 이름 또는 이미지 ID입니다.HOSTNAME
: 레지스트리 호스트 (gcr.io
,eu.gcr.io
,asia.gcr.io
,us.gcr.io
,docker.io
).PROJECT
: Google Cloud 프로젝트 ID입니다.TARGET-IMAGE
: 레지스트리에 저장될 때 이미지의 이름입니다.TAG
는 이미지와 관련된 버전입니다.
다른 도구 사용:
GitHub Actions와 같이 Docker를 지원하는 CI/CD 도구를 사용할 수 있습니다.
Cloud Build를 사용하여 빌드:
Dockerfile을 로컬로 빌드하는 대신 Google Cloud에 원격으로 이미지를 빌드하도록 지시할 수 있습니다. 여기에서 Google Cloud Build 문서를 참조하세요.
컨테이너 배포
섹션 제목: 컨테이너 배포배포는 using gcloud
하여 터미널에서 수동으로 처리하거나 Cloud Build 또는 기타 CI/CD 시스템을 사용하여 자동으로 처리할 수 있습니다.
Cloud Run 권한 설정의 allUsers
그룹에 Cloud Run Invoker
권한을 추가하는 것을 잊지 마세요!