OpenSearch Service 도메인 업그레이드가 왜 이렇게 오래 걸리나요?

4분 분량
0

Amazon OpenSearch Service 도메인을 업그레이드하려고 하는데 업그레이드가 오래 걸립니다.

간략한 설명

OpenSearch Service 도메인 버전을 업그레이드하면 블루/그린 배포 프로세스를 활성화하는 구성 변경이 이루어집니다. 블루/그린 배포에서는 프로덕션 환경 두 가지가 실행됩니다. 한 환경은 라이브 상태이고 다른 환경은 유휴 상태입니다. 그런 다음 소프트웨어 업데이트에 따라 두 가지 프로덕션 환경이 전환됩니다. OpenSearch Service의 경우 도메인 업데이트 중에 새 환경이 생성되고 업데이트가 완료된 후 사용자는 새 프로덕션 환경으로 라우팅됩니다. 이 동작은 가동 중지를 최소화하고 배포에 실패한 경우에도 원래 환경을 유지합니다.

OpenSearch Service 업그레이드 프로세스는 문제에 대한 업그레이드 전 검사와 업그레이드 실패 시 클러스터를 복원하는 클러스터 스냅샷으로 구성됩니다.

OpenSearch 서비스 업그레이드 시 다음 문제가 발생할 수 있습니다.

  • 업그레이드 전 검사 실패
  • 업그레이드 프로세스를 완료하는 데 너무 오래 걸림
  • 문제가 발생한 상태에서 업그레이드 성공

자세한 내용은 Amazon OpenSearch Service 도메인 업그레이드를 참조하세요.

해결 방법

업그레이드 전 검사

업그레이드 프로세스는 되돌릴 수 없습니다. 일시 중지 또는 취소할 수 없습니다. 업그레이드 중에는 도메인에 대한 구성을 변경할 수 없습니다. 업그레이드를 시작하기 전에 자격을 다시 확인하는 것이 가장 좋습니다. 도메인이 업그레이드에 적합하지 않거나 업그레이드에 실패할 수 있습니다.

가장 일반적인 업그레이드 문제를 확인하려면 업그레이드 문제 해결을 참조하세요.

스냅샷 상태 확인

마이그레이션 전에 OpenSearch Service가 자격 테스트를 통과하면 클러스터의 자동 스냅샷을 찍습니다. 스냅샷을 찍는 중에는 진행 상태가 Null 또는 0%로 표시될 수 있습니다. OpenSearch Service가 스냅샷을 생성한 후 백분율 값이 업데이트됩니다. 스냅샷을 완성하는 데 걸리는 시간은 스토리지 스페이스에 따라 달라질 수 있습니다. OpenSearch Service는 점진적으로 스냅샷을 찍습니다. 이전의 자동 스냅샷에서 데이터가 크게 변경된 경우 스냅샷을 완료하는 데 더 오래 걸릴 수 있습니다.

다음의 _snapshot 요청은 현재 실행 중인 모든 스냅샷을 자세한 상태 정보와 함께 검색합니다.

GET /_snapshot/_status

스냅샷 API에 대한 자세한 내용은 Elasticsearch 웹 사이트의 스냅샷 모니터링을 참조하세요.

모든 클러스터 스냅샷 및 노드 ID 검색

클러스터에서 현재 실행 중인 모든 스냅샷을 검색하려면 current 파라미터를 사용하세요.

GET /_snapshot/<snapshot-repository>/_current

모든 데이터 노드의 ID를 획득하려면 cat nodes API를 실행합니다.

GET _cat/nodes

노드 ID를 사용하여 기존 또는 새 노드를 식별할 수 있습니다. 새 노드의 샤드 수가 증가는 마이그레이션이 순조롭게 진행되었음을 나타냅니다. 결과적으로, 모든 샤드가 새 노드로 이동하고 기존 노드는 비게 됩니다.

블루/그린 배포 프로세스 모니터링

클러스터가 블루/그린 배포 프로세스에 들어가면 그린 환경에 새 노드가 나타납니다. 그런 다음 샤드는 블루 환경의 기존 노드에서 마이그레이션됩니다. 데이터 마이그레이션 또는 샤드 재할당이 완료되면 기존 노드가 종료됩니다.

