여러 계정 간 복제와 장애 조치 소개

여러 계정 간 복제와 장애 조치 소개 (Introduction to replication and failover across multiple accounts)

이 기능은 한 조직 안에서 소스(source) 계정의 객체를 하나 이상의 타깃(target) 계정으로 복제할 수 있게 해줘요. 각 타깃 계정에 복제된 객체는 보조(secondary) 객체라고 부르고, 소스 계정의 기본(primary) 객체의 복제본 역할을 해요. 복제는 리전(region) 간과 클라우드 플랫폼(cloud platform) 간에도 지원돼요.

출처: Snowflake 문서 - Introduction to replication and failover across multiple accounts

본문

Standard 및 Business Critical 기능

  • 데이터베이스와 공유(share) 복제는 모든 계정에서 사용할 수 있어요.
  • 그 외 계정 객체의 복제와 장애 조치/복구(failover/failback)에는 Business Critical Edition 이상이 필요해요.
  • 업그레이드 문의는 Snowflake Support에 연락해요.

복제와 장애 조치/복구를 위한 리전 지원

Amazon Web Services, Google Cloud Platform, Microsoft Azure의 모든 Snowflake 리전은 복제를 지원해요.

리전 그룹(region group) 안의 모든 리전 간에는 복제할 수 있어요. 서로 다른 리전 그룹에 속한 리전 간에 복제하려면(예: Snowflake 상용 리전에서 정부 또는 Virtual Private Snowflake 리전으로) Snowflake Support에 연락해 접근을 활성화해야 해요.

복제 그룹과 장애 조치 그룹

복제 그룹(replication group) 은 소스 계정에서 하나의 단위로 한 개 이상의 타깃 계정에 복제되는 객체들의 정의된 모음이에요. 복제 그룹은 복제된 객체에 대해 읽기 전용 접근을 제공해요.

장애 조치 그룹(failover group) 은 장애 조치도 할 수 있는 복제 그룹이에요. 타깃 계정의 보조 장애 조치 그룹은 복제된 객체에 읽기 전용 접근을 제공해요. 보조 장애 조치 그룹이 기본 장애 조치 그룹으로 승격되면 읽기-쓰기 접근이 가능해져요. 장애 조치 그룹의 허용 계정(ALLOWED_ACCOUNTS) 목록에 지정된 모든 타깃 계정을 기본 장애 조치 그룹으로 승격할 수 있어요.

복제 그룹과 장애 조치 그룹은 타깃 계정의 객체에 대해 특정 시점(point-in-time) 일관성을 제공해요. 복제 그룹이나 장애 조치 그룹에 포함할 수 있는 객체는 아래 복제된 객체 항목에 나열돼요.

복제 기능 / 에디션 매트릭스

일부 복제 기능은 Business Critical Edition 이상에서만 사용할 수 있다는 점에 유의해요. 다음 표는 각 Snowflake 에디션에서 복제 기능을 사용할 수 있는지 보여줘요.

기능 Standard Enterprise Business Critical VPS
데이터베이스 복제 ✔ ✔ ✔ ✔
공유 복제 ✔ ✔ ✔ ✔
복제 그룹 ✔ ✔ ✔ ✔
계정 객체(데이터베이스·공유 제외) 복제 ✔ ✔
장애 조치 그룹 ✔ ✔
Tri-Secret Secure로 보호되는 데이터 ✔ ✔
데이터셋(Dataset) 복제 ✔ ✔
Cortex Search Service 복제 ✔ ✔

복제된 객체

이 기능은 아래 나열된 객체의 복제를 지원해요. 데이터베이스 복제와 공유 복제는 모든 에디션에서 사용할 수 있고, 그 외 모든 객체의 복제는 Business Critical Edition 이상에서만 사용할 수 있어요. 기능 가용성에 대한 자세한 내용은 복제 기능 / 에디션 매트릭스를 참고해요.

