다음을 통해 공유


Azure Arc 지원 SQL Managed Instance에 대한 비즈니스 연속성 및 재해 복구

Azure Arc 지원 SQL Managed Instance는 비즈니스가 중단에서 복구하고 가동 중지 시간을 최소화하면서 계속 작동하는 데 도움이 되는 BCDR(비즈니스 연속성 및 재해 복구)을 위한 기능을 제공합니다.

이 문서에서는 특정 시점 복원, 고가용성, 재해 복구 등의 비즈니스 연속성 기능을 구성하고 관리하기 위한 주요 디자인 고려 사항과 권장 사항을 제공합니다.

아키텍처

다음 아키텍처 다이어그램은 가동 중지 시간이 거의 0인 장애 조치(failover)를 지원하는 중요 비즈니스용 서비스 계층에서 Arc 지원 SQL Managed Instance의 고가용성 기능을 보여 줍니다. 주 인스턴스가 실패하면 부하 분산 장치는 해당 인스턴스로 트래픽 전송을 중지합니다. 그런 다음, 보조 인스턴스 중 하나가 주 인스턴스로 승격되고 새로 승격된 인스턴스는 부하 분산 장치에서 읽기-쓰기 트래픽을 수신하기 시작합니다. 실패한 인스턴스가 다시 온라인 상태가 되면 보조 인스턴스로 추가됩니다.

고가용성 중요 비즈니스용 인스턴스의 작동 상태를 보여 주는 다이어그램

주 복제본의 실패와 보조 복제본을 주 복제본으로 승격하는 방법을 보여 주는 다이어그램

주 복제본 실패를 보여 주는 다이어그램

복원된 작동 상태를 보여 주는 다이어그램

다음 아키텍처 다이어그램에서는 재해 복구를 위해 두 개의 서로 다른 사이트에 있는 두 개의 개별 Kubernetes 클러스터에 Arc 지원 SQL Managed Instance를 배포하는 방법을 보여 줍니다.

두 클러스터에 걸쳐 재해 복구 설정으로 배포된 Azure Arc 지원 SQL Managed Instance를 보여 주는 다이어그램

다음 아키텍처 다이어그램에서는 재해 복구 장애 조치가 시작될 때 Arc 지원 SQL Managed Instance가 응답하는 방법을 보여 줍니다.

두 클러스터에서 Azure Arc 지원 SQL Managed Instance 재해 복구 장애 조치를 시작하는 방법을 보여 주는 다이어그램

디자인 고려 사항

Azure Arc 지원 SQL Managed Instance가 전체 BCDR 모델에 미치는 영향을 평가하려면 비즈니스 연속성 및 재해 복구에서 랜딩 존에 대한 BCDR 권장 사항을 검토합니다. 비즈니스 연속성 및 재해 복구는 비즈니스 연속성을 위한 디자인 권장 사항에 중점을 두지만 인스턴스의 고가용성 및 복원력도 기본 Kubernetes 인프라의 가용성에 따라 달라집니다.

특정 시점 복원

  • RPO(복구 지점 목표) 및 RTO(복구 시간 목표)의 대상을 정의합니다.

  • 지원되는 보존 한도 내에서 백업을 보존하고 복원할 기간을 결정합니다.

  • 스토리지에 미치는 영향과 백업 보존 기간을 늘리는 비용을 고려합니다. 기본 보존은 7일입니다. 이 기간을 사용하면 최대 7일 동안 복원할 수 있으며 하나의 전체 백업, 일별 차등 백업, 약 5분마다 트랜잭션 로그 백업을 얻습니다.

  • 백업을 위해 영구 볼륨에 어떤 스토리지 클래스를 사용할지 고려합니다. 참고 자료는 Azure Arc 지원 SQL Managed Instance에 대한 스토리지 분야를 참조하세요.

  • 예상 데이터 크기와 구성된 보존 기간의 컨텍스트에서 백업을 위한 영구 볼륨 크기를 고려합니다.

  • 스토리지 모범 사례는 Azure Arc 지원 SQL Managed Instance에 대한 스토리지 분야를 참조하세요.

  • 백업은 항상 주 복제본에서 수행됩니다. 인스턴스에 할당된 리소스를 식별할 때 백업 및 복원 프로세스의 성능 효과를 고려합니다.

  • 데이터베이스의 특정 시점 복원이 기존 데이터베이스를 덮어쓸 수 없다는 점을 고려합니다. 그러나 동일한 인스턴스의 새 데이터베이스로 데이터를 복원할 수 있습니다.

  • 복원 프로세스 중에 애플리케이션이 온라인 상태인 경우 데이터베이스를 완전히 복구하는 데 필요한 추가 단계를 고려합니다.

  • 여러 복제본 인스턴스에 데이터베이스 복원에 설명된 대로 데이터베이스를 다중 복제본 인스턴스로 복원하는 데 필요한 추가 단계를 고려합니다.

  • 데이터베이스 관리자가 백업을 구성하고 복원하는 데 사용하는 도구를 결정합니다. 자세한 내용은 Azure Arc 지원 SQL Managed Instance에 연결을 참조하세요.

