Amazon OpenSearch Service 도메인이 “처리 중” 상태로 멈춘 이유는 무엇인가요?

5분 분량
0

Amazon OpenSearch Service 클러스터가 “처리 중” 상태로 멈춰 있습니다.

간략한 설명

OpenSearch Service 클러스터는 구성 변경 도중 "처리 중" 상태로 전환됩니다. 다음 중 하나가 발생할 경우 클러스터가 “처리 중” 상태에서 멈출 수 있습니다.

  • 오류로 인해 유효성 검사에 실패했습니다.
  • 새 리소스 세트 실행에 실패했습니다.
  • 새 데이터 노드 세트로의 샤드 마이그레이션이 완료되지 않았습니다.
  • 기존 리소스 세트 종료에 실패했습니다.

구성 변경을 시작하면 OpenSearch Service가 새 환경을 생성하는 동안 도메인 상태가 "처리 중”으로 변경됩니다. 새 환경에서 OpenSearch Service는 데이터 노드, 전용 프라이머리 노드, UltraWarm 노드와 같은 적용 가능한 새 노드 세트를 시작합니다. 마이그레이션이 완료되면 기존 노드는 종료됩니다.

콘솔의 도메인 상태에서 구성 변경 진행 상황을 확인할 수 있습니다. DescribeDomainChangeProgress API를 사용하여 구성 변경 진행 상황을 모니터링할 수도 있습니다. 자세한 내용은 구성 변경 단계를 참조하세요.

해결 방법

오류로 인한 유효성 검사 실패

구성 변경을 시작하거나 OpenSearch Service 도메인 버전 업그레이드를 수행하면 OpenSearch Service는 먼저 일련의 유효성 검사를 수행합니다. 유효성 검사를 통해 도메인이 업그레이드 자격을 충족하는지 확인합니다. 오류로 인해 유효성 검사가 실패할 경우 도메인이 “처리 중” 상태에서 멈출 수 있습니다. 유효성 검사가 실패하는 데는 몇 가지 이유가 있습니다. 이 문제를 해결하려면 유효성 검사 오류 문제 해결을 참조하세요. 유효성 검사 오류와 관련된 문제 해결 단계를 따른 다음 구성 변경을 다시 시도하세요.

새 리소스 세트 실행 실패

첫 번째 구성 변경이 완료되기 전에 다른 구성 변경을 동시에 제출하면 클러스터가 중단될 수 있습니다. 새 구성 변경을 제출할 경우 완료될 때까지 기다린 후 다른 구성 변경을 제출하세요.

유효성 검사 단계의 도메인 유효성 검사는 구성 변경 기간 내내 유효합니다. 구성이 유효성 검사 단계를 통과한 경우 도메인이 의존하는 리소스를 수정하지 마세요. 예를 들면 암호화에 사용되는 AWS Key Management Service(AWS KMS)를 비활성화하지 마세요.

ClusterBlockException 오류가 발생해도 도메인이 멈출 수 있습니다. 해당 오류는 사용 가능한 스토리지 공간 부족이나 높은 JVM 메모리 압력으로 인해 발생할 수 있습니다. 자세한 내용 및 문제 해결 방법은 ClusterBlockException을 참조하세요.
참고: Amazon CloudWatch에서 FreeStorageSpace,MasterCPUUtilization, MasterJVMMemoryPressure 지표를 확인할 수 있습니다.

새 데이터 노드 세트로의 샤드 마이그레이션이 완료되지 않음

OpenSearch Service에서 새 리소스를 생성하고 나면 기존 데이터 노드 세트에서 새 세트로의 샤드 마이그레이션이 시작됩니다. 이 단계는 클러스터 로드 및 크기에 따라 몇 분에서 몇 시간이 걸릴 수 있습니다.

기존 노드 및 새 노드 간의 현재 샤드 마이그레이션을 모니터링하려면 다음 API 호출을 실행하세요.

GET /<DOMAIN_ENDPOINT>/_cat/recovery?active_only=true

다음과 같은 이유로 샤드 마이그레이션이 실패할 수 있습니다.

  • OpenSearch Service 클러스터가 현재 빨간색 상태입니다. 클러스터가 빨간색 상태인 경우 클러스터가 정상 상태가 될 때까지 빨간색 클러스터 상태 문제를 해결합니다. 자세한 내용은 Amazon OpenSearch Service 클러스터가 빨간색 또는 노란색 상태인 이유는 무엇인가요?를 참조하세요.
  • 클러스터에 과부하가 발생하여 샤드 마이그레이션을 처리하는 데 필요한 리소스를 할당할 수 없습니다. CPU 및 JVM 압력이 높은 클러스터에는 과부하가 발생할 수 있습니다. CloudWatch JVMMemoryPressure 및 CPUUtilization 지표를 모니터링합니다. 자세한 내용은 ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-cloudwatchmetrics.html#managedomains-viewmetrics)CloudWatch에서 지표 보기[를 참조하세요.
  • 새 노드 세트에 사용 가능한 스토리지 공간이 부족합니다. 이 문제는 블루/그린 배포 프로세스 중 클러스터에 새 데이터가 들어오는 경우 발생합니다. 또한 기존 노드에 새 노드로 할당할 수 없는 대형 샤드가 있는 경우에도 발생할 수 있습니다.

