원격 재인덱싱을 사용하여 Amazon OpenSearch 서비스 인덱스를 마이그레이션하기 - 아마존 OpenSearch 서비스

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

원격 재인덱싱을 사용하여 Amazon OpenSearch 서비스 인덱스를 마이그레이션하기

원격 재인덱스를 사용하면 한 Amazon Service 도메인의 인덱스를 다른 Amazon OpenSearch Service 도메인으로 복사할 수 있습니다. 모든 OpenSearch 서비스 도메인 또는 자체 관리형 OpenSearch 및 Elasticsearch 클러스터에서 인덱스를 마이그레이션할 수 있습니다.

원격 도메인 및 인덱스는 데이터 원본 또는 데이터를 복사하려는 도메인과 인덱스를 나타냅니다. 로컬 도메인 및 인덱스는 데이터 대상 또는 데이터를 복사하려는 도메인과 인덱스를 나타냅니다.

원격 재인덱싱에는 로컬 도메인에서 OpenSearch 1.0 이상 또는 Elasticsearch 6.7 이상이 필요합니다. 원격 도메인의 메이저 버전은 로컬 도메인보다 더 낮거나 대상 도메인과 동일해야 합니다. Elasticsearch 버전은 버전보다 낮은 버전으로 간주됩니다. 즉, Elasticsearch 도메인에서 OpenSearch 도메인으로 데이터를 재인덱싱할 수 있습니다. OpenSearch 동일한 메이저 버전 내에서 원격 도메인은 마이너 버전이 될 수 있습니다. 예를 들어, Elasticsearch 7.10.x에서 7.9로의 원격 재인덱싱은 지원되지만 1.0에서 Elasticsearch 7.10.x로의 원격 재인덱싱은 지원되지 않습니다. OpenSearch

참고

이 설명서에서는 Amazon OpenSearch Service 도메인 간에 데이터를 재인덱싱하는 방법을 설명합니다. 세부 단계 및 지원되는 옵션을 포함하여 reindex 작업에 대한 전체 설명서를 보려면 설명서의 OpenSearch Reindex 문서를 참조하십시오.

필수 조건

원격 재인덱스의 요구 사항은 다음과 같습니다.

  • 원격 도메인은 로컬 도메인에서 액세스할 수 있어야 합니다. VPC에 상주하는 원격 도메인의 경우, 로컬 도메인이 VPC에 액세스할 수 있어야 합니다. 이 프로세스는 네트워크 구성에 따라 다르지만, VPN 또는 관리형 네트워크 연결 또는 네이티브 VPC 엔드포인트 연결 사용이 필요할 수 있습니다. 자세한 내용은 내에서 Amazon OpenSearch 서비스 도메인 시작 VPC 섹션을 참조하세요.

  • 요청은 다른 REST 요청과 마찬가지로 원격 도메인에서 승인해야 합니다. 원격 도메인에 세분화된 액세스 제어가 활성화된 경우, 원격 도메인에서 재인덱스를 수행하고 로컬 도메인의 인덱스를 읽을 수 있는 권한이 있어야 합니다. 보안 고려 사항에 대한 자세한 내용은 Amazon 서비스의 세밀한 액세스 제어 OpenSearch 단원을 고려하세요.

  • 재인덱스 프로세스를 시작하기 전에 로컬 도메인에서 원하는 설정으로 인덱스를 생성하는 것이 좋습니다.

  • 도메인에서 데이터 노드에 T2 또는 T3 인스턴스 유형을 사용하는 경우, 원격 재인덱스를 사용할 수 없습니다.

OpenSearch 서비스 인터넷 도메인 간에 데이터를 재인덱싱합니다.

가장 기본적인 시나리오는 원격 인덱스가 공개적으로 액세스할 수 있는 엔드포인트가 있는 로컬 도메인과 AWS 리전 동일하고 서명된 IAM 자격 증명이 있는 것입니다.

원격 도메인에서 재인덱스해올 원격 인덱스와 재인덱스할 로컬 인덱스를 지정하세요.

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443" }, "index": "remote_index" }, "dest": { "index": "local_index" } }