객체 유형 또는 기능 복제 비고
데이터베이스 ✔ 일부 데이터베이스의 복제는 지원되지 않거나 새로고침(refresh) 작업이 실패할 수 있어요. 자세한 내용은 복제의 현재 제한 사항을 참고해요.
외부 볼륨(External volumes) ✔ 장애 조치 그룹 복제에는 Business Critical Edition 이상이 필요해요. 복제 그룹 복제는 모든 계정에서 사용할 수 있어요.
통합(Integrations) 보안, API, 알림, 스토리지, 외부 접근 ✔ 추가 주의사항과 지원 유형에 대한 자세한 내용은 통합 복제를 참고해요. Business Critical Edition 이상이 필요해요.
리스팅(Listings) ✔ Business Critical Edition 이상이 필요해요.
네트워크 정책(Network policies) ✔ Business Critical Edition 이상이 필요해요.
파라미터(계정 수준) ✔ Business Critical Edition 이상이 필요해요.
프로필(Profiles) ✔ Business Critical Edition 이상이 필요해요.
사용자를 위한 프로그래밍 방식 접근 토큰 ✔ 사용자와 역할이 복제되면 사용자의 프로그래밍 방식 접근 토큰도 자동으로 복제돼요.
리소스 모니터(Resource monitors) ✔ 그룹에 사용자(users) 를 포함하면 비관리자 사용자에 대한 리소스 모니터 알림이 복제되지만, 계정 관리자 알림 설정은 복제되지 않아요. 자세한 내용은 리소스 모니터 이메일 알림 설정의 복제를 참고해요. Business Critical Edition 이상이 필요해요.
역할(Roles) ✔ 계정 역할과 데이터베이스 역할을 포함해요. 역할에 부여된 권한과 역할에 부여된 역할(즉 역할 계층 구조)을 포함해요. 사용자와 역할이 복제되면 사용자에게 부여된 역할도 복제돼요. SNOWFLAKE 데이터베이스의 데이터베이스 역할과 애플리케이션 역할을 계정 역할에 부여한 것, 그리고 SNOWFLAKE 데이터베이스에 대한 IMPORTED PRIVILEGES 부여를 포함해요. 자세한 내용은 역할 복제를 참고해요. REPLICATE 및 FAILOVER 권한은 복제되지 않아요. Business Critical Edition 이상이 필요해요.
공유(Shares) ✔ 인바운드 공유(inbound shares, 프로바이더로부터의 공유) 복제는 지원되지 않아요.
사용자(Users) ✔ Business Critical Edition 이상이 필요해요.
웨어하우스(Warehouses) ✔ Business Critical Edition 이상이 필요해요. 인터랙티브 웨어하우스를 포함해요.
워크스페이스(Workspaces) ✔ Business Critical Edition 이상이 필요해요.

데이터베이스 복제

Snowflake 계정 복제는 데이터베이스 복제를 지원해요. 데이터베이스에 대한 복제에는 해당 데이터베이스에 포함된 객체가 포함돼요. 데이터베이스에 대한 새로고침 작업은 이전 새로고침 이후 해당 데이터베이스의 객체와 데이터에 대한 변경 사항을 포함해요.

역할 이 복제되면(동일하거나 다른 복제/장애 조치 그룹에서) 데이터베이스 새로고침은 보조 데이터베이스와 그 객체(스키마, 테이블, 뷰 등)에 대한 권한 부여를 계정의 역할에 동기화해요. 자세한 내용은 데이터베이스 객체에 대한 권한 부여(Grants for database objects) 를 참고해요.

일부 데이터베이스의 복제는 지원되지 않거나 새로고침 작업이 실패할 수 있어요. 자세한 내용은 복제의 현재 제한 사항을 참고해요.

복제된 데이터베이스 객체

기본 데이터베이스가 복제되면 해당 데이터베이스 객체와 데이터의 스냅샷이 보조 데이터베이스로 전송돼요. 다만 일부 데이터베이스 객체는 복제되지 않아요. 다음 표는 어떤 데이터베이스 객체가 보조 데이터베이스로 복제되는지 보여줘요.

이 객체들에 대한 구체적인 사용 정보는 복제 고려 사항(Replication considerations) 을 참고해요.

참고: 복제가 지원되지 않는 객체는 복제 중 건너뛰어지며, 장애 조치 후 타깃 계정에서 사용할 수 없어요.