고가용성

  • 워크로드의 가용성 요구 사항을 검토하고 Arc 지원 SQL Managed Instance 배포에 가장 적합한 서비스 계층을 결정합니다.

    • 범용 서비스 계층에는 사용 가능한 단일 복제본이 있으며 Kubernetes 오케스트레이션을 통해 고가용성을 달성합니다.
    • 중요 비즈니스용 서비스 계층에서 Azure Arc 지원 SQL Managed Instance는 Kubernetes 오케스트레이션에서 기본적으로 제공하는 항목 외에도 포함된 가용성 그룹을 제공합니다.
  • 복제본이 하나만 존재하기 때문에 범용 서비스 계층에서 가동 중지 시간이 발생할 수 있는 잠재적인 비즈니스 영향을 고려합니다.

  • 중요 비즈니스용 서비스 계층에 배포할 복제본 수(1~3개)를 고려합니다.

  • 둘 이상의 복제본을 사용하여 중요 비즈니스용 서비스 계층에 인스턴스를 배포하는 경우 보조 복제본을 읽기 가능으로 구성할 수 있습니다. 중요 비즈니스용 서비스 계층에 배포할 보조 복제본 수를 결정합니다. 개수 변경에 대한 내용은 읽기 가능 보조 복제본 구성을 참조하세요.

  • 선택적 매개 변수인 sync-secondary-to-commit을 사용하여 중요 비즈니스용 서비스 계층에서 트랜잭션을 커밋하는 데 필요한 보조 복제본 수를 통해 가용성보다 일관성을 우선적으로 지정합니다. 복제본 간에 연결 문제가 있는 경우 주 복제본은 트랜잭션을 커밋하지 않을 수 있습니다.

    • 2개 복제본 구성에서 주 복제본이 성공 메시지를 수신하려면 두 복제본에서 모두 트랜잭션을 커밋해야 합니다.
    • 3개 복제본 구성에서 성공 메시지를 반환하려면 3개 복제본 중 2개 이상이 트랜잭션을 커밋해야 합니다.
  • 특정 복제본을 주 복제본으로 지정해야 하는지 여부를 결정합니다. 주 복제본을 지정하는 방법에 대한 내용은 기본 주 복제본을 참조하세요.

  • 사용할 Kubernetes 서비스 유형, LoadBalancer 또는 NodePort를 결정합니다. 부하 분산 장치를 사용하는 경우 애플리케이션은 동일한 기본 엔드포인트에 다시 연결할 수 있으며 Kubernetes는 연결을 새 기본 엔드포인트로 리디렉션합니다. 노드 포트를 사용하는 경우 애플리케이션은 새 IP 주소에 다시 연결해야 합니다.

재해 복구

  • 지역 기본 사이트와 지역 보조 사이트 모두에 있는 Azure Arc 지원 SQL Managed Instance의 인스턴스는 컴퓨팅 및 용량이 동일하고 동일한 서비스 계층에 배포되어야 합니다.

  • 인스턴스를 호스트하는 두 클러스터에서 모두 액세스할 수 있는 재해 복구 구성을 만드는 경우 미러링 인증서를 저장할 위치를 결정합니다.

  • 기본 인스턴스의 가동 중지 시간을 모니터링하여 보조 인스턴스로 장애 조치를 수행할 시기를 결정하는 방법을 고려합니다.

  • 각 인스턴스에는 자체 엔드포인트가 있습니다. 장애 조치 시 최소한의 중단으로 애플리케이션이 기본 엔드포인트에 액세스하는 방법을 고려합니다.

