Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

사이트의 라이브 및 미리 보기 채널, 릴리스 및 버전 관리

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Firebase 호스팅은 Firebase 콘솔과 Firebase CLI를 통해 호스팅 사이트의 채널, 릴리스 및 버전을 관리하는 도구를 제공합니다.

호스팅 인프라 개요

호스팅 인프라를 이해하면 이 페이지에 설명된 관리 옵션을 이해하는 데 도움이 됩니다.

모든 Firebase 프로젝트에는 모든 프로젝트 리소스(데이터베이스, 인증, 기능 등)에 액세스할 수 있는 기본 호스팅 사이트 가 있습니다. 사이트에는 하나 이상의 채널 이 포함되며, 여기서 각 채널은 특정 콘텐츠 및 호스팅 구성을 제공하는 URL과 연결됩니다.

Firebase 호스팅 계층 구조의 이미지

모든 호스팅 사이트에는 (1) 사이트의 Firebase 프로비저닝 하위 도메인( SITE_ID .web.appSITE_ID .firebaseapp.com ) 및 (2) 연결된 맞춤 도메인 에 콘텐츠와 호스팅 구성을 제공하는 "라이브" 채널이 있습니다. 또한 선택적으로 공유 가능한 임시 "미리보기 URL"( SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app )에서 자체 콘텐츠 및 구성을 제공하는 "미리보기" 채널을 만들 수 있습니다.

각 채널에서 제공하는 콘텐츠 및 구성은 고유 식별자가 있는 버전 개체로 패키징됩니다. 사이트에 배포할 때 Firebase는 특정 버전을 가리키는 릴리스 객체를 생성합니다. 릴리스에는 배포한 사람 및 배포한 시기와 같은 배포에 대한 메타데이터가 포함되어 있습니다.

Firebase 프로젝트의 호스팅 대시보드 에서 출시 기록 테이블에서 라이브 채널 출시의 전체 기록을 볼 수 있습니다. 호스팅 사이트가 여러 개인 경우 원하는 사이트의 보기 를 클릭하여 릴리스 내역을 확인합니다. 미리보기 채널이 있는 경우 호스팅 대시보드에도 표시됩니다.

채널 설정 관리

사이트의 각 채널에 대해 설정을 제어할 수 있습니다. 채널 만료와 같은 일부 설정은 미리보기 채널에만 적용됩니다.

보관할 릴리스 수 제한

채널에 배포하고 릴리스를 만들 때마다 호스팅은 프로젝트의 호스팅 스토리지에 이전 릴리스와 연결된 버전을 유지합니다. 라이브 및 미리 보기 채널 모두에서 프로젝트의 각 채널 에 대해 유지할 릴리스 수를 설정할 수 있습니다.

  • 호스팅이 이전 릴리스를 유지하는 이유는 무엇입니까?
    라이브 채널의 경우 이전 릴리스를 유지하면 필요한 경우 사이트의 이전 버전으로 롤백 할 수 있습니다. 미리보기 채널의 경우 아직 롤백할 수 없습니다.

  • 유지할 릴리스 수를 제한하는 이유는 무엇입니까?
    이 기능은 이전 릴리스의 콘텐츠가 이 스토리지에 보관되므로 프로젝트의 호스팅 스토리지 사용 수준을 제어하는 ​​데 도움이 될 수 있습니다. 콘솔의 스토리지 에서 호스팅 스토리지를 모니터링할 수 있습니다.

  • 유지하도록 릴리스를 제한하면 어떻게 됩니까?
    보관할 릴리스에 대한 제한을 설정 하면 가장 오래된 릴리스부터 시작 하여 설정된 제한을 초과하는 모든 릴리스의 콘텐츠가 삭제되도록 예약됩니다.

채널의 출시 저장 한도를 설정하는 방법은 다음과 같습니다.

  1. Firebase 콘솔 에서 릴리스 스토리지 설정 대화상자에 액세스합니다.

    • 라이브 채널의 경우
      사이트의 릴리스 기록 테이블에서 를 클릭한 다음 릴리스 스토리지 설정 을 선택합니다.

    • 모든 미리보기 채널의 경우
      미리보기 채널 행에서 를 클릭한 다음 채널 설정 을 선택합니다.

  2. 유지하려는 릴리스 수를 입력한 다음 저장 을 클릭합니다.