객체 유형 또는 기능 복제 비고
스키마 ✔ 기본적으로 복제된 데이터베이스의 모든 스키마가 복제돼요. 장애 조치 그룹을 사용하면 데이터베이스 내에서 어떤 스키마를 복제할지 선택할 수 있어요. 자세한 내용은 장애 조치 그룹의 스키마 수준 복제를 참고해요.
테이블 영구 테이블 ✔
트랜션트 테이블 ✔
오류 테이블 ✔ 자세한 내용은 DML 오류 로깅을 참고해요.
임시 테이블
클러스터형 테이블의 자동 클러스터링 ✔
다이내믹 테이블(Dynamic tables) ✔ 자세한 내용은 다이내믹 테이블과 복제를 참고해요.
외부 테이블
하이브리드 테이블
Apache Iceberg™ 테이블 ✔ Snowflake 관리형 Iceberg 테이블만 지원돼요. Iceberg 테이블의 복제에는 외부 볼륨 복제가 필요해요. 자세한 내용은 Snowflake 관리형 Apache Iceberg™ 테이블의 복제 구성을 참고해요.
인터랙티브 테이블 ✔
테이블 제약 조건 ✔ 데이터베이스의 외래 키가 다른 데이터베이스의 기본/고유 키를 참조하는 경우는 제외돼요.
이벤트 테이블
시퀀스 ✔
뷰 뷰 ✔ 뷰가 다른 데이터베이스의 객체(예: 테이블 컬럼, 다른 뷰, UDF, 스테이지)를 참조하면 두 데이터베이스 모두 복제해야 해요.
구체화된 뷰 ✔
보안 뷰 ✔
시맨틱 뷰 ✔ 시맨틱 뷰가 다른 객체(예: 테이블, 뷰, Cortex Search Service)를 참조하면 그 객체들도 복제해야 해요.
사용자 정의 타입 ✔
파일 형식 ✔
스테이지 스테이지 ✔ 복제 그룹과 장애 조치 그룹에서만 지원돼요. 데이터베이스 복제에서는 지원되지 않아요. 자세한 내용은 스테이지, 파이프, 로드 이력 복제를 참고해요.
임시 스테이지
파이프 ✔ 복제 그룹과 장애 조치 그룹에서만 지원돼요. 데이터베이스 복제에서는 지원되지 않아요. 자세한 내용은 스테이지, 파이프, 로드 이력 복제를 참고해요.
저장 프로시저 ✔ 자세한 내용은 저장 프로시저와 UDF의 복제를 참고해요.
스트림 ✔ 자세한 내용은 스트림과 복제를 참고해요.
태스크 ✔ 자세한 내용은 태스크와 복제를 참고해요.
데이터 메트릭 함수(DMF) 데이터 품질 ✔ 자세한 내용은 DMF 복제를 참고해요.
UDF ✔ 자세한 내용은 저장 프로시저와 UDF의 복제를 참고해요.
정책 집계 정책 ✔
인증 정책 ✔
데이터 이동 정책 ✔
데이터 이동 규칙 ✔
컬럼 수준 보안(마스킹) ✔ 마스킹, 행 접근, 태그 기반 마스킹 정책에 대해서는 정책 복제 고려 사항을 참고해요.
조인 정책 ✔
비밀번호 정책 ✔
프라이버시 정책 ✔ 자세한 내용은 프라이버시 정책을 참고해요.
프로젝션 정책 ✔
행 접근 정책 ✔
세션 정책 ✔ 세션, 비밀번호, 인증 정책에 대해서는 복제와 보안 정책을 참고해요.
태그 기반 마스킹 정책 ✔
백업 정책 ✔ 백업은 모든 Snowflake 에디션에서 사용할 수 있어요. 보존 잠금(retention lock)이 있는 백업과 법적 보존(legal hold)이 있는 백업은 Business Critical Edition 이상에서 사용할 수 있어요. 업그레이드 문의는 Snowflake Support에 연락해요.
스토리지 수명 주기 정책 ✔ 정책과 아카이브 데이터의 복제에 대한 정보는 스토리지 수명 주기 정책과 복제를 참고해요.
태그 객체 태깅 ✔ 태그에 대해서는 태그와 복제를 참고해요.
알림(Alerts) ✔
시크릿(Secrets) 외부 API 인증용 시크릿 ✔ 복제 그룹과 장애 조치 그룹을 사용해 시크릿을 복제할 수 있어요. 자세한 내용은 시크릿과 복제를 참고해요.
네트워크 규칙 ✔ 네트워크 규칙을 사용하는 네트워크 정책의 복제에 대해서는 네트워크 정책 복제를 참고해요.
백업 세트 ✔ 백업은 모든 Snowflake 에디션에서 사용할 수 있어요. 보존 잠금이 있는 백업과 법적 보존이 있는 백업은 Business Critical Edition 이상에서 사용할 수 있어요. 업그레이드 문의는 Snowflake Support에 연락해요.
클래스 인스턴스 CUSTOM_CLASSIFIER ✔ CUSTOM_CLASSIFIER 클래스의 인스턴스에 대해서는 복제가 지원돼요. 다른 모든 Snowflake 클래스의 인스턴스는 복제되지 않아요. Snowflake 클래스의 전체 목록은 사용 가능한 클래스를 참고해요.
패키지 정책 Python UDF, UDTF, 저장 프로시저 ✔ 소스 계정에 패키지 정책(packages policy) 이 설정되어 있으면 계정 객체를 성공적으로 복제하려면 해당 패키지 정책을 포함하는 데이터베이스가 동일하거나 다른 복제/장애 조치 그룹에서 타깃 계정으로 복제 되어야 해요. 그렇지 않으면 댕글링 참조(dangling references) 오류로 새로고침 작업이 실패해요.
머신러닝 워크플로우용 객체 모델 ✔ 사용 정보는 Snowflake Model Registry를 참고해요.
데이터셋 ✔ 데이터셋의 복제 동작은 데이터셋 복제를 참고해요.
온라인 피처 테이블 온라인 피처 테이블은 복제나 복제(cloning)를 지원하지 않아요.
Git 리포지토리 클론 ✔ Git 리포지토리 클론의 복제 동작은 Git 리포지토리 복제를 참고해요. Git 리포지토리 클론의 사용 정보는 Snowflake에서 Git 리포지토리 사용을 참고해요.
Snowflake Notebooks ✔ Snowflake Notebooks의 복제 동작은 Notebook 복제를 참고해요.
dbt 프로젝트 ✔ 자세한 내용은 dbt 프로젝트와 복제를 참고해요.
Cortex Knowledge Extensions(CKE) ✔ CKE의 복제 동작은 Cortex Search Service 복제를 참고해요.
데이터베이스 복제와 암호화