샤드 크기를 확인하려면 Elasticsearch 웹사이트의 cat shards API를 사용하세요.
각 노드에 할당된 샤드 수를 확인하려면 Elasticsearch 웹사이트의 cat allocation API를 사용하세요.
일부 샤드를 새 노드에 할당할 수 없는 이유를 알아보려면 Elasticsearch 웹사이트의 cluster allocation explain API를 사용하세요.
더 이상 필요하지 않은 기존 인덱스가 있는 경우 Elasticsearch 웹사이트의 delete index API를 사용하여 저장 공간을 확보할 수 있습니다.

재시도 최대 횟수를 초과하여 노드에 샤드를 할당할 수 없는 경우 할당을 재시도해 볼 수 있습니다. 다음 API 호출을 사용하여 해당 샤드와 관련된 “index.allocation.max_retries” 인덱스 설정을 늘리세요.

PUT <INDEX_NAME>/_settings
{
    "index.allocation.max_retries" : 10
}

참고: 기본적으로 클러스터는 최대 5회 연속으로 샤드 할당을 시도합니다.

  • 내부 하드웨어 장애로 인해 기존 데이터 노드의 샤드가 마이그레이션 중에 멈출 수 있습니다.
    참고: OpenSearch Service는 하드웨어 문제에 따라 자체 복구 스크립트를 실행하여 노드를 정상 상태로 되돌립니다.
  • 기존 노드 세트에 고정된 샤드로 인해 샤드 재배치가 중단되었습니다. 샤드가 노드에 고정되지 않도록 하려면 인덱스 설정을 확인합니다. 또는 클러스터에 ClusterBlockException 오류가 있는지 확인합니다.

새 노드에 할당할 수 없는 샤드 및 해당 인덱스 설정을 식별하려면 다음 명령을 사용하세요.

GET /<DOMAIN_ENDPOINT>/_cluster/allocation/explain?pretty
GET /<DOMAIN_ENDPOINT>/<INDEX_NAME>/_settings?pretty

Elasticsearch 웹사이트의 get index settings API를 사용하여 다음 설정 중 하나가 표시되는지 확인하세요.

{
    "index.routing.allocation.require._name": "NODE_NAME" (OR)
    "index.blocks.write": true
}

인덱스 설정에서 **"index.routing.allocation.require._name": "<NODE_NAME>"**을 찾은 경우 다음 API 호출을 사용하여 해당 설정을 재설정하세요.

PUT /<DOMAIN_ENDPOINT>/<INDEX_NAME>/_settings
{
    "index.routing.allocation.require._name": null
}

자세한 내용은 Elasticsearch 웹사이트의 인덱스 수준 샤드 할당 필터링을 참조하세요.

인덱스 설정에서 "index.blocks.write": true를 확인한 경우 인덱스에 쓰기 블록이 있는 것입니다. 이 쓰기 블록 문제는 ClusterBlockException 오류로 인해 발생할 수 있습니다. 자세한 내용은 OpenSearch Service에서 403 "index_create_block_exception" 또는 "cluster_block_exception" 오류를 해결하려면 어떻게 해야 하나요?를 참조하세요.

모범 사례

OpenSearch Service 클러스터가 “처리 중” 상태에서 멈추는 것을 방지하려면 다음 모범 사례를 따르세요.

  • 구성 변경을 제출하기 전에 클러스터가 블루/그린 배포 프로세스를 지원할 수 있는지 확인합니다.
  • 구성 변경을 제출하기 전에 변경 사항의 모의 실행을 제출합니다.
  • 클러스터에 과부하가 발생하지 않았는지 확인합니다.
  • 여러 구성 변경 사항을 동시에 제출하지 않습니다.
  • 트래픽이 적은 시간대에 구성 변경을 제출하는 것이 좋습니다.
  • 구성 변경의 진행 상황을 모니터링합니다.

참고: 다음 중 하나가 발생한 경우 AWS Support에 문의하세요.

  • 클러스터가 24시간 이상 “처리 중” 상태로 멈춰 있습니다.
  • 도메인이 "기존 리소스 삭제 중" 단계에 멈춰 있습니다.
AWS 공식
AWS 공식업데이트됨 9달 전