본문 바로가기
WIKI 기술 지식 베이스

프로덕션에 배포하기

원문 보기 위키 갱신

이제 Docker 이미지, 데이터베이스, 인증이 구성되었어요. 이제 배포할 차례예요. Backstage를 배포하는 가장 좋은 방법은 조직에서 다른 소프트웨어를 배포하는 것과 같은 방식이에요. Backstage는 외부 PostgreSQL 데이터베이스가 뒷받침하는 스테이트리스 Node.js 애플리케이션으로 실행되도록 설계되어, 특별한 도구 없이도 대부분의 기존 배포 파이프라인에 맞아요.

출처: 문서

본문

대상 독자: 관리자

요약

Docker 이미지, 데이터베이스, 인증이 구성되었어요. 이제 배포할 차례예요. Backstage를 배포하는 가장 좋은 방법은 조직에서 다른 소프트웨어를 배포하는 것과 같은 방식이에요. Backstage는 외부 PostgreSQL 데이터베이스가 뒷받침하는 스테이트리스 Node.js 애플리케이션으로 실행되도록 설계되어, 특별한 도구 없이도 대부분의 기존 배포 파이프라인에 맞아요.

이 페이지는 플랫폼과 무관하게 모든 Backstage 배포가 필요로 하는 것을 설명하고, 특정 대상을 위한 참조 가이드를 안내해요.

모든 배포에 필요한 것

어떤 플랫폼을 선택하든 배포는 다음을 처리해야 해요:

  • 저장소에서 빌드되어 런타임이 가져올 수 있는 레지스트리에 푸시된 컨테이너 이미지. Docker 이미지 빌드하기에서 빌드한 이미지가 배포되는 아티팩트예요.

  • 실행 중인 컨테이너에 환경 변수나 마운트된 파일로 전달되는 구성과 시크릿. 여기에는 데이터베이스 자격 증명, 인증 프로바이더 client secrets, 통합 토큰이 포함돼요.

  • 실행 중인 인스턴스가 이전 단계의 자격 증명을 사용해 연결할 수 있는 접근 가능한 PostgreSQL 데이터베이스. 자세한 내용은 데이터베이스 구성하기를 참고하세요.

  • 백엔드를 HTTPS로 사용자에게 노출하는 포트 7007의 네트워크 진입점 — 일반적으로 인그레스, 로드 밸런서 또는 리버스 프록시.

  • 컨테이너가 응답을 멈추면 재시작하고, 새 이미지를 게시할 때 새 버전을 배포할 수 있는 헬스 체크가 되는 런타임.

  • app-config.production.yaml의 app.baseUrl과 backend.baseUrl을 사용자가 Backstage에 접근할 공개 URL로 설정. 인증 프로바이더와 프론트엔드는 이것이 실제 진입점과 일치하는지에 의존해요:

app-config.production.yaml

app:  baseUrl: https://backstage.example.combackend:  baseUrl: https://backstage.example.com  listen:    port: 7007

배포 대상 선택하기

Backstage는 Node.js 컨테이너가 실행될 수 있는 어디든 실행돼요. 조직이 이미 운영하는 옵션과 일치하는 것을 선택하세요. Backstage를 실행하기 위해 새 인프라를 도입할 필요는 없어요.

| | 대상 | 적합한 경우... | Kubernetes | 조직이 이미 Kubernetes에서 서비스를 실행할 때. | Amazon ECS / Fargate | AWS에 있고 관리형 컨테이너 스케줄링을 선호할 때. | Google Cloud Run | GCP에서 완전 관리형, 요청 기반 컨테이너 런타임을 원할 때. | Azure Container Apps | Azure에 있고 관리형 컨테이너 플랫폼을 원할 때. | 전통적 VM 또는 PaaS | 리버스 프록시 뒤에서 Node.js 프로세스를 직접 실행하는 것을 선호할 때. | Docker Compose | 소규모 설치나 개념 증명을 실행할 때.

Backstage는 Kubernetes 경로에 대한 참조 가이드를 유지보수하는데, Kubernetes로 배포하기에서 네임스페이스, 시크릿, 배포, 서비스를 다루고 클러스터 안에서 PostgreSQL에 연결하는 방법을 안내해요.

다른 플랫폼의 경우 Backstage 저장소의 커뮤니티 기여 배포 가이드가 ECS, Cloud Run, Docker Compose 같은 대상을 다루며, 배포 개요는 이들 가이드가 공유하는 기본 모델을 설명해요.

운영 고려 사항

모든 배포에 적용되는 몇 가지 운영 세부 사항이 있고, 사용자에게 Backstage를 열기 전에 제대로 하는 것이 좋아요:

  • 로드 밸런서 뒤에서 여러 복제본을 실행해요. Backstage는 스테이트리스이므로 여러 인스턴스가 같은 PostgreSQL 데이터베이스에 대해 트래픽을 서빙할 수 있어요. 이에 대한 자세한 내용은 Backstage 확장하기에서 다룰게요.

  • 시크릿을 안전하게 저장해요. 컨테이너 플랫폼은 일반적으로 Kubernetes Secrets, AWS Secrets Manager, GCP Secret Manager, Azure Key Vault 같은 시크릿 프리미티브를 제공해요. 자격 증명을 커밋하는 대신 환경 변수로 구성에서 참조해요.

  • 헬스 체크를 활성화해요. 플랫폼의 readiness/liveness 프로브를 Backstage 헬스 엔드포인트에 연결해서 비정상 인스턴스가 로테이션에서 제외되고 자동으로 재시작되도록 해요.

  • HTTPS 뒤에서 실행해요. 인그레스, 로드 밸런서 또는 리버스 프록시에서 TLS를 종료하고, 공개 URL이 app.baseUrl과 backend.baseUrl로 설정된 값과 일치하는지 확인해요.

기업 프록시 뒤에서 Backstage를 실행해야 한다면 기업 프록시 가이드를 참고하세요.

다음 단계

Backstage 인스턴스가 배포되었어요. 이제 환경 간에 구성을 효과적으로 관리하는 방법을 살펴볼게요.

  • 구성 우선 개발

더 알아보기 (Learn more)