Snowflake는 소스 계정과 타깃 계정 사이에서 메타데이터와 데이터 세트를 저장 상태(at rest)와 전송 중(in transit) 모두 보호해요. 계정 마스터 키(Account Master Key, AMK) 는 계층 키 모델(hierarchical key model) 에 표시된 대로 계정 내 키 계층을 암호화해요. Snowflake는 타깃 계정에서 Tri-Secret Secure를 활성화했는지와 관계없이 계정 마스터 키와 타깃 계정의 키 계층을 사용해 복제된 데이터를 암호화해요.

타깃 계정에서 Tri-Secret Secure를 활성화하면 Snowflake는 복합 마스터 키와 타깃 계정의 해당 키 계층을 사용해 데이터를 암호화해요. 타깃 계정은 기본적으로 Tri-Secret Secure가 활성화되어 있지 않으므로 이 기능을 직접 활성화해야 한다는 점에 유의해요.

Snowflake의 데이터 암호화에 대한 자세한 내용은 Snowflake의 종단 간 암호화 이해를 참고해요.

외부 볼륨 복제

Standard 및 Business Critical 기능

  • 복제 그룹에 외부 볼륨을 복제하는 것은 모든 계정에서 사용할 수 있어요.
  • 장애 조치 그룹에 외부 볼륨을 복제하려면 Business Critical Edition 이상이 필요해요.
  • 업그레이드 문의는 Snowflake Support에 연락해요.

Iceberg 테이블은 외부 볼륨에 의존하는데, 외부 볼륨은 외부 클라우드 스토리지에 연결하기 위한 추가 구성이 필요한 계정 수준 객체예요. Iceberg 테이블을 복제하려면 먼저 외부 볼륨의 복제를 구성해야 해요. 계정 복제는 외부 볼륨의 복제를 지원해요. 외부 볼륨과 Snowflake 관리형 Iceberg 테이블의 복제에 대한 자세한 내용은 Snowflake 관리형 Apache Iceberg™ 테이블의 복제 구성을 참고해요.

외부 볼륨에 대한 자세한 내용은 외부 볼륨(External volume) 을 참고해요.

통합 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요. 업그레이드 문의는 Snowflake Support에 연락해요.

계정 복제는 다음 기능에 대한 통합의 복제를 지원해요.

  • 다음 유형의 보안 통합: federated authentication & SSO(즉 SAML2), SCIM, Snowflake OAuth, External OAuth. 보안 통합에 대한 자세한 내용은 여러 계정 간 보안 통합 및 네트워크 정책 복제를 참고해요.
  • API 통합. API 통합을 타깃 계정에 복제한 후에는 복제된 외부 함수에 원격 서비스 접근 권한을 부여해야 해요. 자세한 내용은 API 통합에 대한 원격 서비스 업데이트를 참고해요.
  • 다음 유형의 알림 통합: TYPE = EMAIL, TYPE = QUEUE with DIRECTION = OUTBOUND, TYPE = WEBHOOK
  • 스토리지 통합. 스토리지 통합을 복제하면 타깃 계정에서 클라우드 스토리지에 대한 새 신뢰 관계를 설정해야 해요. 자세한 내용은 보조 스토리지 통합에 대한 클라우드 스토리지 접근 구성을 참고해요.
  • 외부 접근 통합. 외부 접근 통합에 대한 자세한 내용은 외부 네트워크 접근 개요를 참고해요.

리스팅 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요.

자동 충족(auto-fulfillment)이 활성화된 리스팅의 경우, 이 기능을 사용하면 해당 리스팅과 (선택적으로) 그 공유를 복제와 장애 조치를 위해 장애 조치 그룹에 추가할 수 있어요.

자세한 내용은 비즈니스 연속성 및 재해 복구에서의 리스팅 지원을 참고해요.

네트워크 정책 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요.

이 기능은 네트워크 정책의 복제를 지원해요.

자세한 내용은 여러 계정 간 보안 통합 및 네트워크 정책 복제를 참고해요.

파라미터 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요.

이 기능은 계정 수준 파라미터와 객체 파라미터의 복제를 지원해요. 객체 파라미터는 해당 객체가 복제 그룹에 포함될 때 복제돼요. 예를 들어 WAREHOUSES 가 복제되면 웨어하우스별 파라미터(예: STATEMENT_TIMEOUT_IN_SECONDS )도 복제돼요. 전체 목록은 객체 파라미터를 참고해요.

계정 수준 파라미터 복제에는 모든 계정 파라미터와 계정에 설정된 파라미터가 포함돼요. 계정 수준 파라미터(예: DATA_RETENTION_TIME_IN_DAYS )는 ACCOUNT PARAMETERS 가 복제 그룹의 객체 유형 목록에 포함될 때 복제돼요.

프로필(Profile)

Business Critical 기능

Business Critical Edition 이상이 필요해요.