미리보기 채널 만료 설정

기본적으로 미리보기 채널은 생성일로부터 7일 후에 만료되지만 사이트의 라이브 채널은 만료되지 않습니다.

미리 보기 채널이 만료되면 해당 릴리스 및 관련 버전과 함께 채널이 24시간 이내에 삭제되도록 예약됩니다. 연결된 미리보기 URL도 비활성화됩니다. 이 버전 삭제의 예외는 버전이 다른 릴리스와 연결된 경우입니다(예를 들어, 동일한 사이트 내의 한 채널에서 다른 채널로 버전을 복제하는 경우).

호스팅은 채널 만료를 제어하는 ​​두 가지 방법을 지원합니다.

  • Firebase 콘솔
    미리보기 채널 행에서 를 클릭한 다음 채널 설정 을 선택합니다. 만료 날짜와 시간을 입력합니다.

  • Firebase CLI
    미리 보기 채널에 배포할 때 --expires DURATION 플래그를 전달합니다. 예를 들면 다음과 같습니다.

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    만료 날짜는 배포 날짜로부터 최대 30일입니다. 시간에는 h , 일에는 d , 주에는 w 를 사용합니다(예: 각각 12h , 7d , 2w ).

한 채널에서 다른 채널로 버전 복제

한 채널에서 다른 채널로 배포된 버전을 복제할 수 있습니다. 라이브 또는 미리보기 채널, 호스팅 사이트 또는 Firebase 프로젝트 전체에서 복제할 수 있습니다.

복제 명령은 또한 "대상" 채널에 배포 되어 복제된 호스팅 콘텐츠 및 구성이 "대상" 채널의 연결된 URL에서 자동으로 제공됩니다.

이 기능은 버전 추적에 유용하거나 다른 채널에서 보거나 테스트한 정확한 콘텐츠를 배포하고 있다고 확신할 때 유용합니다. 여기 몇 가지 예가 있어요.

  • "QA" 미리보기 채널에서 사이트의 라이브 채널로 복제(라이브 시작!)

  • 사이트의 라이브 채널에서 "디버그" 미리보기 채널로 복제(예: 롤백 전)

  • "스테이징" Firebase 프로젝트의 채널에서 "프로덕트" Firebase 프로젝트의 미리보기 채널로 복제

버전을 복제하려면 아무 디렉터리에서나 다음 명령을 실행합니다.

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

각 자리 표시자를 다음으로 바꿉니다.

  • SOURCE_SITE_IDTARGET_SITE_ID : 채널이 포함된 호스팅 사이트의 ID입니다.

    • 기본 호스팅 사이트의 경우 Firebase 프로젝트 ID를 사용합니다.
    • 동일한 Firebase 프로젝트 또는 다른 Firebase 프로젝트에 있는 호스팅 사이트를 지정할 수 있습니다.
  • SOURCE_CHANNEL_IDTARGET_CHANNEL_ID : 채널의 식별자입니다.

    • 라이브 채널의 경우 live 를 채널 ID로 사용합니다.
    • 지정된 "대상" 채널이 아직 존재하지 않는 경우 이 명령은 배포하기 전에 채널을 만듭니다.

사이트의 이전 버전으로 롤백

사이트 라이브 채널의 이전 버전을 제공하도록 롤백할 수 있습니다. 이 작업은 현재 릴리스에 문제가 있고 사이트의 알려진 작동 버전을 제공하기 위해 롤백하려는 경우에 유용합니다. 또는 귀하의 사이트에서 휴일이나 특별 이벤트를 위한 임시 콘텐츠를 제공했지만 지금은 "일반" 콘텐츠를 제공하기 위해 롤백하려고 할 수 있습니다.

롤백하면 이전 릴리스와 동일한 버전의 콘텐츠를 제공하는 새 릴리스를 만들 수 있습니다. 릴리스 기록 테이블에서 두 릴리스 모두 동일한 버전 식별자를 나열합니다.

롤백하는 방법은 다음과 같습니다.

  1. Firebase 콘솔 의 사이트에 대한 출시 내역 표에서 롤백하려는 이전 출시 항목 위로 마우스를 가져갑니다.

  2. 를 클릭한 다음 롤백 을 선택합니다.

