기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon OpenSearch Service의 클러스터 간 복제
Amazon OpenSearch Service의 클러스터 간 복제를 사용하면 특정 OpenSearch 서비스 도메인에서 다른 도메인으로 사용자 인덱스, 매핑 및 메타데이터를 복제할 수 있습니다. 클러스터 간 복제를 사용하면 중단 시 재해 복구를 보장하는 데 도움이 되며, 지리적으로 멀리 떨어진 데이터 센터 간에 데이터를 복제하여 대기 시간을 줄일 수 있습니다. 도메인 간에 전송된 데이터에 대한 표준 AWS 데이터 전송 요금
클러스터 간 복제는 로컬 또는 팔로어 인덱스가 원격 또는 리더 인덱스에서 데이터를 가져오는 액티브-패시브 복제 모델을 따릅니다. 리더 인덱스는 데이터 원본 또는 데이터를 복제하려는 인덱스를 나타냅니다. 팔로워 인덱스는 데이터 대상 또는 데이터를 복제하려는 인덱스를 나타냅니다.
클러스터 간 복제는 Elasticsearch 7.10 또는 OpenSearch 1.1 이상을 실행하는 도메인에서 사용할 수 있습니다.
참고
이 설명서에서는 Amazon OpenSearch Service 관점에서 교차 클러스터 복제를 설정하는 방법을 설명합니다. 여기에는 AWS Management Console을 사용하여 자체 관리형 OpenSearch 클러스터에서는 불가능한 교차 클러스터 연결을 설정하는 작업이 포함됩니다. 설정 참조 및 포괄적인 API 참조를 포함한 전체 설명서는 OpenSearch 설명서의 Cross-cluster replication
제한 사항
클러스터 간 복제에는 다음 제한 사항이 적용됩니다.
-
Amazon OpenSearch Service 도메인과 자체 관리형 OpenSearch 또는 Elasticsearch 클러스터 간에는 데이터를 복제할 수 없습니다.
-
팔로워 도메인의 인덱스를 다른 팔로워 도메인으로 복제할 수 없습니다. 인덱스를 여러 팔로워 도메인에 복제하려는 경우 단일 리더 도메인에서만 복제할 수 있습니다.
-
도메인은 인바운드 연결과 아웃바운드 연결의 조합을 통해 최대 20개의 다른 도메인에 연결할 수 있습니다.
-
클러스터 간 연결을 처음 설정할 때는 리더 도메인이 팔로워 도메인과 같거나 상위 버전에 있어야 합니다.
-
AWS CloudFormation을 사용하여 도메인을 연결할 수 없습니다.
-
M3 또는 버스트 가능(T2 및 T3) 인스턴스에서는 클러스터 간 복제를 사용할 수 없습니다.
-
UltraWarm 또는 콜드 인덱스 간에는 데이터를 복제할 수 없습니다. 두 인덱스 모두 핫 스토리지에 있어야 합니다.
-
리더 도메인에서 인덱스를 삭제해도 팔로워 도메인의 해당 인덱스는 자동으로 삭제되지 않습니다.
사전 조건
클러스터 간 복제를 설정하기 전에 도메인이 다음 요구 사항을 충족하는지 확인하세요.
-
Elasticsearch 7.10 또는 OpenSearch 1.1 이상
-
세분화된 액세스 제어를 사용하도록 설정됨
-
노드 간 암호화를 사용하도록 설정됨
권한 요구 사항
복제를 시작하려면 원격(리더) 도메인에 대한 es:ESCrossClusterGet
권한을 포함해야 합니다. 원격 도메인에서 다음 IAM 정책을 사용하는 것이 좋습니다. 이 정책을 사용하면 문서 인덱싱 및 표준 검색 수행과 같은 다른 작업까지 수행할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/leader-domain/*" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/leader-domain" } ] }
es:ESCrossClusterGet
권한이 /leader-domain/*
이 아닌 /leader-domain
에 적용되었는지 확인합니다.
관리자가 아닌 사용자가 복제 작업을 수행하려면 해당 사용자도 적절한 권한에 매핑되어야 합니다. 대부분의 권한은 특정 REST API 작업indices:admin/plugins/replication/index/_resume
권한을 사용하면 인덱스 복제를 재개할 수 있습니다. 전체 권한 목록은 OpenSearch 문서에서 복제 권한
참고
복제를 시작하고 복제 규칙을 생성하는 명령은 특별한 경우입니다. 리더 도메인과 팔로워 도메인에서 백그라운드 프로세스를 호출하기 때문에 요청에서 leader_cluster_role
및 follower_cluster_role
을(를) 통과해야 합니다. OpenSearch Service는 모든 백엔드 복제 작업에서 이러한 역할을 사용합니다. 이러한 역할을 매핑하고 사용하는 데 대한 자세한 내용은 OpenSearch 문서에서 리더 및 팔로워 클러스터 역할 매핑
클러스터 간 연결 설정
특정 도메인에서 다른 도메인으로 인덱스를 복제하려면 도메인 간에 클러스터 간 연결을 설정해야 합니다. 도메인을 연결하는 가장 쉬운 방법은 도메인 대시보드의 [연결(Connections)] 탭을 사용하는 것입니다. 구성 API 또는 AWS CLI를 사용할 수도 있습니다. 클러스터 간 복제는 ‘풀’ 모델을 따르므로 팔로워 도메인에서 연결을 초기화합니다.
참고
이전에 클러스터 간 검색을 수행하기 위해 2개의 도메인을 연결한 경우, 동일한 연결을 복제에 사용할 수 없습니다. 해당 연결은 콘솔에서 SEARCH_ONLY
로 표시됩니다. 이전에 연결된 두 도메인 간에 복제를 수행하려면 연결을 삭제하고 다시 생성해야 합니다. 이렇게 하면 교차 클러스터 검색 및 교차 클러스터 복제 모두에 연결을 사용할 수 있습니다.
연결을 설정하려면
-
Amazon OpenSearch Service 콘솔에서 팔로워 도메인을 선택하고 [연결(Connections)] 탭으로 이동하여 [요청(Request)]을 선택합니다.
-
[연결 별칭(Connection alias)]에 연결 이름을 입력합니다.
-
AWS 계정 및 리전 또는 다른 계정 또는 리전의 도메인 연결 중에서 선택합니다.
-
AWS 계정 및 리전의 도메인에 연결하려면 도메인을 선택하고 [요청(Request)]을 선택합니다.
-
다른 AWS 계정 또는 리전의 도메인에 연결하려면 원격 도메인의 ARN을 지정하고 [요청(Request)]을 선택합니다.
-
OpenSearch 서비스는 연결 요청을 검증합니다. 도메인이 서로 호환되지 않으면 연결이 실패합니다. 검증에 성공하면 승인을 위해 대상 도메인으로 전송됩니다. 대상 도메인이 요청을 승인하면 복제를 시작할 수 있습니다.
클러스터 간 복제는 양방향 복제를 지원합니다. 즉, 도메인 A에서 도메인 B로의 아웃바운드 연결과 도메인 B에서 도메인 A로의 또 다른 아웃바운드 연결을 만들 수 있습니다. 그런 다음 도메인 A가 도메인 B의 인덱스를 따르고 도메인 B가 도메인 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 문서에서 리더 및 팔로워 클러스터 역할 매핑
복제 확인
복제가 진행되고 있는지 확인하려면 복제 상태를 가져옵니다.
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"
}
}
]
}
}
복제 일시 중지 및 다시 시작
문제를 해결하거나 리더 도메인의 부하를 줄여야 하는 경우 복제를 일시적으로 중지할 수 있습니다. 이 요청을 팔로워 도메인에 보냅니다. 다음과 같이 빈 요청 본문을 포함해야 합니다.
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시간 이상 일시 중지된 후에는 복제를 재개할 수 없습니다. 복제를 중지하고 팔로워 인덱스를 삭제한 다음 리더의 복제를 다시 시작해야 합니다.
복제 중지
복제를 완전히 중지하면 팔로워 인덱스가 리더를 팔로우하지 않고 표준 인덱스가 됩니다. 복제를 중지한 후에는 다시 시작할 수 없습니다.
팔로워 도메인에서 복제를 중지합니다. 다음과 같이 빈 요청 본문을 포함해야 합니다.
POST _plugins/_replication/follower-01
/_stop
{}
자동 팔로우
단일 리더 도메인에 대해 지정된 패턴과 일치하는 인덱스를 자동으로 복제하는 일련의 복제 규칙을 정의할 수 있습니다. 리더 도메인의 인덱스가 패턴 중 하나와 일치하는 경우(예: books*
), 일치하는 팔로워 인덱스가 팔로워 도메인에 생성됩니다. OpenSearch Service에서는 패턴과 일치하는 기존 인덱스와 사용자가 생성하는 새 인덱스를 복제합니다. 팔로워 도메인에 이미 있는 인덱스는 복제하지 않습니다.
시스템에서 생성한 인덱스와 팔로워 도메인에 이미 있는 인덱스를 제외한 모든 인덱스를 복제하려면 와일드카드(*
) 패턴을 사용합니다.
복제 규칙 생성
팔로워 도메인에 복제 규칙을 생성하고 클러스터 간 연결의 이름을 지정합니다.
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 문서에서 리더 및 팔로워 클러스터 역할 매핑
도메인의 기존 복제 규칙 목록을 검색하려면 자동 팔로우 통계 API 작업
규칙을 테스트하려면 리더 도메인의 패턴과 일치하는 인덱스를 생성합니다.
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
복제 규칙 삭제
복제 규칙을 삭제하면 OpenSearch Service가 패턴과 일치하는 새 인덱스의 복제를 중지하지만, 기존 복제 작업은 해당 인덱스의 복제를 중지할 때까지 계속합니다.
팔로워 도메인에서 복제 규칙을 삭제합니다.
DELETE _plugins/_replication/_autofollow
{
"leader_alias" : "connection-alias
",
"name": "rule-name
"
}
연결된 도메인 업그레이드
클러스터 간 연결이 있는 두 도메인의 엔진 버전을 업그레이드하려면 먼저 팔로워 도메인을 업그레이드한 다음 리더 도메인을 업그레이드하십시오. 두 도메인 간 연결을 삭제하면 복제가 일시 중지되고 다시 시작할 수 없으므로 연결을 삭제해서는 안 됩니다.