유효성 검사를 위해 원격 도메인 엔드포인트 끝에 443을 추가해야 합니다.

인덱스가 로컬 도메인으로 복사되었는지 확인하려면 다음 요청을 로컬 도메인에 보내세요.

GET local_index/_search

원격 인덱스가 로컬 도메인과 다른 리전에 있는 경우 다음 샘플 요청과 같이 해당 리전 이름을 전달하세요.

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443", "region": "eu-west-1" }, "index": "remote_index" }, "dest": { "index": "local_index" } }

중국 지역과 같은 AWS GovCloud (US) 격리된 지역의 경우 해당 지역에서 IAM 사용자를 인식하지 못해 엔드포인트에 액세스하지 못할 수 있습니다.

원격 도메인이 기본 인증으로 보호되는 경우 사용자 이름과 비밀번호를 지정하십시오.

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443", "username": "username", "password": "password" }, "index": "remote_index" }, "dest": { "index": "local_index" } }

리모컨이 VPC에 있는 경우 OpenSearch 서비스 도메인 간에 데이터를 재인덱싱합니다.

모든 OpenSearch 서비스 도메인은 자체 내부 가상 사설 클라우드 (VPC) 인프라로 구성됩니다. 기존 OpenSearch 서비스 VPC에서 새 도메인을 만들면 VPC의 각 데이터 노드에 대해 Elastic Network 인터페이스가 생성됩니다.

원격 재인덱싱 작업은 원격 OpenSearch 서비스 도메인, 즉 자체 프라이빗 VPC 내에서 수행되므로 로컬 도메인의 VPC에 액세스할 방법이 필요합니다. 내장된 VPC 엔드포인트 연결 기능을 사용하여 연결을 설정하거나 프록시를 구성하여 이 작업을 수행할 수 있습니다. AWS PrivateLink

로컬 도메인이 OpenSearch 버전 1.0 이상을 사용하는 경우 콘솔 또는 를 사용하여 AWS PrivateLink 연결을 생성할 수 있습니다. AWS CLI AWS PrivateLink 연결을 통해 로컬 VPC의 리소스가 원격 VPC 내의 리소스에 비공개로 연결할 수 있습니다. AWS 리전

콘솔로 원격 재인덱싱을 사용하여 VPC 엔드포인트 연결을 공유하는 두 도메인 간에 인덱스를 복사할 수 있습니다.

  1. 에서 Amazon OpenSearch 서비스 콘솔로 이동합니다https://console.aws.amazon.com/aos/.

  2. 왼쪽 탐색 창에서 도메인을 선택합니다.

  3. 로컬 도메인 또는 데이터를 복사하려는 도메인을 선택합니다. 그러면 도메인 세부 정보 페이지가 열립니다. 일반 정보 아래에서 연결 탭을 선택하고 요청를 선택합니다.

  4. 연결 요청 페이지에서 연결 모드로 VPC 엔드포인트 연결을 선택하고 기타 관련 세부 정보를 입력합니다. 이러한 세부 정보에는 데이터를 복사하려는 도메인인 원격 도메인이 포함됩니다. 그런 다음 Request(요청)를 선택합니다.

  5. 원격 도메인의 세부 정보 페이지로 이동하고 연결 탭을 선택한 다음 인바운드 연결 테이블을 찾습니다. 방금 연결을 생성한 도메인(로컬 도메인)의 이름 옆에 있는 확인란을 선택합니다. Approve(승인)를 선택합니다.

  6. 로컬 도메인으로 다시 이동하여 Connections(연결) 탭을 선택하고 Outbound connections(아웃바운드 연결) 테이블을 찾습니다. 두 도메인 간의 연결이 활성화되면 테이블의 Endpoint(엔드포인트) 열에서 엔드포인트를 사용할 수 있게 됩니다. 엔드포인트를 복사합니다.

  7. 로컬 도메인의 대시보드를 열고 왼쪽 탐색에서 Dev Tools(개발 도구)를 선택합니다. 원격 도메인 인덱스가 아직 로컬 도메인에 존재하지 않는지 확인하려면 다음 GET 요청을 실행합니다. 자체 인덱스 remote-domain-index-name이름으로 바꾸십시오.

    GET remote-domain-index-name/_search { "query":{ "match_all":{} } }

    출력에 인덱스를 찾을 수 없다는 오류가 표시되어야 합니다.

  8. 다음과 같이 GET 요청 아래에서 POST 요청을 생성하고 엔드포인트를 원격 호스트로 사용합니다.

    POST _reindex { "source":{ "remote":{ "host":"connection-endpoint", "username":"username", "password":"password" }, "index":"remote-domain-index-name" }, "dest":{ "index":"local-domain-index-name" } }

    이 요청을 실행합니다.

  9. GET 요청을 다시 실행합니다. 이제 출력에 로컬 인덱스가 존재한다는 내용이 표시되어야 합니다. 이 인덱스를 쿼리하여 원격 인덱스의 모든 데이터를 OpenSearch 복사했는지 확인할 수 있습니다.

