

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

# 4단계 - 데이터 마이그레이션
<a name="stage-4-data-migration"></a>

대상 환경이 준비되었으므로 계획 단계에서 선택한 데이터 마이그레이션 전략을 구현할 수 있습니다.

이 섹션에서는 네 가지 패턴에 대한 구현 단계를 다룹니다.
+ [스냅샷에서 빌드](build-from-snapshot.md)
+ [소스에서 빌드](build-from-source.md)
+ [원격 재인덱스](remote-reindexing.md)
+ [Logstash 사용](logstash.md)

# 1. 스냅샷에서 빌드
<a name="build-from-snapshot"></a>

스냅샷 복원 접근 방식을 사용하는 경우 소스 Elasticsearch 또는 OpenSearch 클러스터의 데이터를 대상 Amazon OpenSearch Service 도메인으로 복사합니다.

대체로 스냅샷 복원 프로세스는 다음 단계로 구성됩니다.

1. 기존 클러스터에서 필요한 데이터(인덱스)의 스냅샷을 생성하고 스냅샷을 S3 버킷에 업로드합니다.

1. Amazon OpenSearch Service 서비스 도메인을 만듭니다.

1. 버킷에 액세스할 수 있는 Amazon OpenSearch Service 권한을 부여하고 사용자 계정에 스냅샷 작업 권한을 부여합니다. 스냅샷 리포지토리를 생성하고 버킷을 가리킵니다.

1. Amazon OpenSearch Service 도메인에서 스냅샷을 복원합니다.

1. 클라이언트 애플리케이션에서 Amazon OpenSearch Service 도메인을 가리키도록 합니다.

1. 보존을 구성하기 위한 인덱스 상태 관리(ISM) 정책을 생성합니다(선택 사항).

스냅샷은 증분식입니다. 따라서 스냅샷을 점진적으로 실행하고 복원할 수 있습니다. 스냅샷을 사용하면 스토리지 시스템(예: Amazon S3)에서 데이터를 파일로 대량 추출할 수 있습니다. 그런 다음 `_restore` API 작업을 사용하여 대상 환경에 이러한 파일을 로드할 수 있습니다. 이렇게 하면 시간이 많이 걸리는 재인덱싱이 필요하지 않으며 네트워크 트래픽도 줄어듭니다.

## 스냅샷 고려 사항
<a name="snapshot-considerations"></a>

스냅샷 복원 접근 방식을 사용할 경우 다음을 고려합니다.
+ 인덱스가 복원되는 동안에는 검색하거나 재인덱싱할 수 없습니다. 그러나 스냅샷을 생성하는 동안 인덱스를 검색하고 다시 인덱싱할 수 있습니다.
+ 소스 및 대상 Elasticsearch 또는 OpenSearch 버전은 호환되어야 합니다. 다음 버전에서 생성된 인덱스의 스냅샷의 경우:
  + 5.x: 6.x로 복원할 수 있음
  + 2.x: 5.x로 복원할 수 있음
  + 1.x: 2.x로 복원할 수 있음