수동으로 릴리스 삭제

프로젝트의 호스팅 스토리지 를 확보하려면 라이브 채널에서 릴리스를 수동으로 삭제해야 할 수 있습니다. 라이브 사이트에서 현재 제공 중인 릴리스가 아닌 이전 릴리스만 삭제할 수 있습니다.

릴리스를 삭제하면 실제로는 24시간 이내에 삭제되도록 예약된 해당 콘텐츠가 삭제됩니다. 릴리스 개체 자체는 메타데이터(배포된 사람 및 배포된 시기)를 계속 볼 수 있도록 유지됩니다.

릴리스를 삭제하는 방법은 다음과 같습니다.

  1. Firebase 콘솔 의 사이트에 대한 출시 내역 표에서 삭제하려는 이전 출시 항목 위로 마우스를 가져갑니다.

  2. 를 클릭한 다음 삭제 를 선택합니다.

미리보기 채널을 수동으로 삭제

미리보기 채널은 삭제할 수 있지만 사이트의 라이브 채널은 삭제할 수 없습니다.

미리 보기 채널을 삭제하면 해당 릴리스 및 관련 버전과 함께 채널이 24시간 이내에 삭제되도록 예약됩니다. 연결된 미리보기 URL도 비활성화됩니다. 버전 삭제에 대한 예외는 버전이 다른 릴리스와 연결된 경우입니다(예: 동일한 사이트 내의 한 채널에서 다른 채널로 버전을 복제하는 경우).

호스팅은 미리보기 채널을 삭제하는 두 가지 방법을 지원합니다.

  • Firebase 콘솔
    미리보기 채널 행에서 를 클릭한 다음 채널 삭제 를 선택합니다. 삭제를 확인합니다.

  • Firebase CLI
    임의의 디렉토리에서 다음 명령을 실행합니다.

    firebase hosting:channel:delete CHANNEL_ID

채널 미리보기 및 복제를 위한 CLI 명령

미리보기 채널에 대한 명령

여러 호스팅 사이트 가 있는 경우 미리보기 채널에 대한 모든 명령은 배포 대상을 지원합니다.

명령 설명
firebase hosting:channel:create CHANNEL_ID

지정된 CHANNEL_ID 를 사용하여 기본 호스팅 사이트에 새 미리보기 채널을 만듭니다.

이 명령은 채널에 배포되지 않습니다.

firebase hosting:channel:delete CHANNEL_ID

지정된 미리보기 채널을 삭제합니다.

사이트의 라이브 채널은 삭제할 수 없습니다.

firebase hosting:channel:deploy CHANNEL_ID

호스팅 콘텐츠 및 구성을 지정된 미리보기 채널에 배포합니다.

미리보기 채널이 아직 존재하지 않는 경우 이 명령은 채널에 배포하기 전에 기본 호스팅 사이트에 채널을 만듭니다.

firebase hosting:channel:list 기본 호스팅 사이트의 모든 채널("라이브" 채널 포함)을 나열합니다.
firebase hosting:channel:open CHANNEL_ID 지정된 채널의 URL에 대한 브라우저를 열거나 브라우저에서 열 수 없는 경우 URL을 반환합니다.

버전 복제 명령

명령 설명
firebase hosting:clone \
SOURCE_SITE_ID : SOURCE_CHANNEL_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

지정된 "소스" 채널에서 가장 최근에 배포된 버전을 지정된 "대상" 채널로 복제합니다.

이 명령은 지정된 "대상" 채널에도 배포합니다. "대상" 채널이 아직 존재하지 않는 경우 이 명령은 채널에 배포하기 전에 "대상" 호스팅 사이트에 새 미리 보기 채널을 만듭니다.

firebase hosting:clone \
SOURCE_SITE_ID :@ VERSION_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

지정된 "대상" 채널에 지정된 버전을 복제합니다.

이 명령은 지정된 "대상" 채널에도 배포합니다. "대상" 채널이 아직 존재하지 않는 경우 이 명령은 채널에 배포하기 전에 "대상" 호스팅 사이트에 새 미리 보기 채널을 만듭니다.

Firebase 콘솔의 호스팅 대시보드 에서 VERSION_ID 를 찾을 수 있습니다.