솔루션

테넌트마다 분리된 데이터베이스

고객끼리 테이블을 공유하면 안 된다면 테넌트마다 전용 Relyt One 프로젝트를 제공하세요. 프로젝트는 각각 독립된 PostgreSQL 데이터베이스로, 전용 스토리지, 컴퓨트, 자격 증명을 가지며 백엔드에서 API를 한 번 호출해 만들 수 있습니다.

작동 방식

  1. 01

    테넌트가 가입하면 프로젝트 만들기

    백엔드가 API 키로 Open API를 호출하면서 리전과, 테넌트 데이터베이스의 소유자 역할에 쓸 비밀번호를 전달합니다. 프로젝트는 기본 브랜치와 기본 컴퓨트를 가진 상태로 시작합니다.

    curl -X POST "https://relyt.one/api/v1/projects" \
      -H "Authorization: Bearer $RELYT_API_KEY" \
      -H "Content-Type: application/json" \
      -d "{\"name\":\"tenant-$TENANT_ID\",\"orgId\":\"$ORG_ID\",\"region\":\"$REGION_ID\",\"password\":\"$TENANT_DB_PASSWORD\"}"
  2. 02

    테넌트의 연결 정보 저장하기

    상태가 READY가 될 때까지 프로젝트의 컴퓨트 목록을 조회한 다음 host를 테넌트 레코드와 함께 저장하세요. 스키마 마이그레이션을 실행하고 표준 PostgreSQL 드라이버로 연결하면 됩니다.

    curl "https://relyt.one/api/v1/projects/$PROJECT_ID/computes" \
      -H "Authorization: Bearer $RELYT_API_KEY"
  3. 03

    테넌트가 떠나면 프로젝트 삭제하기

    프로젝트를 삭제하면 해당 컴퓨트가 삭제되고 프로젝트와 브랜치는 삭제됨으로 표시됩니다.

    curl -X DELETE "https://relyt.one/api/v1/projects/$PROJECT_ID" \
      -H "Authorization: Bearer $RELYT_API_KEY"

지금 바로 쓸 수 있는 기능

  • 테넌트 간에 아무것도 공유하지 않음

    테넌트마다 데이터베이스, 역할, 비밀번호, 연결 문자열이 따로 있습니다. 한 테넌트 데이터베이스의 긴 쿼리, 잠금, 실패한 마이그레이션은 그 데이터베이스 안에만 머뭅니다.

  • 테넌트별 컴퓨트

    프로젝트는 각각 전용 컴퓨트에서 실행되며 크기는 CU 단위입니다(1 CU = 1 vCPU + 4 GB RAM). 테넌트가 유휴 상태가 되면 그 컴퓨트는 일시 중지되었다가 다음 연결 시 다시 시작될 수 있습니다.

  • 테넌트 하나만 브랜치하기

    모든 테넌트 프로젝트가 브랜치를 지원하므로, 실제로 실행하기 전에 한 테넌트의 데이터를 쓰기 시 복사 방식으로 분기해 마이그레이션을 시험해 볼 수 있습니다.

  • 처음부터 끝까지 자동화

    REST Open API로 프로젝트를 만들고, 조회하고, 삭제할 수 있습니다. 첫 번째 생성 요청이 아직 처리 중일 때 같은 요청을 다시 보내면 프로젝트가 하나 더 생기지 않고 202가 반환됩니다.

알아 둘 점

  • 무료 요금제에서는 프로젝트를 최대 5개까지 만들 수 있으므로, 현재 테넌트마다 프로젝트 하나를 쓰는 방식은 테넌트 수가 적을 때 적합합니다. 요금제 한도를 넘어 프로젝트를 만들면 403이 반환됩니다.
  • Relyt One은 요청을 테넌트별로 라우팅해 주지 않습니다. 각 테넌트와 연결 정보의 대응 관계는 앱에서 관리하세요.

다른 솔루션

무료 요금제로 사용해 보세요.

GitHub 또는 Google로 로그인하고 프로젝트와 API 키를 만든 다음 위의 호출을 실행하세요. 신용카드는 필요하지 않습니다.