블루/그린 배포 프로세스는 새 노드, 데이터 마이그레이션 및 기존 노드 제거의 세 단계로 모니터링할 수 있습니다.

1 단계: 새 노드 생성

Amazon CloudWatch에서 노드 클러스터 지표를 모니터링하여 노드 수를 확인할 수 있습니다. 또는, cat nodes API를 사용하여 클러스터의 모든 노드를 나열할 수 있습니다.

GET /_cat/nodes?v&pretty

이 단계의 블루/그린 배포 프로세스에서는 노드 수가 증가함에 따라 API 출력에서 새 노드를 볼 수 있습니다.

2 단계: 데이터 마이그레이션

첫 번째 단계가 완료되는 즉시 샤드 마이그레이션이 시작됩니다. 데이터 마이그레이션 중에는 기존 노드의 샤드 수가 감소하고 새 노드의 샤드 수는 증가합니다. cat/allocation API(OpenSearch 웹 사이트에서 제공)를 사용하여 각 노드에 할당된 샤드 수를 확인할 수 있습니다.

GET /_cat/allocation

샤드의 상태(시작됨, 재배치 중 또는 할당되지 않음)를 가져오려면 다음 API를 실행합니다.

GET _cat/shards?h=index,shard,prirep,state,relocating.reason

클러스터에 있는 샤드의 복구 상태(Elasticsearch 웹 사이트에서 제공)를 확인하려면 다음 API를 실행합니다.

GET _cat/recovery?active_only=true

이 단계에서는 클러스터 과부하, 샤드 불균형 또는 백엔드 문제로 인해 데이터 마이그레이션을 완료하는 데 시간이 더 걸릴 수 있습니다.

클러스터 과부하

클러스터 트래픽 양이 많지 않을 때 버전을 업그레이드해야 합니다. 업그레이드를 시작하기 전에 CPUUtilizationJVMMemoryPressure 클러스터 지표를 확인하여 이러한 지표의 값이 최적인지 확인합니다.

자세한 내용은 Amazon OpenSearch Service 클러스터의 높은 CPU 사용률 문제를 해결하려면 어떻게 해야 하나요?를 참조하세요.

샤드 불균형

기본적으로, Amazon OpenSearch Service는 각 인덱스를 5개의 기본 샤드로 나누는 5:1의 샤딩 전략을 사용합니다. 각 샤드가 검색 워크로드에 대해 1030GiB, 로그 워크로드에 대해 3050GiB를 샤딩하도록 샤딩 전략 크기를 설정하세요.

OpenSearch 및 Elasticsearch 7.x 이상에서는 노드당 샤드가 1,000개로 제한됩니다. 가장 좋은 방법은 Java 힙의 GiB당 샤드를 25개 이하로 유지하는 것입니다.

자세한 내용은 Amazon OpenSearch Service 클러스터의 고르지 않은 샤드 분포를 재조정하려면 어떻게 해야 합니까?를 참조하세요.

백엔드 문제

이 단계에서는 백엔드 문제로 인해 샤드 마이그레이션이 중단될 수 있습니다. 마이그레이션에 진전이 없고 문제가 자체적으로 해결되지 않는 경우 AWS Support에 문의하세요.

3 단계: 기존 노드 제거

모든 샤드가 새 노드로 마이그레이션된 후 기존 노드는 클러스터에서 제거됩니다. 그러면 노드 수는 구성한 원래 노드 수로 돌아갑니다. 이 단계에서는 블루/그린 배포 및 업데이트 프로세스가 완료됩니다.

문제가 발생한 상태에서 업그레이드 성공

클러스터가 들어오는 쓰기 요청을 차단할 때 “문제가 발생한 상태로 업그레이드 성공” 메시지가 나타납니다. OpenSearch Service ClusterIndexWritesBlocked 지표를 확인하세요. 값이 1이면 클러스터가 쓰기 요청을 차단하고 있다는 뜻입니다. 이 문제를 해결하려면 디스크 스페이스를 더 추가하거나 클러스터 규모를 조정하세요.

자세한 내용은 Amazon OpenSearch Serivce의 운영 모범 사례를 참조하세요.

AWS 공식
AWS 공식업데이트됨 일 년 전