+ 이는 Elasticsearch 또는 OpenSearch 스냅샷의 특정 시점 복원이므로 소스 클러스터의 후속 변경 사항은 대상 Amazon OpenSearch Service 도메인에 복제되지 않습니다. 복원이 완료될 때까지 소스 Elasticsearch 또는 OpenSearch 클러스터로의 데이터 수집을 중지하거나 스냅샷 복원 프로세스를 몇 번 반복할 수 있습니다. 스냅샷은 증분식이므로 첫 번째 복원보다 짧은 시간 내에 대상 환경에서 변경 사항만 복사되고 복원됩니다. 복원이 성공적으로 완료되면 수집 애플리케이션이 Amazon OpenSearch Service 도메인을 가리키도록 합니다.
+ 스냅샷 생성에는 기본적으로 클러스터 상태 및 모든 인덱스의 스냅샷이 포함됩니다. Elasticsearch에서 마이그레이션할 경우 OpenSearch의 ISM 기능을 사용하여 대상 환경에서 동등한 인덱스 수명 주기 정책을 생성해야 할 수도 있습니다. Amazon OpenSearch Service에서는 Elasticsearch 인덱스 수명 주기 관리(ILM)가 지원되지 않습니다.
+ 스냅샷을 이전 버전의 Elasticsearch 또는 OpenSearch로 복원할 수 없습니다. 예를 들어 버전 7.10의 스냅샷을 7.9로 복원할 수 없습니다. 마찬가지로 Elasticsearch 7.11 이상에서 Amazon OpenSearch Service 도메인으로 스냅샷을 복원할 수 없습니다. 자체 관리형 Elasticsearch 환경을 버전 7.11 이상으로 마이그레이션한 경우 Logstash를 사용하여 Elasticsearch 클러스터에서 데이터를 로드하고 OpenSearch 도메인에 쓸 수 있습니다.
+ 스냅샷을 리포지토리라는 지정된 스토리지 위치로 내보냅니다. Elasticsearch 또는 OpenSearch는 리포지토리에서 여러 파일을 생성합니다. 이러한 파일은 수정하거나 삭제할 수 없습니다. 이렇게 하면 불일치가 발생하거나 복원 프로세스에 실패할 수 있습니다.

# 2. 소스에서 빌드
<a name="build-from-source"></a>

앞서 설명한 것처럼 소스에서 빌드하는 작업은 현재 Elasticsearch 또는 OpenSearch 환경에서 데이터를 마이그레이션하지 않는 접근 방식입니다. 대신 로그 또는 제품 카탈로그 데이터 소스나 콘텐츠 소스로부터 직접 대상 도메인에 인덱스를 빌드합니다.