이 기능은 장애 조치 그룹에 프로필 추가를 지원해요. 프로바이더 프로필에 대한 자세한 내용은 프로바이더 프로필 관리를 참고해요.

리소스 모니터 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요.

이 기능은 리소스 모니터와 리소스 모니터에 부여된 권한의 역할 복제를 지원해요. 보조 리소스 모니터는 기본 리소스 모니터와 동일한 할당량(quota) 초기화 일정을 따르게 돼요. 예를 들어 기본 리소스 모니터의 할당량이 매월 1일에 초기화되고 보조 리소스 모니터가 이번 달 15일에 처음 복제되면, 보조 모니터의 할당량도 기본과 함께 다음 달 1일에 초기화돼요.

리소스 모니터 이메일 알림 설정의 복제

리소스 모니터의 이메일 알림 설정은 리소스 모니터 복제에 포함되지 않아요. 비관리자 사용자에 대한 이메일 알림은 리소스 모니터와 함께 복제할 수 있어요. 하지만 계정 관리자 알림 설정은 현재 복제되지 않아요.

  • 복제/장애 조치 그룹의 object_types 목록에 users 와 resource monitors 가 포함되면 비관리자 사용자에 대한 알림 설정이 복제돼요.
    • 웨어하우스 수준 리소스 모니터의 notify_users 목록이 타깃 계정으로 복제돼요.
    • 비관리자 사용자에 대한 이메일 알림이 타깃 계정에서 전송돼요.
  • 복제/장애 조치 그룹의 object_types 목록에 resource monitors 는 포함되지만 users 는 포함되지 않으면 보조 웨어하우스 수준 리소스 모니터의 notify_users 목록은 비어 있어요.
  • 계정 관리자 알림 설정은 복제되지 않아요.
    • 계정 관리자는 각 계정에서 웹 인터페이스를 사용해 이메일 알림을 활성화해야 해요.
    • 계정 관리자는 소스 및/또는 타깃 계정에서 이메일 알림을 활성화한 경우 리소스 모니터 알림을 받게 돼요.

역할 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요.

이 기능은 역할 계층 구조를 포함한 역할의 복제를 지원해요. 접근 권한을 복제하려면 역할 객체를 복제해야 해요. 복제된 접근 권한은 아래 역할과 권한 부여의 복제에 나열돼 있어요.

복제/장애 조치 그룹에 roles 를 포함하면 Snowflake는 SNOWFLAKE 데이터베이스에 대한 다음 권한 부여를 타깃 계정의 계정 역할로도 복제해요. SNOWFLAKE 데이터베이스는 데이터베이스 역할과 애플리케이션 역할을 모두 포함해요.

  • SNOWFLAKE 데이터베이스의 데이터베이스 역할을 계정 역할에 부여.
  • SNOWFLAKE 데이터베이스의 애플리케이션 역할을 계정 역할에 부여.
  • SNOWFLAKE 데이터베이스에 대한 IMPORTED PRIVILEGES를 계정 역할에 부여.

SNOWFLAKE 데이터베이스는 모든 계정에 존재하는 시스템 정의 공유 데이터베이스예요. 그룹의 object_types 목록에 포함할 필요는 없고, roles 가 복제되면 이러한 권한 부여도 여전히 복제돼요.

SNOWFLAKE 데이터베이스에서 데이터베이스 역할 권한 부여의 복제는 추가적(additive)이에요. 권한 부여는 소스 계정에서 타깃 계정으로 복제되지만, 소스 계정의 권한 취소(revocation)는 전파되지 않아요. 소스 계정에서 해당 권한 부여가 취소된 후에도 타깃 계정의 권한 부여는 유지돼요.

참고: 모든 역할이 복제돼요.

공유 복제

이 기능은 공유 객체의 복제와 데이터베이스 객체에 대해 공유에 부여된 접근 권한의 복제를 지원해요.

인바운드 공유(inbound shares, 프로바이더로부터의 공유) 의 복제는 지원되지 않아요.

데이터베이스, 스키마, 테이블 백업의 복제

Snowflake 백업(backups) 기능을 사용하면 특정 데이터베이스, 스키마 또는 테이블에 대한 일련의 백업을 백업 세트(backup set) 라는 객체 안에 묶을 수 있어요. 백업 정책을 백업 세트에 적용하면 자동 백업 일정과 만료 기간 후 백업의 자동 삭제를 선택적으로 제어할 수 있어요. 백업 세트와 백업 정책은 데이터베이스 수준 객체예요. Snowflake는 이 객체들을 포함하는 데이터베이스와 스키마와 함께 복제해요.

Snowflake가 백업 세트와 백업 정책을 복제하는 방법은 백업 관련 객체 복제를 참고해요.

사용자 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요.

이 기능은 사용자와 그 속성을 타깃 계정으로 복제하는 것을 지원하며, 다음 사용자 인증 방법과 SCIM으로 사용자 및 그룹을 프로비저닝하는 것을 지원해요.

