재해 복구 예제 시나리오에서 미러링 사용

이 엔드-투-엔드 재해 복구 시나리오는 미러링을 사용하여 가용성을 높이고 주요 인시던트가 전체 IBM Cloud 지역에 영향을 미치는 경우 애플리케이션이 계속 작동하도록 하는 방법을 보여줍니다.

두 개의 클러스터가 서로 다른 지역에 프로비저닝되었고 클러스터 별칭으로 A와 B를 사용하여 미러링( 미러링 사용 설정의 정보에 따라)을 위해 구성되었습니다.생성자는 accounting.invoices라고 하는 토픽에 대한 레코드를 공개하고 이용자는 클러스터 A의 해당 토픽에서 메시지를 읽습니다.

미러링 개요 다이어그램.
미러링 개요

소스 클러스터 사용 불가능

소스 클러스터의 리전에서 재해가 발생하면 어떻게 되는지 생각해 보겠습니다.

소스 클러스터의 재해 다이어그램.
Disaster in source cluster's region

이벤트의 영향이 재난을 선포할 만한 수준인지 여부를 판단하는 것은 Event Streams 인스턴스 소유자의 책임입니다. 서비스 인스턴스 소유자는 필요에 따라 재구성, 재배치 및 재시작을 포함하여 애플리케이션의 장애 조치를 조정해야 합니다.

장애 조치를 수행하는 생성자

장애 복구하려면 다음 단계를 수행하십시오.

  1. 클러스터 A를 가리키는 생성자를 중지하십시오.
  2. 클러스터 A와 클러스터 A에서 클러스터 B로의 링크가 여전히 작동 중인 경우, 클러스터 B에서 해당 토픽의 지연이 0인지 확인하여 가능한 한 많은 데이터가 미러링되도록 합니다.
  3. 클러스터 B의 엔드포인트를 가리키도록 프로듀서를 다시 시작하세요.
  4. 클러스터 A에서 클러스터 B로의 토픽에 대해 여전히 사용으로 설정되어 있는 미러링을 사용 안함으로 설정하십시오. 이 작업은 사용자 제어를 사용하여 수행할 수 있습니다.

대상 클러스터 B의 프로듀서 개요 다이어그램.
Producer switched to cluster B.

생성자는 이제 클러스터 B로 전환되고 이제 원본과 동일한 이름을 사용하여 메시지를 새 로컬 토픽에 전송합니다.

장애 조치를 수행하는 이용자

장애 복구하려면 다음 단계를 수행하십시오.

  1. 클러스터 A와 A에서 클러스터 B로의 링크가 여전히 작동하는 경우, 이용자가 클러스터 A의 토픽에 있는 모든 메시지 데이터를 읽고 토픽 끝에서 해당 오프셋을 커미트할 수 있도록 허용하십시오.
  2. 클러스터 A를 가리키던 소비자를 중지하세요.
  3. 클러스터 B의 엔드포인트를 가리키도록 소비자를 다시 시작하세요.

클러스터 B의 이용자 다이어그램.
The consumer continues to consume the existing messages.

The consumer is now able to continue to consume the existing messages from the accounting.invoices.A topic from cluster B while new messages come from accounting.invoices.

애플리케이션에 엄격한 순서가 필요한 경우, 원격 토픽을 먼저 완전히 소비한 후 로컬 토픽에서 소비를 시작해야 합니다. 이러한 방법으로 메시지는 생성된 순서에 따라 처리됩니다.

미러링 환경 재설정

Event Streams 서비스 인스턴스 소유자는 클러스터 A가 복구될 때 발생하는 상황을 결정해야 합니다.

클러스터 A가 복구 불가능한 경우 Event Streams 서비스 인스턴스 소유자는 클러스터 B와 새로 프로비저닝된 인스턴스 간의 미러링을 사용으로 설정할 책임이 있습니다. 새 인스턴스에 미러링을 사용하려면 다음 단계를 완료하십시오.

  • 이전에 설명한 대로 A에서 B로 생성자 및 이용자를 장애 복구하십시오.
  • 클러스터 A에서 클러스터 B로의 현재 미러링을 사용 안함으로 설정하십시오. 자세한 정보는 미러링 사용 안함 을 참조하십시오.
  • 미러링이 사용 안함으로 설정된 후에는 클러스터 B (이제 소스) 에서 새로 프로비저닝된 클러스터 (대상) 로의 미러링을 사용으로 설정하십시오. 자세한 정보는 미러링 사용 을 참조하십시오.

또는 클러스터 A가 복구된 경우 일반적으로 사용자는 클러스터 A로 작업을 반환합니다. 다음 단계를 완료하여 기본 조작을 클러스터 A로 리턴하십시오.

실패하기 전에 반대 방향으로 미러링을 활성화해야 합니다:

  • 클러스터 A는 완전히 작동 가능해야 합니다.
  • 클러스터 A에서 클러스터 B로의 현재 미러링을 사용 안함으로 설정하십시오. 자세한 정보는 미러링 사용 안함 을 참조하십시오.
  • 미러링이 사용 안함으로 설정된 후에는 클러스터 B (이제 소스) 와 클러스터 A (이제 대상) 간에 미러링을 사용으로 설정하십시오. 자세한 정보는 미러링 사용 을 참조하십시오.
  • 소스 클러스터 A는 이제 대상 클러스터가 됩니다.
  • 대상 클러스터 B는 이제 소스 클러스터가 됩니다.
  • 클러스터 B에서 클러스터 A로 미러링할 모든 토픽을 사용으로 설정하십시오. 사용자 제어 를 사용하여 이를 수행할 수 있습니다.

그런 다음 클러스터 A에 나타나는 클러스터 B의 토픽을 검사하여 데이터가 클러스터 A로 복제되는지 확인하십시오. 이러한 주제에는 새 소스 클러스터의 접미사 B가 붙습니다.

반대 방향 다이어그램에서 미러링이 활성화되었습니다.
Mirroring enabled in opposite direction.

원치 않는 순환 효과가 발생할 수 있으므로 원래 대상 토픽을 클러스터 B에 미러링하지 마세요. 다이어그램에 표시된 것처럼 클러스터 B에서 클러스터 A로 accounting.invoices 미러링하는 것이 아니라 accounting.invoices.A 미러링합니다.

장애 복구

장애 복구 결정은 다시 Event Streams 인스턴스 소유자가 소유합니다. 서비스 인스턴스 소유자는 필요에 따라 재구성, 재배치 및 재시작을 포함하여 애플리케이션의 장애 복구를 조정해야 합니다.

장애 조치 사례와 달리 이 경우에는 클러스터 B에 재해가 발생하지 않았습니다. 따라서 장애 복구는 제어된 조작이며 데이터 손실 또는 데이터 재처리를 최소화하여 수행할 수 있습니다.

미러링이 원래 구성 다이어그램으로 다시 전환되었습니다.
Mirroring switched back to the original configuration.

마지막으로 미러링을 원래 구성으로 다시 전환하면 클러스터 A가 다시 소스가 되고 클러스터 B가 타깃으로 다시 시작됩니다.

  • 클러스터 A및 클러스터 B가 완전히 작동하는지 확인하십시오.
  • 클러스터 B에서 클러스터 A로의 현재 미러링을 사용 안함으로 설정하십시오. 자세한 정보는 미러링 사용 안함 을 참조하십시오.
  • 미러링이 사용 안함으로 설정된 후 클러스터 A (이제 소스) 와 클러스터 B (이제 대상) 간에 미러링을 사용으로 설정하십시오. 자세한 정보는 미러링 사용 을 참조하십시오.