

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

# Amazon OpenSearch Service에서 구성 변경
<a name="managedomains-configuration-changes"></a>

Amazon OpenSearch Service는 도메인을 업데이트할 때 *블루/그린* 배포 프로세스를 사용합니다. 블루/그린 배포는 프로덕션 환경을 복제하고 업데이트가 완료되면 사용자를 새 환경으로 라우팅하는 도메인 업데이트용으로 유휴 환경을 만듭니다. 블루/그린 배포에서는 블루 환경이 현재 프로덕션 환경입니다. 그린 환경은 유휴 환경입니다.

데이터는 블루 환경에서 그린 환경으로 마이그레이션됩니다. 새 환경이 준비되면 OpenSearch Service가 환경을 전환하여 그린 환경을 새로운 프로덕션 환경으로 승격할 수 있습니다. 전환은 데이터 손실 없이 이루어집니다. 이렇게 하면 가동 중지가 최소화되고, 새로운 환경에 배포하는 데 실패하더라도 원래의 환경이 유지됩니다.

**Topics**
+ [블루/그린 배포의 원인이 되는 변경 사항](#bg)
+ [블루/그린 배포가 발생하지 않는 변경 사항](#nobg)
+ [블루/그린 배포 옵션](#bg-deployment-options)
+ [변경 사항으로 인해 블루/그린 배포가 발생하는지 판단](#dryrun)
+ [구성 변경 추적](#initiating-tracking-configuration-changes)
+ [구성 변경 단계](#managedomains-config-stages)
+ [블루/그린 배포의 성능 영향](#performance-impact-bluegreen)
+ [구성 변경 비용](#managedomains-config-charges)
+ [Troubleshooting validation errors(검증 오류 문제 해결 중)](#validation)

## 블루/그린 배포의 원인이 되는 변경 사항
<a name="bg"></a>

다음 작업에서는 블루/그린 배포가 사용됩니다.
+ 인스턴스 유형 변경
+ 세분화된 액세스 제어 활성화
+ 서비스 소프트웨어 업데이트 수행
+ 전용 프라이머리 노드 활성화 또는 비활성화
+ Multi-AZ without Standby 활성화 또는 비활성화
+ 스토리지 유형, 볼륨 유형 또는 볼륨 크기 변경
+ 다른 VPC 서브넷 선택
+ VPC 보안 그룹 추가 또는 제거
+ 전용 코디네이터 노드 추가 또는 제거
+ OpenSearch 대시보드에서 Amazon Cognito 인증 활성화 또는 비활성화
+ 다른 Amazon Cognito 사용자 풀 또는 자격 증명 풀 선택
+ 고급 설정 수정
+ 새 OpenSearch 버전으로 업그레이드(업그레이드의 모두 또는 일부 중에 OpenSearch 대시보드를 사용할 수 없음)
+ 저장된 데이터 암호화 또는 노드 간 암호화 활성화
+ UltraWarm 또는 콜드 스토리지 활성화 또는 비활성화
+ 자동 조정 사용 중지 및 변경 내용 롤백
+ 선택적 플러그인을 도메인에 연결 및 선택적 플러그인을 도메인에서 분리
+ 두 개의 전용 마스터 노드를 포함하는 다중 AZ 도메인에 대한 전용 마스터 노드 수 증가
+ EBS 볼륨 크기 감소
+ 마지막 변경이 진행 중이거나 6시간 이내에 발생한 경우 EBS 볼륨 크기, IOPS 또는 처리량 변경
+ CloudWatch에 감사 로그 게시 활성화.

Multi-AZ with Standby 도메인의 경우 한 번에 하나의 변경 요청만 할 수 있습니다. 변경이 이미 진행 중인 경우 새 요청은 거부됩니다. `DescribeDomainChangeProgress` API로 현재 변경의 상태를 확인할 수 있습니다.

## 블루/그린 배포가 발생하지 않는 변경 사항
<a name="nobg"></a>

*대부분*의 경우 다음 작업에서는 블루/그린 배포가 사용되지 않습니다.
+ 액세스 정책 수정
+ 사용자 지정 엔드포인트 수정
+ 전송 계층 보안(TLS) 정책 변경
+ 자동 스냅샷 시간 변경
+ **HTTPS 요구** 활성화 또는 비활성화
+ 변경 사항을 롤백하지 않고 자동 조정 사용 설정 또는 사용 중지
+ 도메인에 전용 마스터 노드가 있는 경우 데이터 노드 또는 UltraWarm 노드 개수 변경 
+ 도메인에 전용 마스터 노드가 있는 경우, 전용 마스터 인스턴스 유형 또는 개수 변경(두 개의 전용 마스터 노드가 있는 다중 AZ 도메인 제외)
+ CloudWatch에 오류 로그 또는 느린 로그 게시 활성화 또는 비활성화
+ CloudWatch에 감사 로그 게시 비활성화
+ gp3 EBS 유형의 볼륨 크기, IOPS 또는 처리량을 늘립니다.
**참고**  
2026년 3월 10일 이전에는 gp3의 경우 최대 3TiB 볼륨에 대해서만 현재 위치 볼륨 증가가 지원되었습니다. 2026년 3월 10일에이 제한이 제거되어 현재 볼륨이 3TiB를 초과하여 증가할 수 있습니다. 그러나이 제한이 제거되기 전에 클러스터의 볼륨 크기가 3TiB를 초과하는 경우 첫 번째 볼륨 증가에는 블루/그린 배포가 필요합니다. 해당 클러스터의 모든 후속 볼륨 증가는 현재 위치 업데이트로 수행되며 블루/그린 배포가 필요하지 않습니다.
+ 태그 추가 및 삭제

**참고**  
서비스 소프트웨어 버전에 따라 몇 가지 예외가 있습니다. 변경 사항으로 인해 블루/그린 배포가 발생하지 않다는 점을 확인하려면 도메인을 업데이트하기 전 [모의 실습](#dryrun)(이 옵션이 사용 가능한 경우)을 수행합니다. 일부 변경은 모의 실행 옵션을 제공하지 않습니다. 일반적으로 피크 트래픽 시간이 아닐 때 클러스터를 변경하는 것이 좋습니다.

## 블루/그린 배포 옵션
<a name="bg-deployment-options"></a>

업데이트 시 충분한 용량을 사용할 수 없는 경우 클러스터가 배포를 처리하는 방법을 제어하려면 배포 전략을 선택합니다.

1. **풀 스왑 블루/그린** - 기본 배포 동작입니다. 전체 인스턴스 용량을 선결제해야 하므로 용량을 사용할 수 있을 때 가장 빠른 배포가 가능합니다. 충분한 용량을 할당할 수 없는 경우 배포가 진행되지 않습니다.

1. **용량 최적화 **- 데이터 노드가 30개 이상인 클러스터에 권장됩니다. 먼저 전체 블루/그린 스왑을 시도하고 용량이 충분하지 않은 경우 배치로 배포를 진행합니다. 용량이 제한된 경우에도 배포가 완료될 수 있도록 합니다. 배포가 배치로 완료되므로 완료 시간이 늘어날 수 있습니다.

------
#### [ Console ]

**도메인 흐름 편집의 경우:**

1. 에서 Amazon OpenSearch Service 콘솔을 엽니다[https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home).

1. 탐색 창의 **도메인**에서 도메인 이름을 선택하여 클러스터 구성을 엽니다.

1. **클러스터 구성** 탭에서 오른쪽에 있는 **편집** 버튼을 클릭합니다.

1. **배포 전략** 옵션에서 도메인 업데이트에 필요한 구성을 선택합니다.

   1. **풀 스왑 블루/그린** - 기본 배포 동작입니다. 전체 인스턴스 용량을 선결제해야 하므로 용량을 사용할 수 있을 때 가장 빠른 배포가 가능합니다. 충분한 용량을 할당할 수 없는 경우 배포가 진행되지 않습니다.

   1. **용량 최적화 **- 데이터 노드가 30개 이상인 클러스터에 권장됩니다. 먼저 전체 블루/그린 스왑을 시도하고 용량이 충분하지 않은 경우 배치로 배포를 진행합니다. 용량이 제한된 경우에도 배포가 완료될 수 있도록 합니다. 배포가 배치로 완료되므로 완료 시간이 늘어날 수 있습니다.

1. **변경 사항 저장**을 선택합니다.

**도메인 생성 흐름의 경우:**

1. 에서 Amazon OpenSearch Service 콘솔을 엽니다[https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home).

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

1. **도메인 생성** 버튼을 클릭합니다.

1. 도메인에 필요한 모든 구성을 선택합니다.

1. **배포 전략** 옵션에서 도메인 업데이트에 필요한 구성을 선택합니다.

   1. **풀 스왑 블루/그린** - 기본 배포 동작입니다. 전체 인스턴스 용량을 선결제해야 하므로 용량을 사용할 수 있을 때 가장 빠른 배포가 가능합니다. 충분한 용량을 할당할 수 없는 경우 배포가 진행되지 않습니다.

   1. **용량 최적화 **- 데이터 노드가 30개 이상인 클러스터에 권장됩니다. 먼저 전체 블루/그린 스왑을 시도하고 용량이 충분하지 않은 경우 배치로 배포를 진행합니다. 용량이 제한된 경우에도 배포가 완료될 수 있도록 합니다. 배포가 배치로 완료되므로 완료 시간이 늘어날 수 있습니다.

1. 오른쪽의 **도메인 요약** 패널에서 **생성** 버튼을 클릭합니다.

------
#### [ API ]

[UpdateDomainConfig](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_UpdateDomainConfig.html) API를 사용하여 배포 전략을 구성할 수 있습니다.

**용량 최적화 옵션**

```
POST https://es.{{us-east-1}}.amazonaws.com/2021-01-01/opensearch/domain/{{my-domain}}/config
{
   "DeploymentStrategyOptions": {
    "DeploymentStrategy": "CapacityOptimized"
   }
}
```

**기본 옵션**

```
POST https://es.{{us-east-1}}.amazonaws.com/2021-01-01/opensearch/domain/{{my-domain}}/config
{
   "DeploymentStrategyOptions": {
    "DeploymentStrategy": "Default"
   }
}
```

------

## 변경 사항으로 인해 블루/그린 배포가 발생하는지 판단
<a name="dryrun"></a>

몇 가지 유형의 계획된 도메인 구성 변경을 테스트하여 해당 변경을 커밋하지 않고도 블루/그린 배포를 유발하는지 여부를 확인할 수 있습니다. 구성 변경을 시작하기 전에 콘솔 또는 API를 사용하여 검증 확인을 실행하여 도메인을 업데이트할 수 있는지 확인합니다.

------
#### [ Console ]

**구성 변경을 검증하는 방법**

1. Amazon OpenSearch Service 콘솔([https://console.aws.amazon.com/aos/](https://console.aws.amazon.com/aos/))로 이동합니다.

1. 왼쪽 탐색 창에서 **Domains**(도메인)를 선택합니다.

1. 구성을 변경할 도메인을 선택합니다. 그러면 도메인 세부 정보 페이지가 열립니다. **Actions**(작업) 드롭다운 메뉴를 선택한 다음 **Edit cluster configuration**(클러스터 구성 편집)을 선택합니다.

1. 인스턴스 유형 또는 노드 수 변경과 같이 도메인을 변경합니다.

1. **모의 실행 분석**에서 **실행**을 선택합니다. 모의 실행은 구성 변경에서 오류를 검증하고 블루/그린 배포가 필요한지 여부를 결정합니다.

1. 모의 실행이 완료되면 모의 실행 ID와 함께 결과가 페이지 하단에 표시됩니다. 이 분석 결과는 구성 변경에 블루/그린 배포가 필요한지 여부를 보여줍니다.

   각 모의 실행은 이전 모의 실행을 덮어씁니다. 각 실행의 세부 정보를 유지하려면 모의 실행 ID를 저장합니다. 모의 실행은 90일 동안 또는 구성을 업데이트할 때까지 사용할 수 있습니다.

1. 구성 업데이트를 계속하려면 **Save changes**(변경 사항 저장)를 선택합니다. 그렇지 않은 경우 **취소**를 선택합니다. 둘 중 어느 옵션을 선택하든 **Cluster configuration**(클러스터 구성) 탭으로 돌아갑니다. 이 탭에서 **Dry run details**(모의 실습 세부 정보)를 선택하여 최신 모의 실습의 세부 정보를 볼 수 있습니다. 이 페이지에는 모의 실습 전 구성과 모의 실습 구성 간의 나란히 비교도 포함되어 있습니다.

------
#### [ API ]

구성 API를 통해 모의 실습 검증을 수행할 수 있습니다. API로 변경 사항을 테스트하려면 `DryRun`을 `true`로 설정하고 `DryRunMode`를 `Verbose`로 설정합니다. 상세 표시 모드는 변경 사항이 블루/그린 배포를 시작할지 여부를 결정하는 것 외에도 검증 확인을 실행합니다. 예를 들어 이 [UpdateDomainConfig](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_UpdateDomainConfig.html) 요청은 UltraWarm을 활성화하여 가져온 배포 유형을 테스트합니다.

```
POST https://es.{{us-east-1}}.amazonaws.com/2021-01-01/opensearch/domain/{{my-domain}}/config
{
   "ClusterConfig": {
    "WarmCount": 3,
    "WarmEnabled": true,
    "WarmType": "ultrawarm1.large.search"
   },
   "DryRun": true,
   "DryRunMode": "Verbose"
}
```

요청은 검증 확인을 실행하고 변경으로 인해 발생할 배포 유형을 반환하지만 실제로 업데이트를 수행하지는 않습니다.

```
{
   "ClusterConfig": {
     ...
    },
   "DryRunResults": {
      "DeploymentType": "Blue/Green",
      "Message": "This change will require a blue/green deployment."
    }
}
```

가능한 배포 유형은 다음과 같습니다.
+ `Blue/Green` - 변경으로 인해 블루/그린 배포가 발생합니다.
+ `DynamicUpdate` - 변경으로 인해 블루/그린 배포가 발생하지 않습니다.
+ `Undetermined` - 도메인이 여전히 처리 중 상태이므로 배포 유형을 결정할 수 없습니다.
+ `None` - 구성 변경이 없습니다.

검증에 실패하면 [검증 실패](#validation) 목록이 반환됩니다.

```
{
   "ClusterConfig":{
      "..."
   },
   "DryRunProgressStatus":{
      "CreationDate":"2023-01-12T01:14:33.847Z",
      "DryRunId":"db00ca39-48b2-4774-bbd3-252cf094d205",
      "DryRunStatus":"failed",
      "UpdateDate":"2023-01-12T01:14:33.847Z",
      "ValidationFailures":[
         {
            "Code":"Cluster.Index.WriteBlock",
            "Message":"Cluster has index write blocks."
         }
      ]
   }
}
```

상태가 여전히 `pending`인 경우 후속 [DescribeDryRunProgress](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_DescribeDryRunProgress.html) 호출에서 UpdateDomainConfig 응답의 모의 실습 ID를 사용하여 검증 상태를 확인할 수 있습니다.

```
GET https://es.{{us-east-1}}.amazonaws.com/2021-01-01/opensearch/domain/{{my-domain}}/dryRun?dryRunId={{my-dry-run-id}}
{
    "DryRunConfig": null,
    "DryRunProgressStatus": {
        "CreationDate": "2023-01-12T01:14:42.998Z",
        "DryRunId": "db00ca39-48b2-4774-bbd3-252cf094d205",
        "DryRunStatus": "succeeded",
        "UpdateDate": "2023-01-12T01:14:49.334Z",
        "ValidationFailures": null
    },
    "DryRunResults": {
        "DeploymentType": "Blue/Green",
        "Message": "This change will require a blue/green deployment."
    }
}
```

검증 확인 없이 모의 실습 분석을 실행하려면 구성 API를 사용할 때 `DryRunMode`를 `Basic`으로 설정합니다.

------
#### [ Python ]

다음 Python 코드는 [UpdateDomainConfig](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_UpdateDomainConfig.html) API를 사용하여 테스트 실행 검증 확인을 수행하고, 검사가 성공하면 테스트 실행 없이 동일한 API를 호출하여 업데이트를 시작합니다. 검사에 실패하면 스크립트는 오류를 출력하고 중지합니다.

```
import time
import boto3

client = boto3.client('opensearch')

response = client.UpdateDomainConfig(
    ClusterConfig={
        'WarmCount': 3,
        'WarmEnabled': True,
        'WarmCount': 123,
    },
    DomainName='test-domain',
    DryRun=True,
    DryRunMode='Verbose'
)

dry_run_id = response.DryRunProgressStatus.DryRunId

retry_count = 0

while True:

    if retry_count == 5:
        print('An error occured')
        break

    dry_run_progress_response = client.DescribeDryRunProgress('test-domain', dry_run_id)
    dry_run_status = dry_run_progress_response.DryRunProgressStatus.DryRunStatus

    if dry_run_status == 'succeeded':
        client.UpdateDomainConfig(
            ClusterConfig={
            'WarmCount': 3,
            'WarmEnabled': True,
            'WarmCount': 123,
        })
        break

    elif dry_run_status == 'failed':
        validation_failures_list = dry_run_progress_response.DryRunProgressStatus.ValidationFailures
        for item in validation_failures_list:
            print(f"Code: {item['Code']}, Message: {item['Message']}")
        break

    retry_count += 1
    time.sleep(30)
```

------

## 구성 변경 추적
<a name="initiating-tracking-configuration-changes"></a>

한 번에 하나씩 구성 변경을 요청하거나 단일 요청에서 여러 변경을 그룹화할 수 있습니다. 콘솔에서 **도메인 처리 상태** 및 **구성 변경 상태** 필드를 사용하여 구성 변경을 추적합니다. 추가 변경을 요청하기 전에 도메인이 `Active` 상태가 될 때까지 기다립니다.

도메인의 **처리 상태는** 다음과 같습니다.
+ `Active` - 구성 변경이 진행 중이 아닙니다. 새 구성 변경 요청을 제출할 수 있습니다.
+ `Creating` - 도메인이 생성 중입니다.
+ `Modifying` - 새 데이터 노드, EBS, gp3, IOPS 프로비저닝 추가 또는 KMS 키 설정과 같은 구성 변경이 진행 중입니다.
+ `Upgrading engine version` - 엔진 버전 업그레이드가 진행 중입니다.
+ `Updating service software` - 소프트웨어 업데이트가 진행 중입니다.
+ `Deleting` - 도메인이 삭제 중입니다.
+ `Isolated` - 도메인이 일시 중지되었습니다.

도메인은 다음 **구성 변경 상태**를 가질 수 있습니다.
+ `Pending` - 구성 변경 요청이 제출되었습니다.
+ `Initializing` - 서비스가 구성 변경을 초기화하고 있습니다.
+ `Validating` - 서비스가 요청된 변경과 필요한 리소스를 검증하고 있습니다.
+ `Awaiting user inputs` - 서비스가 인스턴스 유형 변경과 같은 구성 변경을 진행할 것으로 예상됩니다. 구성 변경을 편집할 수 있습니다.
+ `Applying changes` - 서비스가 요청된 구성 변경을 적용하고 있습니다.
+ `Cancelled` - 구성 변경이 취소되었습니다. 모든 변경 사항 롤백 **취소**를 선택합니다.
+ `Completed` - 요청된 구성 변경이 성공적으로 완료되었습니다.
+ `Validation failed` - 요청된 구성 변경을 완료하지 못했습니다. 구성 변경이 적용되지 않았습니다.
**참고**  
검증 실패는 도메인에 있는 빨간색 인덱스, 선택한 인스턴스 유형의 사용 불가능 또는 디스크 공간 부족이 원인일 수 있습니다. 검증 오류 목록은 [Troubleshooting validation errors(검증 오류 문제 해결 중)](#validation) 섹션을 참조하세요. 검증 실패 이벤트 중에 구성 변경을 취소, 재시도 또는 편집할 수 있습니다.

구성 변경이 완료되면 도메인 상태가 다시 `Active`로 변경됩니다.

모두 클러스터 상태와 Amazon CloudWatch 지표를 검토하여 도메인 업데이트가 진행되는 동안 클러스터의 노드 수가 일시적으로 증가하며, 종종 두 배가 되는 것을 확인할 수 있습니다. 다음 그림에 구성 변경 중 노드 수가 11개에서 22개로 두 배가 되었다가 업데이트가 완료되면 11개로 돌아가는 과정이 나와 있습니다.

![도메인 구성 변경 중 노드 수가 11개에서 22개로 두 배로 늘어납니다.](http://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/images/NodesDoubled.png)


이렇게 일시적인 증가로 인해 갑자기 관리해야 할 노드가 늘어난 클러스터의 [전용 프라이머리 노드](managedomains-dedicatedmasternodes.md)는 부담을 받을 수 있습니다. 또한 OpenSearch Service가 이전 클러스터에서 새 클러스터로 데이터를 복사하므로 검색 및 인덱싱 대기 시간이 늘어날 수 있습니다. 그러므로 블루/그린 배포에 따르는 오버헤드를 처리할 수 있을 만큼 클러스터에 충분한 용량을 유지해야 합니다.

**중요**  
구성 변경 및 서비스 유지 관리 중 추가로 발생하는 비용은 *없습니다*. 클러스터에 대해 요청한 노드 개수에 대해서만 비용이 청구됩니다. 구체적인 내용은 [구성 변경 비용](#managedomains-config-charges) 섹션을 참조하세요.

전용 프라이머리 노드의 오버로딩을 방지하기 위해, [Amazon CloudWatch 지표를 통해 사용량을 모니터링](managedomains-cloudwatchmetrics.md)할 수 있습니다. 권장 최댓값은[Amazon OpenSearch Service에 권장되는 CloudWatch 경보](cloudwatch-alarms.md) 섹션을 참조하세요.

## 구성 변경 단계
<a name="managedomains-config-stages"></a>

구성 변경을 시작한 후 OpenSearch Service에서는 도메인을 업데이트하는 일련의 단계를 거칩니다. 콘솔의 **구성 변경 상태**에서 구성 변경 진행 상황을 볼 수 있습니다. 업데이트가 수행되는 정확한 단계는 변경 유형에 따라 다릅니다. [DescribeDomainChangeProgress](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_DescribeDomainChangeProgress.html) API 작업을 사용하여 구성 변경을 모니터링할 수도 있습니다.

다음은 구성 변경 중에 업데이트가 진행될 수 있는 단계입니다.


| 단계 이름 | 설명 | 
| --- | --- | 
| 검증 | 도메인을 업데이트할 수 있는지 검증하고 필요한 경우 [검증 문제](#validation)를 표시합니다. | 
| Creating a new environment(새 환경 생성 중) | 블루/그린 배포를 시작하기 위해 필요한 필수 구성 요소를 완료하고 필요한 리소스를 생성합니다. | 
| Provisioning new nodes(새 노드 프로비저닝 중) | 새로운 환경에서 새 인스턴스 집합 생성 | 
| Traffic routing on new nodes(새 노드의 트래픽 라우팅) | 새로 생성된 데이터 노드로 트래픽을 리디렉션합니다. | 
| Traffic routing on old nodes(이전 노드의 트래픽 라우팅) | 이전 데이터 노드에서 트래픽을 사용 중지합니다. | 
| Preparing nodes for removal(제거할 노드 준비 중) | 노드 제거를 준비합니다. 이 단계는 도메인을 다운스케일링하는 경우에만 발생합니다(예: 8개 노드에서 6개 노드로). | 
| Copying shards to new nodes(샤드를 새 노드에 복사 중) | 이전 노드에서 새 노드로 샤드를 이동합니다. | 
| Terminating nodes(노드 종료 중) | 샤드가 제거된 후 이전 노드를 종료하고 삭제합니다. | 
| Deleting older resources(이전 리소스 삭제 중) | 이전 환경과 연결된 리소스를 삭제합니다(예: 로드 밸런서). | 
| Dynamic update(동적 업데이트) | 업데이트에 블루/그린 배포가 필요하지 않고 동적으로 적용할 수 있는 경우에 표시됩니다. | 
| 전용 마스터 관련 변경 사항 적용 | 전용 마스터 인스턴스 유형 또는 개수가 변경될 때 표시됩니다. | 
| 볼륨 관련 변경 사항 적용 | 볼륨 크기, 유형, IOPS 및 처리량이 변경될 때 표시됩니다. | 

## 블루/그린 배포의 성능 영향
<a name="performance-impact-bluegreen"></a>

블루/그린 배포 중 수신 검색 및 인덱싱 요청에 대해 Amazon OpenSearch Service 클러스터를 사용할 수 있습니다. 그러나 다음과 같은 성능 문제가 발생할 수 있습니다.
+ 클러스터에 관리할 노드가 더 많아지면 리더 노드의 사용량이 일시적으로 증가합니다.
+ OpenSearch Service가 이전 노드의 데이터를 새 노드로 복사하여 검색 및 인덱싱 지연 시간이 늘어났습니다.
+ 블루/그린 배포 중에 클러스터 로드가 증가하여 수신 요청에 대한 거부가 증가했습니다.
+ 지연 시간 문제와 요청 거부를 방지하려면 클러스터가 정상이고 네트워크 트래픽이 낮을 때 블루/그린 배포를 실행해야 합니다.

## 구성 변경 비용
<a name="managedomains-config-charges"></a>

도메인에 대한 구성을 변경하는 경우 OpenSearch Service는 [Amazon OpenSearch Service에서 구성 변경](#managedomains-configuration-changes)에 설명된 대로 새 클러스터를 생성합니다. 새 클러스터로 이전 클러스터를 마이그레이션하는 중 다음 비용이 발생합니다.
+ 인스턴스 유형을 변경하면 처음에는 이전 및 새 클러스터 둘 다에 대한 비용이 청구됩니다. 그 이후에는 새 클러스터에 대한 비용만 청구됩니다. EBS 볼륨은 클러스터의 일부이므로 두 번 청구되지 않으며 인스턴스 결제에 따라 요금이 청구됩니다.

  **예:** `m3.xlarge` 인스턴스 세 개에서 `m4.large` 인스턴스 네 개로 구성을 변경합니다. 첫 1시간은 두 클러스터(3 \* `m3.xlarge` \+ 4 \* `m4.large`)에 대한 비용이 청구됩니다. 첫 1시간 이후부터는 새 클러스터(4 \* `m4.large`)에 대한 비용만 청구됩니다.
+ 인스턴스 유형을 변경하지 않으면 첫 1시간은 가장 큰 클러스터에 대한 비용만 청구됩니다. 첫 1시간 이후부터는 새 클러스터에 대한 비용만 청구됩니다.

  **예:** `m3.xlarge` 인스턴스 여섯 개에서 `m3.xlarge` 인스턴스 세 개로 구성을 변경합니다. 첫 1시간은 가장 큰 클러스터(6 \* `m3.xlarge`)에 대한 비용이 청구됩니다. 첫 1시간 이후부터는 새 클러스터(3 \* `m3.xlarge`)에 대한 비용만 청구됩니다.

## Troubleshooting validation errors(검증 오류 문제 해결 중)
<a name="validation"></a>

구성 변경을 시작하거나 OpenSearch 또는 Elasticsearch 버전 업그레이드를 수행하면 OpenSearch Service에서 먼저 일련의 검증 검사를 수행하여 도메인을 업데이트할 수 있는지 확인합니다. 이러한 검사 중 하나라도 실패하면 도메인을 업데이트하기 전에 수정해야 하는 특정 문제가 포함된 알림을 콘솔에서 받게 됩니다.

OpenSearch Service는 도메인을 60일 이상 사용할 수 없는 상태로 유지하는 경우 도메인을 격리합니다. 이러한 문제를 해결하기 위해 알림 알림을 보내 드립니다. 이 기간 내에 문제를 해결하지 않으면 OpenSearch Service는 도메인과 해당 데이터를 삭제합니다.

다음 표에는 OpenSearch Service에서 나타날 수 있는 도메인 문제와 해결 단계가 나열되어 있습니다.


| 문제 | 오류 코드 | 문제 해결 단계 | 
| --- | --- | --- | 
| 보안 그룹을 찾을 수 없음 | SecurityGroupNotFound | OpenSearch Service 도메인과 연결된 보안 그룹이 존재하지 않습니다. 이 문제를 해결하려면 지정된 이름으로 [보안 그룹을 생성](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#creating-security-groups)합니다. | 
| 서브넷을 찾을 수 없음 | SubnetNotFound | OpenSearch Service 도메인과 연결된 서브넷이 존재하지 않습니다. 이 문제를 해결하려면 VPC에서 [서브넷을 생성](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-subnets.html#create-subnets)합니다. | 
| 서비스 연결 역할이 구성되지 않음 | SLRNotConfigured | OpenSearch Service에 대한 [서비스 연결 역할](slr.md)이 구성되지 않았습니다. 서비스 연결 역할은 OpenSearch Service에서 사전 정의하며 서비스가 사용자를 대신하여 다른 AWS 서비스를 호출하는 데 필요한 모든 권한을 포함합니다. 역할이 없으면 [수동으로 생성](slr-aos.md#create-slr)해야 할 수 있습니다. | 
| IP 주소가 충분하지 않음 | InsufficientFreeIPsForSubnets | 하나 이상의 VPC 서브넷에 도메인을 업데이트하기에 충분한 IP 주소가 없습니다. 필요한 IP 주소 수를 계산하려면 [VPC 서브넷에서 IP 주소 예약](vpc.md#reserving-ip-vpc-endpoints) 섹션을 참조하세요. | 
| Cognito 사용자 풀이 존재하지 않음 | CognitoUserPoolNotFound | OpenSearch Service에서 Amazon Cognito 사용자 풀을 찾을 수 없습니다. 자격 증명 풀을 생성했고 ID가 올바른지 확인합니다. ID를 찾으려면 Amazon Cognito 콘솔을 이용하거나 다음 AWS CLI 명령을 이용합니다.<pre>aws cognito-idp list-user-pools --max-results 60 --region {{us-east-1}}</pre> | 
| Cognito ID 풀이 존재하지 않음 | CognitoIdentityPoolNotFound | OpenSearch Service에서 Cognito ID 풀을 찾을 수 없습니다. 자격 증명 풀을 생성했고 ID가 올바른지 확인합니다. ID를 찾으려면 Amazon Cognito 콘솔을 이용하거나 다음 AWS CLI 명령을 이용합니다.<pre>aws cognito-identity list-identity-pools --max-results 60 --region {{us-east-1}}</pre> | 
| 사용자 풀에 대한 Cognito 도메인을 찾을 수 없음 | CognitoDomainNotFound | 사용자 풀에 도메인 이름이 없습니다. Amazon Cognito 콘솔 또는 다음 AWS CLI 명령을 사용하여 구성할 수 있습니다.<pre>aws cognito-idp create-user-pool-domain --domain {{my-domain}} --user-pool-id {{id}}</pre> | 
| Cognito 역할이 구성되지 않음 | CognitoRoleNotConfigured | Amazon Cognito 사용자 및 ID 풀을 구성하고 인증에 사용할 수 있는 권한을 OpenSearch Service에 부여하는 IAM 역할이 구성되지 않았습니다. 적절한 권한 세트와 신뢰 관계로 역할을 구성합니다. 기본 [CognitoAccessForAmazonOpenSearch](cognito-auth.md#cognito-auth-role) 역할을 생성하는 콘솔을 사용하거나 AWS CLI 또는 AWS SDK를 사용하여 역할을 수동으로 구성할 수 있습니다. | 
| 사용자 풀을 설명할 수 없음 | UserPoolNotDescribable | 지정된 Amazon Cognito 역할에 도메인과 연결된 사용자 풀을 설명할 권한이 없습니다. 역할 권한 정책이 cognito-identity:DescribeUserPool 작업을 허용하는지 확인합니다. 전체 권한 정책은 [CognitoAccessForAmazonOpenSearch 역할 정보](cognito-auth.md#cognito-auth-role) 섹션을 참조하세요. | 
| ID 풀을 설명할 수 없음 | IdentityPoolNotDescribable | 지정된 Amazon Cognito 역할에 도메인과 연결된 ID 풀을 설명할 권한이 없습니다. 역할 권한 정책이 cognito-identity:DescribeIdentityPool 작업을 허용하는지 확인합니다. 전체 권한 정책은 [CognitoAccessForAmazonOpenSearch 역할 정보](cognito-auth.md#cognito-auth-role) 섹션을 참조하세요. | 
| 사용자 및 ID 풀을 설명할 수 없음 | CognitoPoolsNotDescribable | 지정된 Amazon Cognito 역할에 도메인과 연결된 사용자 및 ID 풀을 설명할 권한이 없습니다. 역할 권한 정책이 cognito-identity:DescribeIdentityPool 및 cognito-identity:DescribeUserPool 작업을 허용하는지 확인합니다. 전체 권한 정책은 [CognitoAccessForAmazonOpenSearch 역할 정보](cognito-auth.md#cognito-auth-role) 섹션을 참조하세요. | 
| KMS 키가 활성화되지 않음 | KMSKeyNotEnabled | 도메인을 암호화하는 데 사용되는 AWS Key Management Service (AWS KMS) 키가 비활성화되었습니다. 즉시 [키를 다시 활성화](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys)합니다. | 
| 사용자 지정 인증서가 ISSUED(발급됨) 상태가 아님 | InvalidCertificate | 도메인에서 사용자 지정 엔드포인트를 사용하는 경우 AWS Certificate Manager (ACM)에서 SSL 인증서를 생성하거나 자체 인증서를 가져와서 보안을 유지합니다. 인증서가 **Issued**(발급됨) 상태여야 합니다. 이 오류가 발생하면 ACM 콘솔에서 [인증서 상태를 확인](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-describe.html)합니다. 상태가 Expired(만료됨), Failed(실패), Inactive(비활성) 또는 Pending validation(검증 대기 중)인 경우 ACM [문제 해결 설명서](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting.html)를 참조하여 문제를 해결하세요. | 
| 선택한 인스턴스 유형을 시작하기에 용량이 충분하지 않음 | InsufficientInstanceCapacity | 요청한 인스턴스 유형 용량을 사용할 수 없습니다. 예를 들어, 5개의 `i3.16xlarge.search` 노드를 요청했지만 OpenSearch Service에 사용 가능한 `i3.16xlarge.search` 호스트가 충분하지 않아 요청을 이행할 수 없습니다. OpenSearch Service에서 [지원되는 인스턴스 유형](supported-instance-types.md)을 확인하고 다른 인스턴스 유형을 선택합니다. | 
| 클러스터의 빨간색 인덱스 | RedCluster | 클러스터에 있는 하나 이상의 인덱스가 빨간색 상태이므로 전체적으로 빨간색 클러스터 상태가 됩니다. 이 문제를 해결하고 수정하려면 [빨간색 클러스터 상태](handling-errors.md#handling-errors-red-cluster-status) 섹션을 참조하세요. | 
| 메모리 회로 차단기, 요청 너무 많음 | TooManyRequests | 도메인에 대한 검색 및 쓰기 요청이 너무 많아 OpenSearch Service에서 구성을 업데이트할 수 없습니다. 요청 수를 줄이거나, 최대 64GiB RAM까지 인스턴스를 수직으로 확장하거나, 인스턴스를 추가하여 수평으로 확장할 수 있습니다. | 
| 새 구성에서 데이터를 보관할 수 없음(디스크 공간 부족) | InsufficientStorageCapacity | 구성된 스토리지 크기가 도메인의 모든 데이터를 보관할 수 없습니다. 이 문제를 해결하려면 [더 큰 볼륨을 선택](limits.md#ebsresource)하거나, [사용하지 않는 인덱스를 삭제](https://opensearch.org/docs/latest/opensearch/rest-api/index-apis/delete-index/)하거나, 클러스터의 노드 수를 늘려 즉시 디스크 공간을 확보합니다. | 
| 특정 노드에 고정된 샤드 | ShardMovementBlocked | 도메인에 있는 하나 이상의 인덱스가 특정 노드에 연결되어 있으며 재할당할 수 없습니다. 특정 인덱스의 샤드를 호스팅할 수 있는 노드를 지정할 수 있는 샤드 할당 필터링을 구성했기 때문일 수 있습니다.<br />이 문제를 해결하려면 영향을 받는 모든 인덱스에서 샤드 할당 필터를 제거합니다.<pre>PUT my-index/_settings<br />{  <br />  "settings": {    <br />    "index.routing.allocation.require._name": null  <br />  }<br />}</pre> | 
| 새 구성에서 모든 샤드를 보관할 수 없음(샤드 수) | TooManyShards | 도메인의 샤드가 너무 많아 OpenSearch Service에서 샤드를 새 구성으로 이동할 수 없습니다. 이 문제를 해결하려면 현재 클러스터 노드와 동일한 구성 유형의 노드를 추가하여 도메인을 수평으로 확장합니다. [최대 EBS 볼륨 크기](limits.md#ebsresource)는 노드의 인스턴스 유형에 따라 다릅니다.앞으로 이 문제를 방지하려면 [샤드 수 선택](bp-sharding.md) 섹션을 참조하고 사용 사례에 적합한 샤딩 전략을 정의합니다. | 
| 도메인과 연결된 서브넷이 IPv4 주소를 지원하지 않습니다. | `ResultCodeIPv4BlockNotExists` | 이 문제를 해결하려면 도메인의 구성된 IP 주소 유형에 맞게 VPC에서 [서브넷을 생성하거나 기존 서브넷을 업데이트](https://docs.aws.amazon.com//vpc/latest/userguide/configure-subnets.html#subnet-IP-address-range)하십시오. 도메인에서 **IPv4 전용** 주소 유형을 사용하는 경우 IPv4 전용 서브넷을 사용하십시오. 도메인에서 **듀얼 스택 모드**를 사용하는 경우 듀얼 스택 서브넷을 사용하십시오. | 
| 도메인과 연결된 서브넷이 IPv6 주소를 지원하지 않습니다. | `ResultCodeIPv6BlockNotExists` | 이 문제를 해결하려면 도메인의 구성된 IP 주소 유형에 맞게 VPC에서 [서브넷을 생성하거나 기존 서브넷을 업데이트](https://docs.aws.amazon.com//vpc/latest/userguide/configure-subnets.html#subnet-IP-address-range)하십시오. 도메인에서 **IPv4 전용** 주소 유형을 사용하는 경우 IPv4 전용 서브넷을 사용하십시오. 도메인에서 **듀얼 스택 모드**를 사용하는 경우 듀얼 스택 서브넷을 사용하십시오. | 