인증 방법 타깃 계정에서 동작 비고
비밀번호 ✔
MFA(다중 인증)가 있는 비밀번호 ✔ 소스 계정에서 MFA에 등록된 사용자는 각 타깃 계정에 로그인할 때 별도로 MFA에 등록해야 해요.
다중 인증(MFA) ✔ 소스 계정에서 MFA에 등록된 사용자는 각 타깃 계정에 로그인할 때 별도로 MFA에 등록해야 해요.
키 페어 인증 ✔
프로그래밍 방식 접근 토큰 ✔ 프로그래밍 방식 접근 토큰은 사용자와 역할이 복제된 경우에만 타깃 계정으로 복제돼요.
Federated 인증 ✔ Federated SSO(즉 SAML2) 보안 통합의 복제에 대한 자세한 내용은 여러 계정 간 보안 통합 및 네트워크 정책 복제를 참고해요.
Snowflake OAuth ✔ OAuth 보안 통합의 복제에 대한 자세한 내용은 여러 계정 간 보안 통합 및 네트워크 정책 복제를 참고해요.
External OAuth ✔ OAuth 보안 통합의 복제에 대한 자세한 내용은 여러 계정 간 보안 통합 및 네트워크 정책 복제를 참고해요.
SCIM ✔ SCIM 보안 통합의 복제에 대한 자세한 내용은 여러 계정 간 보안 통합 및 네트워크 정책 복제를 참고해요.

참고: USERS 와 ROLES 객체가 타깃 계정으로 복제되면 이 객체 유형은 타깃 계정에서 읽기 전용이며 수정할 수 없어요. 사용자와 역할은 소스 계정에서 생성된 후 각 타깃 계정으로 복제되어야 해요. 복제와 읽기 전용 보조 객체를 참고해요.

웨어하우스 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요. 업그레이드 문의는 Snowflake Support에 연락해요.

이 기능은 인터랙티브 웨어하우스를 포함한 웨어하우스의 복제를 지원해요. Snowflake는 웨어하우스에 부여된 권한을 역할로도 복제해요(roles 가 복제된 경우). 기본 웨어하우스의 상태는 복제되지 않아요. 웨어하우스는 일시 중지(suspended) 상태로 각 타깃 계정에 복제되며 타깃 계정에서 재개(resume)할 수 있어요.

워크스페이스 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요. 업그레이드 문의는 Snowflake Support에 연락해요.

공유 워크스페이스 는 복제/장애 조치 그룹의 일부인 데이터베이스에 포함되면 복제돼요. 프라이빗 워크스페이스 는 소유 사용자가 복제될 때 복제돼요. 보조(타깃) 계정에서 복제된 콘텐츠는 읽기 전용이에요. 워크스페이스 파일(SQL 파일, Notebook 파일 등)은 실행할 수 있지만 편집할 수는 없어요.

데이터셋 복제

계정 복제는 데이터셋(Datasets)의 복제를 지원해요. 데이터셋은 Snowflake ML과 함께 사용하는 구체화된 데이터 객체예요. 사용 정보는 Snowflake Datasets 를 참고해요. 데이터셋 복제 기능이 GA(일반 공개)된 이후 생성된 데이터셋에 대해 복제가 지원돼요. 릴리스 공지는 2025년 3월 20일: Snowflake Datasets(일반 공개) 를 참고해요.

Cortex Search Service 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요.

이 기능은 Cortex Search Service의 복제를 지원해요.

자세한 내용은 Cortex Search Service 복제를 참고해요.

역할과 권한 부여의 복제

Business Critical 기능

Business Critical Edition 이상이 필요해요.

객체에 대한 권한을 역할에 복제하려면 역할을 소스 계정에서 타깃 계정으로 복제해야 해요. 복제/장애 조치 그룹에서 역할을 복제하려면 object_types 목록에 roles 를 포함해야 해요. 역할은 권한이 부여된 데이터 객체와 별도의 복제/장애 조치 그룹에 있을 수 있어요.

roles 가 복제되면 객체에 대한 권한 부여는 다음 조건에서만 타깃 계정으로 복제돼요.

  • 권한이 객체 소유자에 의해 부여되었거나, 객체 소유자가 WITH GRANT OPTION 파라미터로 권한을 부여한 역할에 의해 간접적으로 부여된 경우.
  • 권한 부여의 수신자(grantee)와 부여자(grantor) 역할이 모두 타깃 계정에 있는 경우.
  • 객체가 복제되는 경우(즉 객체 유형이 object_types 목록에 포함된 경우).

그렇지 않으면 객체에 대한 권한 부여는 복제되지 않아요.

