내용으로 건너뛰기

OpenSearch Service 도메인의 스토리지 공간 부족 문제를 해결하려면 어떻게 해야 합니까?

4분 분량
0

Amazon OpenSearch Service 도메인의 스토리지 공간 부족 문제를 해결하려고 합니다.

해결 방법

OpenSearch Service 도메인에는 준수해야 하는 스토리지 공간 요구 사항이 있습니다. 도메인 스토리지 공간이 부족하면 "ClusterBlockException" 오류가 발생할 수 있습니다.

스토리지 공간 부족 문제를 해결하려면 다음 작업 중 하나 이상을 수행하십시오.

불균형한 샤드가 있는지 확인

불균형한 샤드(디스크 공간 왜곡)로 인해 일부 노드의 스토리지 공간이 부족할 수 있습니다. 이 문제를 해결하려면 샤드를 모든 노드에 균등하게 분배하십시오.

클러스터의 각 노드에 사용할 수 있는 스토리지 공간을 확인하려면 다음 명령을 실행합니다.

curl -XGET "aos_endpoint/_cat/allocation?v"

참고: aos_endpointOpenSearch Service 콘솔에 나열된 엔드포인트로 바꾸십시오.

출력 예시:

shards | disk.indices | disk.used | disk.avail | disk.total | disk.percent | host         | ip          | node
8    |   989.4kb    |   25.9gb    |   32.4gb   |   58.4gb   |   44         | 192.0.2.0    | 192.0.2.3   | node1
8    |   962.4kb    |   25.9gb    |   32.4gb   |   58.4gb   |   44         | 192.0.2.1    | 192.0.2.4   | node2

출력에서 각 노드의 디스크 공간 지표를 볼 수 있습니다. OpenSearch Service는 각 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 20GiB 또는 사용 가능한 스토리지의 20%를 내부 작업을 위해 예약합니다. 위의 cat/allocation 출력에는 예약된 스토리지가 포함되지 않습니다. 예약된 데이터 스토리지와 총 데이터 스토리지를 보려면 FreeStorageSpace Amazon CloudWatch의 OpenSearch Service 지표를 확인하십시오.

참고: cat/allocation에는 예약 데이터가 포함되지 않으므로 해당 값은 항상 OpenSearch Service 콘솔에 표시되는 스토리지보다 낮습니다.

도메인의 Amazon EBS 볼륨 크기 늘리기

도메인에서 Amazon Elastic Block Store(Amazon EBS) 볼륨을 스토리지로 사용하는 경우 EBS 볼륨의 크기를 늘립니다.

EBS 볼륨 크기를 늘릴 수 없는 경우 다음 작업 중 하나 이상을 수행하여 클러스터의 규모를 조정하십시오.

참고: Amazon EC2 I3 인스턴스를 데이터 스토리지로 사용하는 경우 클러스터에 노드를 추가하거나 인스턴스 유형을 확장하십시오. 인스턴스의 규모를 조정할 때 블루/그린 배포가 발생할 수 있습니다.

사용하지 않는 인덱스 삭제

도메인에 저장되는 데이터 양을 줄이려면 사용하지 않는 인덱스 또는 문서를 삭제하거나, 오래된 인덱스를 최적화하거나, 도메인의 복제본 수를 줄이십시오. 클러스터의 디스크 사용량이 이미 최대인 경우 EBS 볼륨 또는 노드 규모를 조정해야 합니다.

참고: 도메인의 복제본 수를 줄이면 내결함성이 떨어집니다. 인덱스마다 하나 이상의 복제본을 구성하는 것이 가장 좋습니다.

먼저, Amazon Simple Storage Service(Amazon S3) 버킷에 원치 않는 인덱스의 백업을 만듭니다. OpenSearch Service에서 생성하는 자동 스냅샷을 사용하여 인스턴스를 복원할 수 있습니다. 그런 다음, OpenSearch Service 클러스터에서 인덱스를 삭제하여 디스크 공간을 확보합니다.

수동 스냅샷도 생성하는 것이 가장 좋습니다. 수동 백업을 만들기 전에 수동 스냅샷 리포지토리를 구성해야 합니다.

인덱스를 만든 날짜를 확인하려면 다음 명령을 실행합니다.

GET _cat/indices?h=h,s,i,id,p,r,dc,dd,ss,creation.date.string&s=creation.date.string:desc

단일 인덱스를 삭제하려면 다음 명령을 실행합니다.

DELETE index-name

참고: index-name을 인덱스 이름으로 바꾸십시오.

여러 인덱스를 삭제하려면 다음 명령을 실행합니다.

DELETE index-pattern

참고: index-pattern을 인덱스 패턴으로 바꾸십시오.

ISM을 사용하여 부족한 스토리지 공간 관리

인덱스 상태 관리(ISM)를 사용하여 OpenSearch Service에서 인덱스를 롤오버하십시오. ISM을 통해 사용자 지정 관리 정책을 정의하여 디스크 공간 부족과 같은 문제를 완화할 수 있습니다. 예를 들어 ISM 정책을 사용하여 인덱스 크기와 같은 조건에 따라 인덱스를 자동으로 삭제합니다. 그런 다음, 기존 인덱스가 정의된 조건을 충족하면 롤오버 작업을 사용하여 대상을 새 인덱스로 이동합니다.

다음 예제 ISM 정책은 50분 후에 인덱스를 삭제합니다.

PUT _plugins/_ism/policies/delete_ism_policy  {
    "policy": {
        "policy_id": "delete_ism_policy",
        "description": "A simple default policy that deletes old unused indexes",
        "last_updated_time": 1658834661281,
        "schema_version": 13,
        "error_notification": null,
        "default_state": "example_hot_state",        
        "states": [
            {
                "name": "example_hot_state",
                "actions": [],
                "transitions": [
                    {
                        "state_name": "delete",
                        "conditions": {
                            "min_index_age": "50m"  
                        }
                    }
                ]
            },
            {
                "name": "delete",                    
                "actions": [
                    {
                        "delete": {}
                    }
                ],
                "transitions": []
            }
        ],
        "ism_template": [
            {
                "index_patterns": [                  
                    "sample*"
                ],
                "priority": 100,                    
                "last_updated_time": 1658834436349
            }
        ]
    }
}

참고: 위 정책은 정책에 추가하는 인덱스 패턴의 모든 인덱스에 연결됩니다.

ISM 정책을 인덱스에 연결하려면 다음 명령을 실행합니다.

POST _plugins/_ism/add/your-index-*  {
     "policy_id": "your_policy_id"
}

참고: your-index-*를 인덱스 또는 인덱스 패턴으로 바꾸고 your_policy_id를 정책 ID로 바꾸십시오.

자세한 내용은 OpenSearch Service에서 ISM을 사용하여 부족한 스토리지 공간을 관리하려면 어떻게 해야 합니까?를 참조하십시오.

CloudWatch 경보를 사용하여 스토리지 모니터링

클러스터에서 사용 가능한 스토리지의 양을 모니터링하려면 FreeStorageSpace 지표를 사용합니다. 스토리지 공간이 부족할 때 알림을 받으려면 FreeStorageSpace에 대한 CloudWatch 경보를 만드십시오.

자세한 내용은 OpenSearch Service의 권장 CloudWatch 경보를 참조하십시오.

관련 정보

OpenSearch Service의 운영 모범 사례

OpenSearch Service 클러스터가 빨간색 또는 노란색 상태인 이유는 무엇입니까?