

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

# Amazon OpenSearch Service의 클러스터 간 복제
<a name="replication"></a>

Amazon OpenSearch Service의 클러스터 간 복제를 사용하면 특정 OpenSearch 서비스 도메인에서 다른 도메인으로 사용자 인덱스, 매핑 및 메타데이터를 복제할 수 있습니다. 클러스터 간 복제를 사용하면 중단 시 재해 복구를 보장하는 데 도움이 되며, 지리적으로 멀리 떨어진 데이터 센터 간에 데이터를 복제하여 대기 시간을 줄일 수 있습니다. 도메인 간에 [전송되는 AWS 데이터에 대해 표준 데이터 전송 요금을](https://aws.amazon.com/opensearch-service/pricing/) 지불합니다.

클러스터 간 복제는 *로컬* 또는 *팔로어* 인덱스가 *원격* 또는 *리더* 인덱스에서 데이터를 가져오는 액티브-패시브 복제 모델을 따릅니다. 리더 인덱스는 데이터 원본 또는 데이터를 복제하려는 인덱스를 나타냅니다. 팔로워 인덱스는 데이터 대상 또는 데이터를 복제하려는 인덱스를 나타냅니다.

클러스터 간 복제는 Elasticsearch 7.10 또는 OpenSearch 1.1 이상을 실행하는 도메인에서 사용할 수 있습니다.

**참고**  
이 설명서에서는 Amazon OpenSearch Service 관점에서 교차 클러스터 복제를 설정하는 방법을 설명합니다. 여기에는 AWS Management Console 를 사용하여 자체 관리형 OpenSearch 클러스터에서 불가능한 교차 클러스터 연결을 설정하는 것이 포함됩니다. 설정 참조 및 포괄적인 API 참조를 포함한 전체 설명서는 OpenSearch 설명서의 [Cross-cluster replication](https://docs.opensearch.org/latest/tuning-your-cluster/replication-plugin/index/)을 참조하세요.

**Topics**
+ [제한 사항](#replication-limitations)
+ [사전 조건](#replication-prereqs)
+ [권한 요구 사항](#replication-permissions)
+ [클러스터 간 연결 설정](#replication-connect)
+ [복제 시작](#replication-start)
+ [복제 확인](#replication-confirm)
+ [복제 일시 중지 및 다시 시작](#replication-pause-resume)
+ [복제 중지](#replication-stop)
+ [자동 팔로우](#replication-autofollow)
+ [연결된 도메인 업그레이드](#replication-upgrade)

## 제한 사항
<a name="replication-limitations"></a>

클러스터 간 복제에는 다음 제한 사항이 적용됩니다.
+ Amazon OpenSearch Service 도메인과 자체 관리형 OpenSearch 또는 Elasticsearch 클러스터 간에는 데이터를 복제할 수 없습니다.
+ 팔로워 도메인의 인덱스를 다른 팔로워 도메인으로 복제할 수 없습니다. 인덱스를 여러 팔로워 도메인에 복제하려는 경우 단일 리더 도메인에서만 복제할 수 있습니다.
+ 도메인은 인바운드 연결과 아웃바운드 연결의 조합을 통해 최대 20개의 다른 도메인에 연결할 수 있습니다.
+ 클러스터 간 연결을 처음 설정할 때는 리더 도메인이 팔로워 도메인과 같거나 상위 버전에 있어야 합니다.
+  CloudFormation 를 사용하여 도메인을 연결할 수 없습니다.
+ M3 또는 버스트 가능(T2 및 T3) 인스턴스에서는 클러스터 간 복제를 사용할 수 없습니다.
+ UltraWarm 또는 콜드 인덱스 간에는 데이터를 복제할 수 없습니다. 두 인덱스 모두 핫 스토리지에 있어야 합니다.
+ 리더 도메인에서 인덱스를 삭제해도 팔로워 도메인의 해당 인덱스는 자동으로 삭제되지 않습니다.
+ 클러스터 간 복제는 기본 및 [옵트인 ](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)간에 지원되지 않습니다. 두 도메인 모두 기본 리전 또는 옵트인 리전에 있어야 합니다.

## 사전 조건
<a name="replication-prereqs"></a>

클러스터 간 복제를 설정하기 전에 도메인이 다음 요구 사항을 충족하는지 확인하세요.
+ Elasticsearch 7.10 또는 OpenSearch 1.1 이상
+ [세분화된 액세스 제어](fgac.md)를 사용하도록 설정됨
+ [노드 간 암호화](ntn.md)를 사용하도록 설정됨
+ 리더 인덱스는 로 `index.soft_deletes.enabled` 설정되어 있어야 합니다`true`. Elasticsearch 7.0 또는 OpenSearch 1.0 이상에서 생성된 인덱스에는 기본적으로이 설정이 활성화되어 있습니다. 그러나 Elasticsearch 6.x에서 생성된 후 업그레이드된 인덱스는를 유지합니다`soft_deletes=false`. 이러한 인덱스를 복제하려면 먼저 인덱스를 다시 인덱싱해야 합니다.

  인덱스에 소프트 삭제가 활성화되어 있는지 확인하려면:

  ```
  GET <index-name>/_settings?include_defaults=true&flat_settings=true&filter_path=*.settings.index.soft_deletes.enabled
  ```

  이 `soft_deletes`인 경우 복제를 시작하기 전에 데이터를 새 인덱스로 `false`다시 인덱싱합니다.

## 권한 요구 사항
<a name="replication-permissions"></a>

복제를 시작하려면 원격(리더) 도메인에 대한 `es:ESCrossClusterGet` 권한을 포함해야 합니다. 원격 도메인에서 다음 IAM 정책을 사용하는 것이 좋습니다. 이 정책을 사용하면 문서 인덱싱 및 표준 검색 수행과 같은 다른 작업까지 수행할 수 있습니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "*"
        ]
      },
      "Action": [
        "es:ESHttp*"
      ],
      "Resource": "arn:aws:es:us-east-1:111122223333:domain/leader-domain/*"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:ESCrossClusterGet",
      "Resource": "arn:aws:es:us-east-1:111122223333:domain/leader-domain"
    }
  ]
}
```

------

`es:ESCrossClusterGet` 권한이 `/leader-domain/*`이 아닌 `/leader-domain`에 적용되었는지 확인합니다.

관리자가 아닌 사용자가 복제 작업을 수행하려면 해당 사용자도 적절한 권한에 매핑되어야 합니다. 대부분의 권한은 특정 [REST API 작업](https://docs.opensearch.org/latest/tuning-your-cluster/replication-plugin/api/)에 해당합니다. 예를 들어 `indices:admin/plugins/replication/index/_resume` 권한을 사용하면 인덱스 복제를 재개할 수 있습니다. 전체 권한 목록은 OpenSearch 문서에서 [복제 권한](https://docs.opensearch.org/latest/tuning-your-cluster/replication-plugin/permissions/#replication-permissions)을 참조하세요.

**참고**  
복제를 시작하고 복제 규칙을 생성하는 명령은 특별한 경우입니다. 리더 도메인과 팔로워 도메인에서 백그라운드 프로세스를 호출하기 때문에 요청에서 `leader_cluster_role` 및 `follower_cluster_role`을(를) 통과해야 합니다. OpenSearch Service는 모든 백엔드 복제 작업에서 이러한 역할을 사용합니다. 이러한 역할을 매핑하고 사용하는 데 대한 자세한 내용은 OpenSearch 문서에서 [리더 및 팔로워 클러스터 역할 매핑](https://docs.opensearch.org/latest/tuning-your-cluster/replication-plugin/permissions/#map-the-leader-and-follower-cluster-roles)을 참조하세요.

## 클러스터 간 연결 설정
<a name="replication-connect"></a>

특정 도메인에서 다른 도메인으로 인덱스를 복제하려면 도메인 간에 클러스터 간 연결을 설정해야 합니다. 도메인을 연결하는 가장 쉬운 방법은 도메인 대시보드의 [**연결(Connections)**] 탭을 사용하는 것입니다. [구성 API](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/Welcome.html) 또는 [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/opensearch/create-outbound-connection.html)를 사용할 수도 있습니다. 클러스터 간 복제는 ‘풀’ 모델을 따르므로 팔로워 도메인에서 연결을 초기화합니다.

**참고**  
이전에 [클러스터 간 검색](cross-cluster-search.md)을 수행하기 위해 2개의 도메인을 연결한 경우, 동일한 연결을 복제에 사용할 수 없습니다. 해당 연결은 콘솔에서 `SEARCH_ONLY`로 표시됩니다. 이전에 연결된 두 도메인 간에 복제를 수행하려면 연결을 삭제하고 다시 생성해야 합니다. 이렇게 하면 교차 클러스터 검색 및 교차 클러스터 복제 모두에 연결을 사용할 수 있습니다.

**연결을 설정하려면**

1. Amazon OpenSearch Service 콘솔에서 팔로워 도메인을 선택하고 [**연결(Connections)**] 탭으로 이동하여 [**요청(Request)**]을 선택합니다.

1. [**연결 별칭(Connection alias)**]에 연결 이름을 입력합니다.

1.  AWS 계정 및 리전 또는 다른 계정 또는 리전의 도메인에 연결할지 선택합니다.
   +  AWS 계정 및 리전의 도메인에 연결하려면 도메인을 선택하고 **요청을** 선택합니다.
   + 다른 AWS 계정 또는 리전의 도메인에 연결하려면 원격 도메인의 ARN을 지정하고 **요청을** 선택합니다.

OpenSearch 서비스는 연결 요청을 검증합니다. 도메인이 서로 호환되지 않으면 연결이 실패합니다. 검증에 성공하면 승인을 위해 대상 도메인으로 전송됩니다. 대상 도메인이 요청을 승인하면 복제를 시작할 수 있습니다.

클러스터 간 복제는 양방향 복제를 지원합니다. 즉, 도메인 A에서 도메인 B로의 아웃바운드 연결과 도메인 B에서 도메인 A로의 또 다른 아웃바운드 연결을 만들 수 있습니다. 그런 다음 도메인 A가 도메인 B의 인덱스를 따르고 도메인 B가 도메인 A의 인덱스를 따르도록 복제를 설정할 수 있습니다.

## 복제 시작
<a name="replication-start"></a>

클러스터 간 연결을 설정하고 나면 데이터 복제를 시작할 수 있습니다. 먼저 복제할 리더 도메인에 인덱스를 생성합니다.

```
PUT leader-01
```

해당 인덱스를 복제하기 위해 다음 명령을 팔로워 도메인으로 보냅니다.

```
PUT _plugins/_replication/follower-01/_start
{
   "leader_alias": "connection-alias",
   "leader_index": "leader-01",
   "use_roles":{
      "leader_cluster_role": "all_access",
      "follower_cluster_role": "all_access"
   }
}
```

도메인 대시보드의 **연결(Connections)** 탭에서 연결 별칭을 찾을 수 있습니다.

이 예에서는 설명의 편의를 위해 관리자가 요청을 실행하고 `leader_cluster_role` 및 `follower_cluster_role`(으)로 `all_access`을(를) 사용하는 것으로 가정합니다. 하지만 프로덕션 환경에서는 리더 및 팔로워 인덱스 모두에 복제 사용자를 생성하고 그에 따라 매핑하는 것이 좋습니다. 사용자 이름은 동일해야 합니다. 이러한 역할과 그 매핑 방법에 대한 자세한 내용은 OpenSearch 문서에서 [리더 및 팔로워 클러스터 역할 매핑](https://docs.opensearch.org/latest/tuning-your-cluster/replication-plugin/permissions/#map-the-leader-and-follower-cluster-roles)을 참조하세요.

## 복제 확인
<a name="replication-confirm"></a>

복제가 진행되고 있는지 확인하려면 복제 상태를 가져옵니다.

```
GET _plugins/_replication/follower-01/_status

{
  "status" : "SYNCING",
  "reason" : "User initiated",
  "leader_alias" : "connection-alias",
  "leader_index" : "leader-01",
  "follower_index" : "follower-01",
  "syncing_details" : {
    "leader_checkpoint" : -5,
    "follower_checkpoint" : -5,
    "seq_no" : 0
  }
}
```

리더 및 팔로워 체크포인트 값은 음의 정수로 시작하며, 보유한 샤드 수를 반영합니다(샤드가 하나인 경우 -1, 샤드가 5개인 경우 -5 등과 같은 식임). 변경할 때마다 값이 양의 정수로 증가합니다. 값이 동일하면 인덱스가 완전히 동기화되었음을 의미합니다. 이러한 체크포인트 값을 사용하여 도메인 전체의 복제 대기 시간을 측정할 수 있습니다.

복제를 추가로 검증하려면 리더 인덱스에 문서를 추가합니다.

```
PUT leader-01/_doc/1
{
   "Doctor Sleep":"Stephen King"
}
```

그리고 팔로워 인덱스에 표시되는지 확인합니다.

```
GET follower-01/_search

{
    ...
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "follower-01",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "Doctor Sleep" : "Stephen King"
        }
      }
    ]
  }
}
```

## 복제 일시 중지 및 다시 시작
<a name="replication-pause-resume"></a>

문제를 해결하거나 리더 도메인의 부하를 줄여야 하는 경우 복제를 일시적으로 중지할 수 있습니다. 이 요청을 팔로워 도메인에 보냅니다. 다음과 같이 빈 요청 본문을 포함해야 합니다.

```
POST _plugins/_replication/follower-01/_pause
{}
```

그런 다음 상태를 가져와 복제가 일시 중지되었는지 확인합니다.

```
GET _plugins/_replication/follower-01/_status

{
  "status" : "PAUSED",
  "reason" : "User initiated",
  "leader_alias" : "connection-alias",
  "leader_index" : "leader-01",
  "follower_index" : "follower-01"
}
```

변경을 마치면 복제를 다시 시작합니다. 이 요청을 팔로워 도메인에 보냅니다. 다음과 같이 빈 요청 본문을 포함해야 합니다.

```
POST _plugins/_replication/follower-01/_resume
{}
```

12시간 이상 일시 중지된 후에는 복제를 재개할 수 없습니다. 복제를 중지하고 팔로워 인덱스를 삭제한 다음 리더의 복제를 다시 시작해야 합니다.

## 복제 중지
<a name="replication-stop"></a>

복제를 완전히 중지하면 팔로워 인덱스가 리더를 팔로우하지 않고 표준 인덱스가 됩니다. 복제를 중지한 후에는 다시 시작할 수 없습니다.

팔로워 도메인에서 복제를 중지합니다. 다음과 같이 빈 요청 본문을 포함해야 합니다.

```
POST _plugins/_replication/follower-01/_stop
{}
```

## 자동 팔로우
<a name="replication-autofollow"></a>

단일 리더 도메인에 대해 지정된 패턴과 일치하는 인덱스를 자동으로 복제하는 일련의 복제 규칙을 정의할 수 있습니다. 리더 도메인의 인덱스가 패턴 중 하나와 일치하는 경우(예: `books*`), 일치하는 팔로워 인덱스가 팔로워 도메인에 생성됩니다. OpenSearch Service에서는 패턴과 일치하는 기존 인덱스와 사용자가 생성하는 새 인덱스를 복제합니다. 팔로워 도메인에 이미 있는 인덱스는 복제하지 않습니다.

시스템에서 생성한 인덱스와 팔로워 도메인에 이미 있는 인덱스를 제외한 모든 인덱스를 복제하려면 와일드카드(`*`) 패턴을 사용합니다.

### 복제 규칙 생성
<a name="replication-rule-create"></a>

팔로워 도메인에 복제 규칙을 생성하고 클러스터 간 연결의 이름을 지정합니다.

```
POST _plugins/_replication/_autofollow
{
   "leader_alias" : "connection-alias",
   "name": "rule-name",
   "pattern": "books*",
   "use_roles":{
      "leader_cluster_role": "all_access",
      "follower_cluster_role": "all_access"
   }
}
```

도메인 대시보드의 **연결(Connections)** 탭에서 연결 별칭을 찾을 수 있습니다.

이 예에서는 설명의 편의를 위해 관리자가 요청을 실행하고 리더 및 팔로워 도메인 역할로 `all_access`을(를) 사용하는 것으로 가정합니다. 하지만 프로덕션 환경에서는 리더 및 팔로워 인덱스 모두에 복제 사용자를 생성하고 그에 따라 매핑하는 것이 좋습니다. 사용자 이름은 동일해야 합니다. 이러한 역할과 그 매핑 방법에 대한 자세한 내용은 OpenSearch 문서에서 [리더 및 팔로워 클러스터 역할 매핑](https://docs.opensearch.org/latest/tuning-your-cluster/replication-plugin/permissions/#map-the-leader-and-follower-cluster-roles)을 참조하세요.

도메인의 기존 복제 규칙 목록을 검색하려면 [자동 팔로우 통계 API 작업](https://docs.opensearch.org/latest/tuning-your-cluster/replication-plugin/api/#get-auto-follow-stats)을 사용합니다.

규칙을 테스트하려면 리더 도메인의 패턴과 일치하는 인덱스를 생성합니다.

```
PUT books-are-fun
```

그리고 해당 복제본이 팔로워 도메인에 표시되는지 확인합니다.

```
GET _cat/indices

health status index          uuid                     pri rep docs.count docs.deleted store.size pri.store.size
green  open   books-are-fun  ldfHO78xYYdxRMULuiTvSQ     1   1          0            0       208b           208b
```

### 복제 규칙 삭제
<a name="replication-rule-delete"></a>

복제 규칙을 삭제하면 OpenSearch Service가 패턴과 일치하는 *새* 인덱스의 복제를 중지하지만, 기존 복제 작업은 해당 인덱스의 [복제를 중지](#replication-stop)할 때까지 계속합니다.

팔로워 도메인에서 복제 규칙을 삭제합니다.

```
DELETE _plugins/_replication/_autofollow
{
   "leader_alias" : "connection-alias",
   "name": "rule-name"
}
```

## 연결된 도메인 업그레이드
<a name="replication-upgrade"></a>

클러스터 간 연결이 있는 두 도메인의 엔진 버전을 업그레이드하려면 먼저 팔로워 도메인을 업그레이드한 다음 리더 도메인을 업그레이드하십시오. 두 도메인 간 연결을 삭제하면 복제가 일시 중지되고 다시 시작할 수 없으므로 연결을 삭제해서는 안 됩니다.