Amazon OpenSearch Service용 멀티 티어 스토리지 - Amazon OpenSearch Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon OpenSearch Service용 멀티 티어 스토리지

Amazon OpenSearch Service용 다중 계층 스토리지는 다양한 스토리지 계층에서 데이터를 관리하여 성능과 비용을 모두 최적화하는 지능형 데이터 관리 솔루션입니다. 이 아키텍처를 통해 조직은 자주 액세스하는 데이터를 고성능 핫 스토리지에 유지하는 동시에 자주 액세스하지 않는 데이터를 보다 비용 효율적인 웜 스토리지로 이동하여 성능과 비용 간의 균형을 효율적으로 조정할 수 있습니다.

Amazon OpenSearch Service는 핫/웜 스토리지 계층을 위한 두 가지 아키텍처 옵션을 제공합니다.

  • OpenSearch 다중 계층 스토리지 아키텍처

    • Amazon S3를 로컬 인스턴스 스토리지와 결합

    • OpenSearch 최적화 인스턴스 기반

    • 웜 티어에서 쓰기 작업 지원

    • 핫 티어와 웜 티어 간의 원활한 데이터 마이그레이션 지원

    • OpenSearch 3.3 이상에서 사용 가능

    • 콜드 티어를 지원하지 않음

  • UltraWarm 기반 아키텍처

    • Amazon S3를 로컬 인스턴스 스토리지와 결합

    • UltraWarm 인스턴스 기반

    • 읽기 전용 웜 티어 워크로드에 최적화

    • Elasticsearch 버전 6.8 이상 및 모든 OpenSearch 버전에서 사용 가능

    • 콜드 티어 지원

참고

이 설명서는 멀티 티어 아키텍처에만 중점을 둡니다. Ultrawarm 스토리지 아키텍처는 Ultrawarm콜드 스토리지를 참조하세요.

다중 계층 스토리지 아키텍처

주요 이점

  • 쓰기 가능한 웜: 웜 인덱스에 대한 쓰기 작업 지원

  • 원활한 마이그레이션: 스토리지 계층 간 원활한 데이터 이동

  • 비용 최적화: 덜 활동적인 데이터를 비용 효율적인 웜 스토리지로 이동하여 스토리지 비용 절감

  • 성능 향상: 핫 티어에서 자주 액세스하는 데이터에 대한 고성능 유지

  • 유연한 데이터 관리: 워크로드 요구 사항에 가장 적합한 아키텍처 선택

  • 자동 관리: 스토리지 계층 간 데이터 수명 주기 관리 간소화

사전 조건

  • 엔진 버전: OpenSearch 3.3 이상

  • 인스턴스 패밀리:

    • 핫 노드: OR1, OR2, OM2 또는 OI2

    • 웜 노드: OI2

  • 보안: Node-to-node 암호화, 유휴 시 암호화, HTTPS 적용

제한 사항

  • Ultrawarm이 아직 활성화되지 않은 OpenSearch 최적화 인스턴스가 있는 모든 도메인에서 작동

  • 콜드 티어를 지원하지 않음

주의 사항

  • 핫-웜 마이그레이션은 다중 계층 아키텍처에서 강제 병합을 트리거하지 않습니다. 필요한 경우 사용자는 인덱스 관리 정책을 사용하여 강제 병합을 여전히 오케스트레이션할 수 있습니다.

  • 이제 웜 노드는 인덱싱 외에도 백그라운드 병합 작업도 수행합니다(핫 노드와 유사).

  • 웜 인덱스에 대한 모든 검색 요청은 기본 샤드로 라우팅되며 복제본은 기본 샤드가 다운된 경우에만 읽기를 제공합니다.

  • 이 아키텍처에서는 웜 인덱스의 자동 스냅샷도 지원됩니다.

  • 클러스터 간 복제는 핫 인덱스에서만 지원됩니다.

  • 축소, 분할 및 복제와 같은 인덱스 APIs는 웜 인덱스에서 작동하지 않습니다.

다중 계층 도메인 생성

1단계: 도메인 생성

aws opensearch create-domain \ --domain-name my-domain \ --engine-version OpenSearch_3.3 \ --cluster-config InstanceCount=3,InstanceType=or2.large.search,DedicatedMasterEnabled=true,DedicatedMasterType=m6g.large.search,DedicatedMasterCount=3,WarmEnabled=true,WarmCount=3,WarmType=oi2.2xlarge.search \ --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=11 \ --node-to-node-encryption-options Enabled=true \ --encryption-at-rest-options Enabled=true \ --domain-endpoint-options EnforceHTTPS=true,TLSSecurityPolicy=Policy-Min-TLS-1-2-2019-07 \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"user_name","MasterUserPassword":"your_pass"}}' \ --access-policies '{"Version": "2012-10-17", "Statement":[{"Effect":"Allow","Principal":"*","Action":"es:*","Resource":"*"}]}' \ --region us-east-1

