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

프로덕션 데이터베이스 설정하기

원문 보기 위키 갱신

로컬 개발 동안 Backstage는 빠른 인메모리 데이터베이스인 SQLite를 사용해요. SQLite는 재시작 후에도 데이터를 유지하지 않으며 다중 인스턴스 배포용으로 설계되지 않았으므로, 프로덕션에는 전용 데이터베이스가 필요해요. 이 글을 끝내면 PostgreSQL을 Backstage 데이터베이스로 구성하게 될 거예요.

출처: 문서

본문

대상 독자: 관리자

요약

로컬 개발 동안 Backstage는 빠른 인메모리 데이터베이스인 SQLite를 사용해요. SQLite는 재시작 후에도 데이터를 유지하지 않으며 다중 인스턴스 배포용으로 설계되지 않았으므로, 프로덕션에는 전용 데이터베이스가 필요해요.

이 페이지가 끝나면 PostgreSQL을 Backstage 데이터베이스로 구성하게 될 거예요.

왜 PostgreSQL인가요?

PostgreSQL은 Backstage에 권장되는 프로덕션 데이터베이스예요. 동시 연결을 잘 처리하고, Backstage 플러그인이 사용하는 쿼리 패턴을 지원하며, 모든 주요 클라우드 프로바이더에서 관리형 서비스로 제공돼요.

PostgreSQL을 실행하는 몇 가지 옵션:

  • 관리형 서비스: Amazon RDS, Google Cloud SQL, Azure Database for PostgreSQL 또는 유사한 서비스.

  • 자체 호스팅: 컨테이너 또는 전용 서버에서 PostgreSQL 실행.

  • Kubernetes: Backstage와 함께 PostgreSQL 배포(시작하는 데 유용하지만, 프로덕션에는 관리형 서비스가 선호됨).

PostgreSQL을 사용하도록 Backstage 구성하기

app-config.production.yaml을 열고 데이터베이스 구성을 추가해요:

app-config.production.yaml

backend:  database:    client: pg    connection:      host: ${POSTGRES_HOST}      port: ${POSTGRES_PORT}      user: ${POSTGRES_USER}      password: ${POSTGRES_PASSWORD}

${...} 구문은 환경 변수를 참조해서 구성 파일 밖에 시크릿을 둡니다. 배포 환경에서 이 변수들을 설정해요.

구성 파일에 데이터베이스 자격 증명을 하드코딩하지 마세요. 환경 변수나 배포 플랫폼이 제공하는 시크릿 관리자를 사용해요.

선택 사항: SSL 연결

데이터베이스 프로바이더가 SSL을 요구한다면(대부분의 관리형 서비스가 그렇음) SSL 구성을 추가해요:

app-config.production.yaml

backend:  database:    client: pg    connection:      host: ${POSTGRES_HOST}      port: ${POSTGRES_PORT}      user: ${POSTGRES_USER}      password: ${POSTGRES_PASSWORD}      ssl:        require: true        rejectUnauthorized: true

프로바이더가 사용자 지정 인증 기관을 사용한다면 CA 인증서 파일을 참조할 수 있어요:

ssl:  ca:    $file: /path/to/ca/server.crt

Backstage가 데이터베이스를 사용하는 방식

각 플러그인은 자체 격리된 데이터베이스 스키마를 가져요. 백엔드가 시작될 때 마이그레이션이 자동으로 실행되므로 수동 마이그레이션 단계를 실행할 필요가 없어요. 데이터베이스는 인스턴스 간의 상태와 작업 분배를 조정하는데, 이것이 나중에 수평 확장을 가능하게 만드는 요인이에요.

더 읽어보기

단계별 PostgreSQL 설치 지침과 클라우드별 설정 가이드는 데이터베이스 구성 가이드를 참고하세요.

다음 단계

데이터베이스가 준비되었으니, 다음 단계는 게스트 로그인을 실제 인증 프로바이더로 교체하는 거예요.

  • 인증 구성하기

더 알아보기 (Learn more)