SNOWFLAKE 데이터베이스 에는 예외가 적용돼요. 이 데이터베이스는 모든 계정에 존재하며 object_types 목록에 포함되지 않아요. SNOWFLAKE 데이터베이스는 데이터베이스 역할 과 애플리케이션 역할을 모두 포함해요. roles 가 복제되면 Snowflake는 이러한 SNOWFLAKE 데이터베이스에 대한 권한 부여를 타깃 계정의 계정 역할로도 복제해요.

  • SNOWFLAKE 데이터베이스의 데이터베이스 역할을 계정 역할에 부여.
  • SNOWFLAKE 데이터베이스의 애플리케이션 역할을 계정 역할에 부여.
  • SNOWFLAKE 데이터베이스에 대한 IMPORTED PRIVILEGES를 계정 역할에 부여.

SNOWFLAKE 데이터베이스에서 데이터베이스 역할 권한 부여의 복제는 추가적이에요. 권한 부여는 소스 계정에서 타깃 계정으로 복제되지만, 소스 계정의 권한 취소는 전파되지 않아요. 소스 계정에서 해당 권한 부여가 취소된 후에도 타깃 계정의 권한 부여는 유지돼요.

보조 역할과 세션 정책의 복제에 대한 정보는 보조 역할을 사용한 세션 정책을 참고해요.

참고

  • 타깃 계정에서 활성 파이프에 대해 OWNERSHIP 권한을 가진 역할이 삭제되면 새로고침 작업이 실패해요.
  • 복제 그룹과 장애 조치 그룹에 대한 권한은 복제되지 않아요. 복제 그룹이나 장애 조치 그룹에 REPLICATE 또는 FAILOVER 권한이 부여된 경우 이러한 권한은 소스 계정과 타깃 계정 모두에서 부여해야 해요. 이 권한에 대한 자세한 내용은 복제 권한을 참고해요.
데이터베이스 객체에 대한 권한 부여

roles 와 databases 가 타깃 계정으로 복제되면(동일하거나 다른 복제/장애 조치 그룹에서) 보조 데이터베이스를 새로고침하면 데이터베이스와 그 객체(스키마, 테이블, 뷰 등)에 대한 권한 부여가 타깃 계정의 기존 역할(즉 타깃 계정으로 복제된 역할)에 동기화돼요. 데이터베이스 복제로 지원되는 객체에 대한 권한 부여만 동기화된다는 점에 유의해요. 지원 객체 목록은 복제된 데이터베이스 객체 를 참고해요.

외부 테이블은 현재 복제가 지원되지 않아요. 따라서 외부 테이블에 대한 권한 부여도 복제되지 않아요.

객체에 대한 Future grants

역할이 타깃 계정으로 복제되면 데이터베이스 또는 스키마 수준에서 부여된 future grants 가 타깃 계정으로 복제돼요. 여기에는 복제가 지원되지 않는 객체에 대한 future grants도 포함돼요. 예를 들어 외부 테이블 복제는 아직 지원되지 않지만, 외부 테이블에 대한 future grants는 복제돼요. 타깃 계정에서 외부 테이블을 만들면 미래 외부 테이블에 부여된 권한이 의도대로 구체화돼요.

객체 생성과 소유권

소스 계정에서 새로고침하는 동안 타깃 계정에 새 객체가 생성되는데 역할이 타깃 계정으로 복제되지 않으면, 새 객체에 대한 OWNERSHIP 권한은 GLOBALORGADMIN 역할에 부여돼요.

역할이 타깃 계정으로 복제되면, 다음 역할 복제 시 소스 계정에서 OWNERSHIP 권한을 가진 역할과 동일한 역할이 타깃 계정에서 OWNERSHIP 권한을 받아요. 객체와 역할이 동일한 복제(또는 장애 조치) 그룹에 있으면 타깃 계정에 새 객체가 생성될 때와 동시에 역할이 복제될 수 있어요.

공유에 대한 권한 부여

보안 데이터 공유를 활성화하기 위해 roles 가 타깃 계정으로 복제되지 않더라도 객체에 대한 공유 권한 부여는 복제돼요. 이 섹션은 객체에 대한 공유 권한 부여가 어떻게 복제되는지 설명해요.

roles 가 소스 계정에서 타깃 계정으로 복제되면 다음 조건에서 객체에 대한 공유 권한 부여가 복제돼요.

  • 부여자(grantor) 역할이 타깃 계정에 존재하거나
  • 소스 계정의 부여자 역할이 기본 객체에 대한 OWNERSHIP 권한을 가진 경우.

roles 가 소스 계정에서 타깃 계정으로 복제되지 않으면:

  • 객체에 대한 공유 권한 부여가 복제돼요.
  • 복제된 객체에 대한 공유 권한 부여의 부여자 역할은 객체에 대한 OWNERSHIP 권한을 가진 역할이에요.

타깃 계정에서 객체를 새로고침하는 사용자

소스 계정에서 타깃 계정의 객체를 새로고침하기 위해 ALTER FAILOVER GROUP … REFRESH 명령을 실행하는 사용자는 장애 조치 그룹에 대한 REPLICATE 권한을 가진 역할을 사용해야 해요. Snowflake는 다음 시나리오에서 이 사용자를 타깃 계정에서 보호해요(즉 실패시켜요).

  • 사용자가 소스 계정에 존재하지 않으면 새로고침 작업이 실패해요.
  • 사용자가 소스 계정에 존재하지만 사용자에게 REPLICATE 권한을 가진 역할이 부여되지 않았으면 새로고침 작업이 실패해요.