2단계: 웜 노드 확인

aws opensearch describe-domain-nodes --domain-name my-domain --region us-east-1

샘플 응답(발췌):

{ "NodeType": "Warm", "InstanceType": "oi2.large.search", "NodeStatus": "Active" }

티어 마이그레이션 관리

다중 계층 도메인 지원:

  • 간소화된 경험을 위한 새로운 계층화 APIs

  • 호환성을 위한 레거시 UltraWarm APIs

새로운 계층화 APIs

인덱스를 웜으로 마이그레이션합니다.

curl -XPOST 'https://localhost:9200/index-name/_tier/warm'

응답:

{"acknowledged": true}

인덱스를 핫으로 마이그레이션:

curl -XPOST 'https://localhost:9200/index-name/_tier/hot'

응답:

{"acknowledged": true}

계층화 상태 확인:

curl -XGET 'https://localhost:9200/index-name/_tier'

응답 예제:

{ "tiering_status": { "index": "index-name", "state": "RUNNING_SHARD_RELOCATION", "source": "HOT", "target": "WARM", "start_time": 1745836500563, "shard_level_status": { "running": 0, "total": 100, "pending": 100, "succeeded": 0 } } }

세부 샤드 보기:

curl 'https://localhost:9200/index1/_tier?detailed=true'

진행 중인 모든 마이그레이션 나열(텍스트):

curl 'https://localhost:9200/_tier/all'

진행 중인 마이그레이션(JSON)을 모두 나열합니다.

curl 'https://localhost:9200/_tier/all?format=json'

대상 계층을 기준으로 필터링:

curl 'https://localhost:9200/_tier/all?target=_warm'

호환성을 위한 레거시 UltraWarm APIs

웜으로 마이그레이션:

curl -XPOST localhost:9200/_ultrawarm/migration/index2/_warm

핫으로 마이그레이션:

curl -XPOST localhost:9200/_ultrawarm/migration/index2/_hot

상태 확인:

curl -XGET localhost:9200/_ultrawarm/migration/index2/_status

보안 구성

기존 Amazon OpenSearch Service 도메인에서 다중 계층 스토리지를 활성화하면 도메인에 storage_tiering_manager 역할이 정의되지 않을 수 있습니다. 관리자가 아닌 사용자는 이 역할에 매핑되어 세분화된 액세스 제어를 사용하는 도메인의 웜 인덱스를 관리해야 합니다. 수동으로 storage_tiering_manager 역할을 생성하려면 다음 단계를 수행합니다.

  1. OpenSearch 대시보드에서 보안(Security)으로 이동하여 권한(Permissions)을 선택합니다.

  2. 작업 그룹 생성(Create action group)을 선택하고 다음 그룹을 구성합니다.

    그룹 이름 권한
    storage_tiering_cluster 인덱스:admin/_tier/all
    storage_tiering_index_read 인덱스:admin/_tier/get, 인덱스:admin/get
    storage_tiering_index_write 인덱스:admin/_tier/hot_to_warm, 인덱스:admin/_tier/warm_to_hot
  3. 역할(Roles)역할 생성(Create role)을 차례로 선택합니다.

  4. 역할 이름을 storage_tiering_manager로 지정합니다.

  5. 클러스터 권한(Cluster permissions)에서 storage_tiering_clustercluster_monitor를 선택합니다.

  6. 인덱스(Index)*를 입력합니다.

  7. 인덱스 권한에서 및 storage_tiering_index_readstorage_tiering_index_write를 선택합니다indices_monitor.

  8. 생성(Create)을 선택합니다.

  9. 역할을 생성한 후 다중 계층 인덱스를 관리할 사용자 또는 백엔드 역할에 매핑합니다.

모범 사례

Amazon OpenSearch Service 도메인에서 다중 계층 스토리지를 구현할 때 다음 모범 사례를 고려하세요.

  • 데이터 액세스 패턴을 정기적으로 검토하여 계층 할당 최적화

  • 성능 지표를 모니터링하여 효율적인 리소스 사용률 보장

  • 새로운 계층화 APIs를 사용하여 데이터 마이그레이션을 세밀하게 제어

지표 모니터링

다중 계층 스토리지 도메인은 웜 티어 성능을 모니터링하기 위한 추가 지표를 제공합니다. 이러한 지표에는 기존 UltraWarm 지표와 OpenSearch 최적화 인스턴스 아키텍처와 관련된 새 지표가 모두 포함됩니다.

새로운 지표

지표 이름 노드 수준 통계 클러스터 수준 통계 세부 수준
WarmIndexingLatency 평균 평균 1분
WarmIndexingRate 평균 평균, 최대, 합계 1분
WarmThreadpoolIndexingQueue 최대 합계, 최대값, 평균 1분
WarmThreadpoolIndexingRejected 최대 Sum 1분
WarmThreadpoolIndexingThreads 최대 합계, 평균 1분