디자인 권장 사항

다음 섹션에는 특정 시점 복원, 고가용성 및 재해 복구에 대한 디자인 권장 사항이 나와 있습니다.

특정 시점 복원

  • Arc 지원 SQL Managed Instance의 새 인스턴스를 배포하는 경우 기본적으로 데이터 스토리지 클래스로 설정되지 않도록 항상 백업에 대한 스토리지 클래스를 정의합니다.

  • 백업 볼륨에 대해 RWX(ReadWriteMany)를 지원하는 스토리지 클래스를 사용합니다. 참고 자료는 Azure Arc 지원 SQL Managed Instance에 대한 스토리지 분야를 참조하세요.

  • 복원 작업을 시작하기 전에 선택적 매개 변수 --dry-run을 사용하여 작업이 성공할지 여부를 먼저 확인합니다. 자세한 내용은 az CLI를 사용하여 특정 시점의 데이터베이스 만들기를 참조하세요.

  • 더 긴 보존 기간이 필요한 백업을 Azure 또는 다른 온-프레미스 콜드 스토리지에 보내는 프로세스를 만듭니다.

  • 백업에서 사용하는 스토리지를 모니터링하여 필요한 경우 더 긴 보존을 수용할 수 있는지 확인합니다.

고가용성

  • 정기적인 훈련을 수행하여 Arc 지원 SQL Managed Instance 인스턴스의 고가용성 유효성을 검사합니다. 훈련의 예로는 범용 인스턴스의 Pod 삭제 및 중요 비즈니스용 인스턴스의 복제본 실패가 있습니다.

  • 중요 비즈니스용 계층에서 2개 복제본 구성 대신 3개 복제본 구성으로 인스턴스를 배포하여 거의 0에 가까운 데이터 손실을 달성합니다.

  • 가용성을 향상하려면 인스턴스를 배포할 때 LoadBalancer를 서비스 유형으로 사용합니다.

  • Azure Arc 지원 SQL Managed Instance의 고가용성 제한 사항을 검토합니다.

  • 지원되는 가용성 모드를 검토하여 고가용성 요구 사항에 따라 사용할 모드를 결정합니다.

  • 여러 복제본이 있는 중요 비즈니스용 인스턴스를 배포하는 경우 읽기 워크로드에 보조 복제본 중 하나를 사용합니다. 애플리케이션 연결 문자열은 보조 복제본으로 리디렉션하기 위해 보조 엔드포인트를 서비스 수신기로 지정해야 합니다. 엔드포인트에 대한 내용은 기본 및 보조 엔드포인트 및 AG 상태 가져오기를 참조하세요.

  • 인스턴스 가용성 모니터링의 모범 사례를 이해하려면 Azure Arc 지원 SQL Managed Instance 관리 및 모니터링을 참조하세요.

재해 복구

  • Arc 지원 SQL Managed Instance 인스턴스의 기본 사이트 및 보조 사이트 이름이 서로 다르고 사이트의 공유 이름 값이 동일한지 확인합니다.

  • 정기적인 재해 복구 훈련을 수행하여 장애 조치 프로세스의 유효성을 검사합니다.

  • 수동 및 강제 장애 조치를 모두 시작하기 위한 프로세스를 만듭니다.

  • 클러스터 상태를 모니터링하고 장애 조치가 필요한 시기를 파악하기 위한 모범 사례를 이해하려면 Azure Arc 지원 SQL Managed Instance 관리 및 모니터링을 참조하세요.

  • 장애 조치 중에 DNS 레코드를 수동으로 만들 필요가 없도록 DNS 서버에서 분산 가용성 그룹의 공유 이름에 대한 DNS 레코드를 정의합니다.

다음 단계

하이브리드 및 다중 클라우드 경험에 대한 자세한 내용은 다음 문서를 참조하세요.