API로 원격 재인덱싱을 사용하여 VPC 엔드포인트 연결을 공유하는 두 도메인 간에 인덱스를 복사할 수 있습니다.

  1. CreateOutboundConnectionAPI 작업을 사용하여 로컬 도메인에서 원격 도메인으로의 새 연결을 요청하세요.

    POST https://es.region.amazonaws.com/2021-01-01/opensearch/cc/outboundConnection { "ConnectionAlias": "remote-reindex-example", "ConnectionMode": "VPC_ENDPOINT", "LocalDomainInfo": { "AWSDomainInformation": { "DomainName": "local-domain-name", "OwnerId": "aws-account-id", "Region": "region" } }, "RemoteDomainInfo": { "AWSDomainInformation": { "DomainName": "remote-domain-name", "OwnerId": "aws-account-id", "Region": "region" } } }

    응답에서 ConnectionId을 받게 됩니다. 다음 단계에서 사용할 수 있도록 이 ID를 저장합니다.

  2. 연결 ID와 함께 AcceptInboundConnectionAPI 작업을 사용하여 로컬 도메인의 요청을 승인합니다.

    PUT https://es.region.amazonaws.com/2021-01-01/opensearch/cc/inboundConnection/ConnectionId/accept
  3. DescribeOutboundConnectionsAPI 작업을 사용하여 원격 도메인의 엔드포인트를 검색합니다.

    { "Connections": [ { "ConnectionAlias": "remote-reindex-example", "ConnectionId": "connection-id", "ConnectionMode": "VPC_ENDPOINT", "ConnectionProperties": { "Endpoint": "connection-endpoint" }, ... } ] }

    5단계에서 사용할 connection-endpoint를 저장합니다.

  4. 원격 도메인 인덱스가 아직 로컬 도메인에 존재하지 않는지 확인하려면 다음 GET 요청을 실행합니다. 자체 인덱스 remote-domain-index-name이름으로 바꾸십시오.

    GET local-domain-endpoint/remote-domain-index-name/_search { "query":{ "match_all":{} } }

    출력에 인덱스를 찾을 수 없다는 오류가 표시되어야 합니다.

  5. 다음과 같이 POST 요청을 생성하고 엔드포인트를 원격 호스트로 사용합니다.

    POST local-domain-endpoint/_reindex { "source":{ "remote":{ "host":"connection-endpoint", "username":"username", "password":"password" }, "index":"remote-domain-index-name" }, "dest":{ "index":"local-domain-index-name" } }

    이 요청을 실행합니다.

  6. GET 요청을 다시 실행합니다. 이제 출력에 로컬 인덱스가 존재한다는 내용이 표시되어야 합니다. 이 인덱스를 쿼리하여 원격 인덱스의 모든 데이터를 OpenSearch 복사했는지 확인할 수 있습니다.