소스에서 빌드하는 경우 두 가지 옵션을 사용할 수 있습니다. 선택하는 옵션은 데이터의 데이터 유형에 따라 다릅니다.
+ AWS Database Migration Service 사용 - 데이터 소스가 관계형 데이터베이스 관리 시스템(RDBMS)이고 소스가 AWS Database Migration Service(AWS DMS)에서 지원되는 경우 AWS DMS를 사용하여 데이터 소스에서 대상 Amazon OpenSearch Service 도메인으로 데이터를 복사할 수 있습니다. AWS DMS는 전체 로드 및 변경 데이터 캡처(CDC) 옵션을 지원합니다. 전체 로드 옵션에서 AWS DMS 태스크는 소스 데이터베이스 테이블의 모든 데이터를 대상 OpenSearch 인덱스로 복사합니다. 기본 매핑을 사용하거나 사용자 지정 매핑 구성을 제공할 수 있습니다. CDC 옵션에서 AWS DMS는 먼저 소스 테이블 레코드의 전체 사본을 대상 OpenSearch 인덱스로 만듭니다. 그런 다음 변경된 데이터(업데이트 및 삽입)를 캡처하고 OpenSearch 인덱스에 복사합니다. 자세한 내용은 블로그 게시물 [Introducing Amazon Elasticsearch Service as a target in AWS Database Migration Service](https://aws.amazon.com/blogs/database/introducing-amazon-elasticsearch-service-as-a-target-in-aws-database-migration-service/) 및 [Scale Amazon Elasticsearch Service for AWS Database Migration Service migrations](https://aws.amazon.com/blogs/database/scale-amazon-elasticsearch-service-for-aws-database-migration-service-migrations/)를 참조하세요.
+ 문서 소스에서 빌드 - 데이터 소스가 RDBMS가 아니거나 AWS DMS에서 지원되지 않는 경우 오픈 소스 도구 또는 오픈 소스 도구와 AWS 서비스의 조합을 사용하여 사용자 지정 솔루션을 생성해야 할 수도 있습니다. 소스 데이터를 OpenSearch에 로드하려면 먼저 JSON 문서로 변환해야 합니다. 소스에서 현재 Elasticsearch 또는 OpenSearch 환경으로 파이프라인을 이미 설정한 경우 Amazon OpenSearch Service 도메인에서 클라이언트 라이브러리의 적절한 변경 사항과 인덱스의 데이터 모델 변경 사항(필요한 경우)을 사용하여 해당 데이터 파이프라인이 OpenSearch를 가리키도록 지정할 수 있습니다. 소스에서 인덱스를 빌드할 경우 다음 사항을 고려해야 합니다.
  + 문서 위치 - 문서가 이미 AWS 클라우드, Amazon S3와 같은 객체 스토리지에서 사용 가능하거나 파일 시스템과 같은 온프레미스 스토리지 위치에 저장될 수 있습니다.
  + 문서 형식 - 문서가 이미 JSON 형식이거나 Amazon OpenSearch Service 도메인에 수집할 준비가 되었거나 Amazon OpenSearch Service 도메인에 수집되기 전에 JSON으로 정리, 처리 및 형식을 지정해야 할 수 있습니다.

소스에서 빌드하려면 다음과 같은 상위 단계가 필요합니다.

1. Amazon OpenSearch Service 도메인에서 인덱스 매핑 및 설정을 정의하세요.

1. 문서 소스에서 데이터를 추출하고 Amazon S3와 같은 객체 스토리지 위치에 복사하세요. 오픈 소스 도구(예: Logstash), AWS 서비스 클라이언트(예: Amazon Kinesis Agent), 서드 파티 상용 도구 또는 사용자 지정 프로그램을 사용할 수 있습니다.

1. 오픈 소스 도구(예: Logstash 또는 Fluent Bit) 또는 네이티브 AWS 서비스(예: AWS Lambda 또는 AWS DMS)를 구성하여 데이터를 JSON 문서로 변환하고 객체 저장소에서 Amazon OpenSearch Service 도메인으로 주기적으로 또는 지속적으로 로드하세요.

자세한 내용은 [Loading streaming data into Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/integrations.html)를 참조하세요.

# 3. 원격 재인덱스
<a name="remote-reindexing"></a>

이 경우 소스 자체 관리형 Elasticsearch 또는 OpenSearch 클러스터의 인덱스는 [문서 재인덱스 API 작업](https://docs.opensearch.org/latest/api-reference/document-apis/reindex/)을 사용하여 Amazon OpenSearch Service 도메인으로 마이그레이션됩니다. 문서 재인덱스 API 작업을 사용하여 기존 Elasticsearch 또는 OpenSearch 인덱스에서 인덱스를 생성할 수 있습니다. 기존 인덱스는 재인덱스 작업을 실행하는 동일한 클러스터에 있거나 원격 클러스터에 있을 수 있습니다. Amazon OpenSearch Service는 원격 클러스터에서 문서 재인덱스 API 작업 사용을 지원합니다. 자체 관리형 Elasticsearch의 인덱스에서 Amazon OpenSearch Service의 인덱스로 재인덱싱할 수 있습니다.

원격 재인덱스는 원격 Elasticsearch 클러스터의 경우 Elasticsearch 1.5 이상을 지원하고 로컬 도메인의 경우 Amazon OpenSearch Service 6.7 이상을 지원합니다. 자세한 내용은 블로그 게시물 [Migrate data into Amazon ES using remote reindex](https://aws.amazon.com/blogs/big-data/migrate-data-into-amazon-es-using-remote-reindex/)를 참조하세요. 이 블로그 게시물에서는 Amazon Elasticsearch를 참조하지만 지침은 Amazon OpenSearch Service 도메인에 동일하게 적용됩니다.

# 4. Logstash 사용
<a name="logstash"></a>

[Logstash](https://www.elastic.co/guide/en/logstash/current/index.html)는 소스에서 데이터를 수집하고, 변환 또는 필터링을 수행하며, 데이터를 하나 이상의 대상으로 전송할 수 있는 오픈 소스 데이터 처리 도구입니다. Amazon OpenSearch Service 도메인에 데이터를 쓰기 위해 Logstash는 다음 플러그인을 제공합니다.
+ logstash-input-elasticsearch
+ logstash-input-opensearch
+ logstash-output-OpenSearch

자세한 내용은 [Loading data into Amazon OpenSearch Service with Logstash](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-logstash.html) 및 OpenSearch 블로그 게시물 [Introducing logstash-input-opensearch plugin for OpenSearch](https://opensearch.org/blog/community/2022/05/introducing-logstash-input-opensearch-plugin-for-opensearch/)를 참조하세요.