코드베이스에서 여러 환경 배포

동일한 코드베이스에서 각각 약간 다른 구성을 사용하여 여러 환경을 배포하는 것이 일반적입니다. 예를 들어 스테이징 환경에 더 적은 CPU와 RAM을 할당하거나 프로덕션 환경에서 최소 1개의 인스턴스를 활성 상태로 유지하고 요청을 처리할 수 있도록 할 수 있습니다.

환경에 대한 자세한 내용은 환경 개요Firebase 프로젝트 설정을 위한 일반적인 권장사항을 참조하세요.

기본 요건

0단계: 프로덕션 git 브랜치 설정

main 브랜치에서 프로덕션 환경을 배포하려면 다음 단계로 건너뜁니다. 다른 브랜치에서 프로덕션을 배포하려는 경우 예를 들어 production는 먼저 GitHub에서 만들어야 합니다.

GitHub UI로 프로덕션 브랜치를 만들려면 저장소 내에서 브랜치 만들기 및 삭제를 참고하세요.

로컬에서 프로덕션 브랜치를 만들려면 다음 안내를 따르세요.

$ git checkout -b production
$ git push origin production:production

1단계: 프로덕션 apphosting.yaml 구성

프로덕션에서 항상 최소 1개의 머신을 실행하고 프로덕션 관련 환경 변수가 있는지 확인한다고 가정해 보겠습니다. 다음과 같이 프로젝트의 루트에 apphosting.yaml 파일을 만들어 구성합니다.

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 1

env:
  - variable: STORAGE_BUCKET
    value: <production Cloud Storage bucket name>

지원되는 설정의 전체 목록을 보려면 앱 호스팅 구성을 참고하세요.

apphosting.yaml를 수정한 후 GitHub 저장소에 푸시합니다.

$ git add apphosting.yaml
$ git commit -m "Added production App Hosting backend configuration."
$ git push origin

2단계: 프로덕션에 코드베이스 배포

프로덕션 git 브랜치가 구성되면 새로운 프로덕션 App Hosting 백엔드를 만들 수 있습니다. 자세한 내용은 App Hosting 시작하기를 참고하세요.

Firebase Console에서 새 백엔드를 만들려면 https://console.firebase.google.com/project/_/apphosting으로 이동하여 시작합니다.

로컬에서 만들려면 먼저 Firebase CLI를 설치한 후 다음을 실행해야 합니다.

firebase apphosting:backends:create --project <replace with your PRODUCTION project ID>

이 명령어가 성공하면 프로덕션 백엔드가 활성화되고 프로덕션 브랜치에 대한 새 커밋이 App Hosting에서 자동으로 빌드 및 배포됩니다.

3단계: 스테이징 git 브랜치 설정

위와 동일한 단계에 따라 GitHub에서 스테이징 브랜치를 만듭니다.

$ git checkout -b staging
$ git push origin staging:staging

4단계: 스테이징 apphosting.yaml 구성

스테이징 브랜치에 이미 프로덕션 apphosting.yaml의 복사본이 있어야 합니다. 스테이징 환경이 사용되지 않을 때 App Hosting에서 스테이징 환경을 중지하고 STORAGE_BUCKET 환경 변수에 다른 값을 설정할 수 있도록 수정해 보겠습니다.

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 0

env:
  - variable: STORAGE_BUCKET
    value: <some other staging Cloud Storage bucket name>

수정을 완료한 후 파일을 스테이징 git 브랜치로 푸시합니다.

$ git add apphosting.yaml
$ git commit -m "Added staging App Hosting backend configuration."
$ git push origin

5단계: 스테이징에 코드베이스 배포

스테이징 git 브랜치가 구성되면 위와 동일한 단계에 따라 코드베이스를 스테이징에 배포할 수 있습니다.

firebase apphosting:backends:create --project <replace with your STAGING project ID>

이 단계를 완료하면 동일한 코드베이스로 구동되는 2개의 App Hosting 백엔드(프로덕션용 및 스테이징용)가 만들어지며 각 백엔드는 서로 다른 Firebase 프로젝트에 있습니다.

다음 단계