복제 일정

모범 사례로, Snowflake는 REPLICATION_SCHEDULE 파라미터를 사용해 자동 새로고침을 예약할 것을 권장해요. 일정은 CREATE 로 새 복제/장애 조치 그룹을 만들 때 또는 그 이후(ALTER 사용)에 정의할 수 있어요.

보조 복제/장애 조치 그룹을 만들면 Snowflake가 자동으로 초기 새로고침을 실행해요. 다음 새로고침은 이전 새로고침이 시작된 시점과 예약 간격, 또는 cron 표현식에 따른 다음 유효 시간을 기준으로 예약돼요. 예를 들어 새로고침 일정 간격이 10분이고 이전 새로고침 작업(예약 새로고침 또는 수동 트리거 새로고침)이 12:01에 시작되면 다음 새로고침은 12:11로 예약돼요.

Snowflake는 주어진 시점에 새로고침이 하나만 실행되도록 보장해요. 다음 새로고침이 예약된 시점에 새로고침이 아직 실행 중이면, 다음 새로고침은 현재 실행 중인 새로고침이 완료될 때 시작하도록 지연돼요. 예를 들어 새로고침이 매시 정각 15분 후 실행되도록 예약되어 있고 이전 새로고침이 12:16에 완료되면, 다음 새로고침은 이전에 실행 중이던 새로고침이 완료될 때 실행되도록 예약돼요.

참고: 자동으로 예약된 새로고침 작업은 복제/장애 조치 그룹에 대한 OWNERSHIP 권한을 가진 역할로 실행돼요. 권한 부족으로 예약 새로고침 작업이 실패하면 그룹에 대한 OWNERSHIP 권한을 가진 역할에 필요한 권한을 부여해요.

예약 복제 일시 중지와 재개

새로고침이 실행되는 동안에는 보조 장애 조치 그룹을 기본 그룹으로 승격할 수 없어요. 원활하게 장애 조치하려면 타깃 계정에서 예약 복제를 일시 중지해요. 장애 조치가 완료된 후 예약 복제를 재개해요. 자세한 내용은 ALTER FAILOVER GROUP 을 참고해요.

하위 에디션 계정으로의 복제

다음 조건 중 하나라도 해당하면 Snowflake는 오류 메시지를 표시해요.

  • 데이터베이스 및/또는 공유 객체만 있는 기본 복제 그룹이 Business Critical(이상) 계정에 있지만 복제가 승인된 계정 중 하나 이상이 하위 에디션인 경우. Business Critical Edition은 매우 민감한 데이터가 있는 Snowflake 계정을 위한 것이에요.
  • 모든 객체 유형이 있는 기본 복제/장애 조치 그룹이 Business Critical(이상) 계정에 있고, HIPAA 및 HITRUST CSF 규정에 따라 계정에 PHI 데이터를 저장하는 서명된 비즈니스 제휴 계약(BAA)이 체결되어 있는 경우. 그러나 복제가 활성화된 계정 중 하나 이상에 대해 그런 계약이 체결되어 있지 않은 경우(Business Critical 이상 계정이든 아니든).

이 동작은 Business Critical(이상) 계정의 계정 관리자가 실수로 민감한 데이터를 하위 에디션 계정으로 복제하는 것을 방지하기 위해 구현되었어요.

계정 관리자(ACCOUNTADMIN 역할을 가진 사용자) 또는 CREATE REPLICATION GROUP/CREATE FAILOVER GROUP 또는 OWNERSHIP 권한을 가진 역할을 가진 사용자는 CREATE 또는 ALTER 문을 실행할 때 IGNORE EDITION CHECK 절을 포함해 이 기본 동작을 재정의할 수 있어요. IGNORE EDITION CHECK가 설정되면 기본 복제/장애 조치 그룹은 이러한 특정 시나리오에서 하위 Snowflake 에디션의 지정된 계정으로 복제될 수 있어요.

참고: 장애 조치 그룹은 Business Critical Edition(이상) 계정에서만 만들 수 있어요. 따라서 장애 조치 그룹은 Business Critical Edition(이상) 계정으로만 복제할 수 있어요.

복제의 현재 제한 사항

  • 공유에서 만든 데이터베이스는 복제할 수 없어요.
  • 기본 데이터베이스에 지원되지 않는 소스 객체를 가진 스트림이 포함되어 있으면 새로고침 작업이 실패해요. 스트림의 소스 객체가 삭제된 경우에도 작업이 실패해요.
  • 추가 전용(append-only) 스트림은 복제된 소스 객체에서 지원되지 않아요.

참고: 태스크 그래프(task graph)가 복제를 수행하는 역할과 다른 역할이 소유한 경우 데이터베이스 복제는 태스크 그래프에서 작동하지 않아요.

더 알아보기 (Learn more)