Amazon OpenSearch Service에서 다중 AZ 도메인 구성
서비스 중단 시 데이터 손실을 방지하고 Amazon OpenSearch Service 클러스터 가동 중지 시간을 최소화하기 위해 동일한 리전에 있는 두 개 또는 세 개의 가용 영역에 노드를 분산할 수 있습니다. 이를 다중 AZ 구성이라고 합니다. 가용 영역은 각 AWS 리전 내에 있는 격리된 위치입니다.
프로덕션 워크로드를 실행하는 도메인의 경우 다음과 같은 구성을 생성하는 Multi-AZ with Standby 배포 옵션을 사용하는 것이 좋습니다.
-
세 개 영역에 배포된 도메인.
-
전용 프라이머리 노드와 데이터 노드에 대해 최신 세대 인스턴스 유형.
-
세 개의 전용 프라이머리 노드와 세 개(또는 3의 배수)의 데이터 노드.
-
도메인의 각 인덱스에 대해 최소 두 개의 복제본 또는 세 개의 데이터 사본(기본 노드와 복제본 모두 포함)의 배수
이 단원의 나머지 부분에서는 이러한 구성에 대한 설명과 전후 관계를 제공합니다.
Multi-AZ with Standby
Multi-AZ with Standby는 99.99% 가용성, 프로덕션 워크로드를 위한 일관된 성능, 간소화된 도메인 구성 및 관리를 제공하는 Amazon OpenSearch Service 도메인용 배포 옵션입니다. Multi-AZ with Standby를 사용하면 성능이나 가용성에 영향을 주지 않고 도메인이 인프라 장애에도 복원력이 뛰어납니다. 이 배포 옵션은 지정된 데이터 노드 수, 프라이머리 노드 수, 인스턴스 유형, 복제본 수, 소프트웨어 업데이트 설정, 자동 조정 켜기 등 여러 모범 사례를 의무화하여 이 표준을 충족합니다.
Multi-AZ with Standby로 사용하는 경우 OpenSearch Service는 세 가용 영역에 도메인을 생성하며, 각 영역에는 전체 데이터 사본이 포함되고 데이터는 각 영역에 균등하게 분산됩니다. 도메인은 이러한 영역 중 하나에 있는 노드를 대기 모드로 예약하므로 검색 요청을 처리하지 않습니다. OpenSearch Service는 기본 인프라에서 장애를 감지하면 1분 이내에 대기 노드를 자동으로 활성화합니다. 도메인은 계속해서 인덱싱 및 검색 요청을 처리하므로 장애 조치를 수행하는 데 걸리는 시간으로 영향이 제한됩니다. 데이터나 리소스를 재분배하지 않으므로 클러스터 성능에 영향을 주지 않고 가용성이 저하될 위험도 없습니다. Multi-AZ with Standby는 추가 비용 없이 사용할 수 있습니다.
AWS Management Console에서 대기 모드로 도메인을 생성할 수 있는 두 가지 옵션이 있습니다. 먼저, 간편 생성 방법으로 도메인을 생성할 수 있으며, OpenSearch Service는 다음을 포함하는 미리 결정된 구성을 자동으로 사용합니다.
-
세 개의 가용 영역(하나는 대기 모드로 사용)
-
세 개의 전용 프라이머리 노드 및 데이터 노드
-
도메인에서 활성화된 자동 조정
-
데이터 노드용 GP3 스토리지
표준 생성 방법을 선택하고 배포 옵션으로 대기 모드가 있는 도메인을 선택할 수도 있습니다. 이렇게 하면 영역 3개와 프라이머리 노드 3개와 같은 대기 모드의 주요 기능은 그대로 유지하면서 도메인을 사용자 지정할 수 있습니다. 데이터 노드 수를 3의 배수(가용 영역 수)로 선택하는 것이 좋습니다.
도메인을 생성한 후에는 도메인 세부 정보 페이지로 이동하여 클러스터 구성 탭에서 가용 영역 아래에 대기 모드가 있는 3-AZ가 나타나는지 확인할 수 있습니다.
기존 도메인을 Multi-AZ with Standby로 마이그레이션하는 데 문제가 있는 경우 문제 해결 안내서에서 대기 모드로 Multi-AZ with Standby로의 마이그레이션 오류를 참조하세요.
제한 사항
Multi-AZ with Standby로 도메인을 설정할 때는 다음 제한 사항을 고려하세요.
-
노드의 총 샤드 수는 1000개를 초과할 수 없고, 클러스터의 총 샤드 수는 75000개를 초과할 수 없으며, 단일 샤드의 크기는 65GB를 초과할 수 없습니다.
-
Multi-AZ with Standby는
m5
,c5
,r5
,r6g
,c6g
,m6g
,r6gd
,i3
인스턴스 유형에서만 작동합니다. 지원되는 인스턴스에 대한 자세한 내용은 지원되는 인스턴스 유형을 참조하세요. -
프로비저닝된 IOPS SSD, 범용 SSD(GP3) 또는 대기 모드가 있는 인스턴스 지원 스토리지만 사용할 수 있습니다.
-
Multi-AZ with Standby 도메인에서 에서 UltraWarm을 활성화하는 경우 웜 노드 수는 사용 중인 가용 영역 수의 배수여야 합니다.
Multi-AZ without Standby
OpenSearch Service는 99.9% 가용성을 제공하는 multi-AZ without Standby를 계속 지원합니다. 노드는 가용 영역 전체에 분산되어 있으며 가용성은 가용 영역 수와 데이터 사본에 따라 달라집니다. 대기 모드에서는 모범 사례에 따라 도메인을 구성해야 하지만 대기 모드 외에서는 가용 영역, 노드, 복제본 수를 직접 선택할 수 있습니다. 대기 모드가 있는 도메인을 생성하여 중단될 수 있는 기존 워크플로가 있는 경우가 아니면 이 옵션을 사용하지 않는 것이 좋습니다.
이 옵션을 선택하는 경우에도 노드, 디스크 및 단일 AZ 장애에 대한 복원력을 유지하려면 가용 영역 3개를 선택하는 것이 좋습니다. 장애가 발생하면 클러스터는 가용성과 중복성을 유지하기 위해 나머지 리소스에 데이터를 재분배합니다. 이러한 데이터 이동은 클러스터의 리소스 사용량을 증가시키고 성능에 영향을 미칠 수 있습니다. 클러스터 크기가 적절하지 않으면 가용성이 저하될 수 있으며, 이는 다중 AZ의 목적을 크게 저해합니다.
대기 모드 없이 AWS Management Console에서 도메인을 구성하는 유일한 방법은 표준 생성 방법을 선택하고 배포 옵션으로 대기 모드 없는 도메인을 선택하는 것입니다.
샤드 배포
Multi-AZ without Standby를 활성화하는 경우, 클러스터의 인덱스당 복제본을 한 개 이상 생성해야 합니다. 복제본이 없으면 OpenSearch Service가 다른 가용 영역에 데이터 사본을 배포할 수 없습니다. 다행히 모든 인덱스의 기본 구성은 복제본 1개입니다. 다음 다이어그램에서 볼 수 있듯이 OpenSearch Service에서는 기본 샤드와 해당 복제본 샤드를 최대한 서로 다른 영역에 분산합니다.
가용 영역별로 샤드를 분산시키는 것 외에도 OpenSearch Service는 샤드를 노드별로 분산시킵니다. 그러나 특정 도메인 구성은 샤드 수가 불균형해질 수 있습니다. 다음 도메인을 생각해 보세요.
-
데이터 노드 5개
-
기본 샤드 5개
-
복제본 2개
-
가용 영역 3개
이 경우, OpenSearch는 다음 다이어그램과 같이 기본 샤드와 복제본 샤드를 영역에 분산시키기 위해 한 개의 노드를 오버로드해야 합니다.
개별 노드의 부하를 늘리고 성능을 저하시킬 수 있는 이러한 상황을 피하려면, 인덱스당 두 개 이상의 복제본을 사용하려는 경우 Multi-AZ with Standby를 선택하거나 인스턴스 수를 3의 배수로 선택하는 것이 좋습니다.
전용 프라이머리 노드 분산
도메인을 구성할 때 가용 영역을 두 개 선택하더라도 OpenSearch Service는 전용 프라이머리 노드를 세 개의 가용 영역에 자동으로 분산시킵니다. 이러한 분산은 영역에 서비스 중단이 발생할 경우 클러스터 가동 중지를 방지합니다. 권장되는 세 개의 전용 프라이머리 노드를 사용하면 하나의 가용 영역이 중단되더라도 클러스터가 여전히 전용 프라이머리 노드의 쿼럼(2)을 유지하므로 새 마스터를 선택할 수 있습니다. 다음 다이어그램은 이 구성을 보여줍니다.
세 개의 가용 영역에서 사용할 수 없는 전 세대 인스턴스 유형을 선택하는 경우 다음 시나리오가 적용됩니다.
-
도메인에 가용 영역을 세 개 선택하면 OpenSearch Service가 오류를 발생시킵니다. 다른 인스턴스 유형을 선택하고 다시 시도하세요.
-
도메인에 가용 영역을 두 개 선택하면 OpenSearch Service가 두 개의 영역에 전용 프라이머리 노드를 분산시킵니다.
가용 영역 중단
가용 영역 중단은 드문 경우지만 발생할 수 있습니다. 다음 표에는 중단 시 다양한 다중 AZ 구성과 동작이 나와 있습니다. 표의 마지막 행은 Multi-AZ with Standby에 적용되는 반면, 다른 모든 행은 Multi-AZ without Standby에만 적용되는 구성을 포함합니다.
리전의 가용 영역 수 | 선택한 가용 영역 수 | 전용 프라이머리 노드 수 | 한 개의 가용 영역에 중단이 발생할 경우의 동작 |
---|---|---|---|
2 이상 | 2 | 0 |
가동 중지. 클러스터에서 데이터 노드의 절반이 손실되고 마스터를 선택하기 전에 가용 영역에서 하나 이상의 노드를 교체해야 합니다. |
2 | 2 | 3 |
50/50의 가동 중지 확률. OpenSearch Service는 하나의 가용 영역에 두 개의 전용 프라이머리 노드를 분산시키고 하나를 다른 영역에 분산시킵니다.
|
3 이상 | 2 | 3 |
가동 중지 없음. OpenSearch Service는 세 개의 가용 영역에 전용 프라이머리 노드를 자동으로 분산시키므로 나머지 두 개의 전용 프라이머리 노드가 마스터로 선택될 수 있습니다. |
3 이상 | 3 | 0 |
가동 중지 없음. 약 3분의 2의 데이터 노드가 여전히 마스터로 선택될 수 있습니다. |
3 이상 | 3 | 3 |
가동 중지 없음. 나머지 두 개의 전용 프라이머리 노드가 마스터로 선택될 수 있습니다. |
모든 구성에서 원인과 상관없이 노드 장애는 클러스터의 나머지 데이터 노드에서 일정 기간에 부하 증가를 유발하며, OpenSearch Service는 현재 누락된 노드를 교체하도록 새 노드를 자동으로 구성할 수 있습니다.
예를 들어, 3개 영역 구성에서 가용 영역 장애가 발생하는 경우 데이터 노드의 최대 2/3가 클러스터에 대한 요청을 최대한 많이 처리해야 합니다. 이에 따라 나머지 노드들도 온라인 상태가 될 때 새 노드에 샤드를 복제하므로 성능에 더 큰 영향을 미칠 수 있습니다. 워크로드에 가용성이 중요한 경우 이 문제를 최소화하기 위해 클러스터에 리소스를 추가하는 것을 고려합니다.
참고
OpenSearch Service에서는 다중 AZ 도메인을 투명하게 관리하므로 가용 영역 중단을 수동으로 시뮬레이션할 수 없습니다.