원격 도메인이 VPC 내부에서 호스팅되고 VPC 엔드포인트 연결 기능을 사용하지 않으려는 경우, 공개적으로 액세스할 수 있는 엔드포인트로 프록시를 구성해야 합니다. 이 경우 OpenSearch 서비스는 VPC로 트래픽을 전송할 수 없으므로 퍼블릭 엔드포인트가 필요합니다.

VPC 모드에서 도메인을 실행하면 하나 이상의 엔드포인트가 VPC에 배치됩니다. 하지만 이러한 엔드포인트는 VPC 내에서 도메인으로 들어오는 트래픽만을 위한 것이며 VPC 자체로의 트래픽은 허용하지 않습니다.

원격 재인덱싱 명령은 로컬 도메인에서 실행되므로 원본 트래픽은 해당 엔드포인트를 사용하여 원격 도메인에 액세스할 수 없습니다. 이 사용 사례에서 프록시가 필요한 이유입니다. 프록시 도메인에는 공공 인증 기관(CA)에서 서명한 인증서가 있어야 합니다. 자체 서명 또는 개인 CA 서명 인증서는 지원되지 않습니다.

비서비스 도메인 간에 데이터를 재인덱싱합니다. OpenSearch

원격 인덱스가 자체 관리형 EC2 인스턴스처럼 OpenSearch 서비스 외부에서 호스팅되는 경우 파라미터를 다음과 같이 설정합니다. external true

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443", "username": "username", "password": "password", "external": true }, "index": "remote_index" }, "dest": { "index": "local_index" } }

이 경우 사용자 이름과 비밀번호를 사용한 기본 인증만 지원됩니다. 원격 도메인에는 공개적으로 액세스할 수 있는 엔드포인트 (로컬 OpenSearch 서비스 도메인과 동일한 VPC에 있더라도) 와 퍼블릭 CA에서 서명한 인증서가 있어야 합니다. 자체 서명 또는 개인 CA 서명 인증서는 지원되지 않습니다.

대용량 데이터 집합 재인덱스

원격 재인덱스는 다음 기본값을 사용하여 원격 도메인에 스크롤 요청을 보냅니다.

  • 검색 컨텍스트 5분

  • 소켓 제한 시간 30초

  • 배치 크기 1,000

데이터를 수용하기 위해 이러한 파라미터를 조정하는 것이 좋습니다. 큰 문서의 경우 일괄 처리 크기를 줄이거나 제한 시간을 늘리는 것을 고려합니다. 자세한 내용은 스크롤 검색 섹션을 참조하세요.

POST _reindex?pretty=true&scroll=10h&wait_for_completion=false { "source": { "remote": { "host": "https://remote-domain-endpoint:443", "socket_timeout": "60m" }, "size": 100, "index": "remote_index" }, "dest": { "index": "local_index" } }

또한 성능 향상을 위해 다음 설정을 로컬 인덱스에 추가하는 것이 좋습니다.

PUT local_index { "settings": { "refresh_interval": -1, "number_of_replicas": 0 } }

재인덱스 프로세스가 완료되면 원하는 복제본 수를 설정하고 새로 고침 간격 설정을 제거할 수 있습니다.

쿼리를 통해 선택한 문서의 하위 집합만 재인덱스하려면 이 요청을 로컬 도메인으로 보내세요.

POST _reindex { "source": { "remote": { "host": "https://remote-domain-endpoint:443" }, "index": "remote_index", "query": { "match": { "field_name": "text" } } }, "dest": { "index": "local_index" } }

원격 재인덱스는 슬라이싱을 지원하지 않으므로 동일한 요청에 대해 여러 스크롤 작업을 병렬로 수행할 수 없습니다.

원격 재인덱스 설정

표준 재인덱싱 옵션 외에도 OpenSearch 서비스는 다음 옵션을 지원합니다.

옵션 유효값 설명 필수
외부 원격 도메인이 OpenSearch 서비스 도메인이 아니거나 두 VPC 도메인 간에 재인덱싱하는 경우에는 로 지정하십시오. true 아니요
리전 String 원격 도메인이 다른 리전에 있는 경우 리전 이름을 지정하세요. 아니요