

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

# Amazon Neptune 데이터베이스 관리
<a name="manage-console"></a>

 이 섹션에서는 AWS Management Console 및를 사용하여 Neptune DB 클러스터를 관리하고 유지 관리하는 방법을 보여줍니다 AWS CLI.

Neptune은 복제 토폴로지에 따라 서로 연결된 데이터베이스 서버의 클러스터를 기반으로 실행됩니다. 따라서 Neptune 관리를 위해서는 변경 사항을 여러 서버에 배포하고 모든 Neptune 복제본이 기본 서버의 것과 동일한지 확인해야 하는 경우가 종종 있습니다.

Neptune은 데이터 증가에 따라 기반 스토리지의 규모를 투명하게 조정하기 때문에 상대적으로 Neptune 관리 시 디스크 스토리지를 관리할 필요가 거의 없습니다. 마찬가지로 Neptune은 연속 백업을 자동으로 수행하기 때문에 Neptune 클러스터에서는 백업 수행을 위한 광범위한 계획 또는 다운타임이 필요하지 않습니다.

**Topics**
+ [Neptune 블루/그린 솔루션을 사용하여 블루-그린 업데이트 수행](neptune-BG-deployments.md)
+ [Neptune에 권한이 있는 IAM 사용자 생성](manage-console-iam-user.md)
+ [Amazon Neptune 파라미터 그룹](parameter-groups.md)
+ [Amazon Neptune 파라미터](parameters.md)
+ [를 사용하여 Neptune DB 클러스터 시작 AWS Management Console](manage-console-launch-console.md)
+ [Amazon Neptune DB 클러스터 중지 및 시작을 참조하세요.](manage-console-stop-start.md)
+ [빠른 재설정 API를 사용하여 Amazon Neptune DB 클러스터 비우기](manage-console-fast-reset.md)
+ [DB 클러스터에 Neptune 리더 인스턴스 추가](manage-console-add-replicas.md)
+ [콘솔을 사용하여 Neptune 리더 인스턴스 생성](manage-console-create-replica.md)
+ [콘솔을 사용하여 Neptune DB 클러스터 수정](manage-console-modify.md)
+ [Amazon Neptune의 성능 및 규모 조정](manage-console-performance-scaling.md)
+ [Amazon Neptune DB 클러스터의 복제본 수 Auto Scaling](manage-console-autoscaling.md)
+ [Amazon Neptune DB 클러스터 유지 관리](cluster-maintenance.md)
+ [CloudFormation 템플릿을 사용하여 Neptune DB 클러스터의 엔진 버전 업데이트](cfn-engine-update.md)
+ [Neptune의 데이터베이스 복제본 생성](manage-console-cloning.md)
+ [Amazon Neptune 인스턴스 관리](manage-console-instances.md)

# Neptune 블루/그린 솔루션을 사용하여 블루-그린 업데이트 수행
<a name="neptune-BG-deployments"></a>

Amazon Neptune 엔진 업그레이드에는 업데이트를 설치하고 검증하는 동안 데이터베이스를 사용할 수 없으므로 애플리케이션 다운타임이 필요할 수 있습니다. 수동으로 시작하든 자동으로 시작하든 관계없이 모두 해당합니다.

Neptune은 CloudFormation 스택을 사용하여 실행할 수 있고 이러한 가동 중지 시간을 크게 줄이는 블루/그린 배포 솔루션을 제공합니다. 이를 통해 블루 프로덕션 환경과 동기화되는 그린 스테이징 환경을 만들 수 있습니다. 이제 해당 스테이징 환경을 업데이트하여 마이너 또는 메이저 엔진 버전 업그레이드, 그래프 데이터 모델 변경 또는 운영 체제 업데이트를 수행하고 결과를 테스트할 수 있습니다. 마지막으로 다운타임이 거의 없는 운영 환경으로 빠르게 전환할 수 있습니다.

Neptune 블루/그린 솔루션은 다음 다이어그램에 나와 있는 것처럼 두 단계를 거칩니다.

![\[블루-그린 배포 전략의 개괄적인 흐름도\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/BG-flow.png)


**1단계: 프로덕션 클러스터와 동일한 그린 DB 클러스터 생성**

이 솔루션은 고유한 블루/그린 배포 식별자를 사용하고 프로덕션 클러스터와 동일한 클러스터 토폴로지를 사용하여 DB 클러스터를 생성합니다. 즉, 지정한 대상 엔진 버전으로 업그레이드되어 현재(블루) 엔진 버전보다 버전이 높아야 한다는 점을 제외하면 프로덕션(블루) DB 클러스터와 동일한 DB 인스턴스 수와 크기, 파라미터 그룹 및 구성이 동일합니다. 대상에 마이너 엔진 버전과 메이저 엔진 버전을 지정할 수 있습니다. 필요하다면 솔루션은 지정된 대상 엔진 버전에 도달하는 데 필요한 모든 중간 업그레이드를 수행합니다. 이 새 클러스터는 그린 스테이징 환경이 됩니다.

**2단계: 지속적인 데이터 동기화 설정**

그린 환경이 완전히 준비된 후, 솔루션은 Neptune 스트림을 사용하여 소스(블루) 클러스터와 대상(그린) 클러스터 간에 연속 복제를 설정합니다. 둘 사이의 복제 차이가 0에 도달하면 스테이징 환경을 테스트할 준비가 됩니다. 이때 추가 복제 지연을 방지하려면 블루 클러스터에 쓰기를 일시 중지해야 합니다.

대상 엔진 버전에 애플리케이션에 영향을 미치는 새로운 기능이나 종속성이 있을 수 있습니다. 대상 엔진 릴리스 페이지와 [엔진 릴리스](engine-releases.md) 아래의 중간 엔진 릴리스 페이지를 확인하여 현재 엔진 버전 이후 변경된 사항을 확인하세요. 프로덕션 환경으로 승격하기 전에 그린 클러스터에서 통합 테스트를 실행하거나 애플리케이션을 수동으로 확인하는 것이 가장 좋습니다.

그린 클러스터의 변경 사항을 테스트하고 검증한 후에는 애플리케이션의 데이터베이스 엔드포인트를 블루 클러스터에서 그린 클러스터로 전환하기만 하면 됩니다.

전환 후 Neptune 블루/그린 솔루션은 이전의 블루 프로덕션 환경을 삭제하지 않습니다. 필요하다면 추가 검증 및 테스트를 위해 계속 액세스할 수 있습니다. 인스턴스를 삭제하기 전까지는 인스턴스에 표준 청구 요금이 적용됩니다. 블루/그린 솔루션은 정상 가격으로 청구되는 비용인 다른 AWS 서비스도 사용합니다. 솔루션 사용 완료 시 솔루션 삭제에 대한 자세한 내용은 [정리 섹션](neptune-BG-cleanup.md)에서 다룹니다.

## Neptune 블루/그린 스택 실행을 위한 사전 요구 사항
<a name="neptune-BG-prereqs"></a>

Neptune 블루/그린 스택 시작 전:
+ 프로덕션(블루) 클러스터에서 [Neptune 스트림을 활성화](streams-using.md)해야 합니다.
+ 블루 클러스터의 모든 인스턴스가 **사용 가능**한 상태여야 합니다. [Neptune 콘솔](https://console.aws.amazon.com/neptune)에서 또는 [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/neptune/describe-db-instances.html) API를 사용하여 인스턴스 상태를 확인할 수 있습니다.
+ 또한 모든 인스턴스는 [DB 클러스터 파라미터 그룹](parameter-groups.md)과 동기화되어야 합니다.
+ Neptune 블루/그린 솔루션을 사용하려면 블루 클러스터가 위치한 VPC에 DynamoDB VPC 엔드포인트가 있어야 합니다. [Amazon VPC 엔드포인트를 사용하여 DynamoDB에 액세스](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/network-isolation.html#vpc-endpoints-dynamodb)를 참조하세요.
+ 블루 프로덕션 DB 클러스터의 쓰기 워크로드가 최대한 적은 시간에 솔루션을 실행하도록 선택하세요. 예를 들어, 대량 로드가 발생하거나 다른 이유로 쓰기 작업 수가 많을 가능성이 있다면 솔루션을 실행하지 마세요.

# CloudFormation 템플릿을 사용하여 Neptune 블루/그린 솔루션 실행
<a name="neptune-BG-console-cfn"></a>

 AWS CloudFormation 를 사용하여 Neptune 블루/그린 솔루션을 배포할 수 있습니다. CloudFormation 템플릿은 블루 소스 Neptune 데이터베이스와 동일한 VPC에서 Amazon EC2 인스턴스를 생성하고, 여기에 솔루션을 설치하고 실행합니다. [진행 상황 모니터링](neptune-BG-monitoring.md)에 설명된 대로 CloudWatch 로그에서 진행 상황을 모니터링할 수 있습니다.

다음 링크를 사용하여 솔루션 템플릿을 검토하거나 스택 **시작** 버튼을 선택하여 CloudFormation 콘솔에서 시작할 수 있습니다.


|  |  |  | 
| --- |--- |--- |
| [보기](https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml) | [Designer에서 보기](https://console.aws.amazon.com/cloudformation/designer/home?templateURL=https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml) | [https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=NeptuneBG&templateURL=https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=NeptuneBG&templateURL=https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml)  | 

콘솔에서 창 오른쪽 상단의 드롭다운에서 솔루션을 실행할 AWS 리전을 선택합니다.

스택 파라미터를 다음과 같이 설정합니다.
+ **`DeploymentID`** - 각 Neptune 블루/그린 배포에 고유한 식별자입니다.

  이는 그린 DB 클러스터 식별자로 사용되며, 배포 중에 생성되는 새 리소스의 이름을 지정하는 접두사로 사용됩니다.
+ **`NeptuneSourceClusterId`** - 업그레이드하려는 블루 DB 클러스터의 식별자입니다.
+ **`NeptuneTargetClusterVersion:`** - 블루 DB 클러스터를 업그레이드하려는 [Neptune 엔진 버전](engine-releases.md)입니다.

  현재 블루 DB 클러스터의 엔진 버전보다 높아야 합니다.
+ **`DeploymentMode`** - 새 배포인지 아니면 이전 배포를 재개하려는 시도인지를 나타냅니다. 이전 배포와 동일한 `DeploymentID`를 사용하는 경우 `DeploymentMode`를 `resume`으로 설정하세요.

  유효한 값은 `new`(기본값) 및 `resume`입니다.
+ **`GraphQueryType`** - 데이터베이스의 그래프 데이터 유형입니다.

  유효한 값은 `propertygraph`(기본값) 및 `rdf`입니다.
+ **`SubnetId`** - 블루 DB 클러스터가 위치한 동일한 VPC의 서브넷 ID입니다([Connecting to a Neptune DB Cluster from an Amazon EC2 instance in the same VPC](get-started-connect-ec2-same-vpc.md) 참조).

  [EC2 Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html)를 통해 인스턴스에 SSH로 연결하려면 퍼블릭 서브넷의 ID를 제공하세요.
+ **`InstanceSecurityGroup`** - Amazon EC2 인스턴스를 위한 보안 그룹입니다.

  보안 그룹은 블루 DB 클러스터에 액세스할 수 있어야 하며 사용자는 인스턴스에 SSH로 연결할 수 있어야 합니다. [VPC 콘솔을 사용하여 보안 그룹 생성](get-started-vpc.md#security-vpc-security-group)을(를) 참조하세요.

스택이 완료될 때까지 기다리세요. 완료되자마자 솔루션이 시작됩니다. 그런 다음 다음 섹션에 설명된 대로 CloudWatch 로그를 사용하여 배포 프로세스를 모니터링할 수 있습니다.

# Neptune 블루/그린 배포 진행 상황 모니터링
<a name="neptune-BG-monitoring"></a>

[CloudWatch 콘솔](https://console.aws.amazon.com/cloudwatch/)로 이동하여 `/aws/neptune/(Neptune Blue/Green deployment ID)` CloudWatch 로그 그룹의 로그를 살펴보면 Neptune 블루/그린 솔루션의 진행 상황을 모니터링할 수 있습니다. 솔루션 CloudFormation 스택의 출력에서 CloudWatch 로그로 연결되는 링크를 찾을 수 있습니다.

![\[블루/그린 CloudFormation 스택 출력의 스크린샷\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/BG-stack-output.png)


퍼블릭 서브넷을 스택 파라미터로 제공하면 스택의 일부로 생성된 Amazon EC2 인스턴스에 SSH로 연결하고 `/var/log/cloud-init-output.log`의 로그를 참조할 수도 있습니다.

이 로그에는 다음 스크린샷과 같이 Neptune 블루/그린 솔루션에서 수행한 작업이 표시됩니다.

![\[Neptune 블루/그린 로그 화면 스크린샷\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/BG-log-screenshot.png)


로그 메시지는 블루 클러스터와 그린 클러스터 간의 동기화 상태를 보여줍니다.

![\[Neptune 블루/그린 솔루션 로그 메시지 스크린샷\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/BG-log-messages.png)


동기화 프로세스는 블루 클러스터의 최신 스트림 `eventID`와 Neptune-to-Neptune 복제 스택으로 생성된 DynamoDB 체크포인트 테이블에 있는 복제 체크포인트 간의 차이를 계산하여 복제 지연을 확인합니다. 이 메시지를 사용하여 현재 복제 차이를 모니터링할 수 있습니다.

# 프로덕션 블루 클러스터에서 업데이트된 그린 클러스터로 전환
<a name="neptune-BG-cutover"></a>

그린 클러스터를 프로덕션으로 승격하기 전에 블루 클러스터와 그린 클러스터 간의 커밋 차이가 0인지 확인한 다음 블루 클러스터에 대한 모든 쓰기 트래픽을 비활성화하세요. 데이터베이스 엔드포인트를 그린 클러스터로 전환하는 동안 블루 클러스터에 계속 쓰면 양쪽 클러스터에 일부 데이터가 쓰여져 데이터가 손상될 수 있습니다. 아직 읽기 트래픽을 비활성화하지 않아도 될 수 있습니다.

소스(블루) 클러스터에서 IAM 인증을 활성화한 경우 애플리케이션에 사용되는 모든 IAM 정책이 그린 클러스터를 가리키도록 업데이트해야 합니다(이러한 정책의 예는 이 [무제한 액세스 정책](iam-data-access-examples.md#iam-auth-data-policy-example-general) 참조).

쓰기 트래픽을 비활성화한 후에는 복제가 완료될 때까지 기다린 다음 그린 클러스터(블루 클러스터 제외)에서 쓰기 트래픽을 활성화합니다. 읽기 트래픽도 블루에서 그린 클러스터로 전환합니다.

# Neptune 블루/그린 솔루션 완료 후 정리
<a name="neptune-BG-cleanup"></a>

스테이징(그린) 클러스터를 프로덕션으로 승격시킨 후 Neptune 블루/그린 솔루션으로 생성된 리소스를 정리하세요.
+ 솔루션을 실행하기 위해 만든 Amazon EC2 인스턴스를 삭제합니다.
+ 그린 클러스터를 블루 클러스터와 동기화된 상태로 유지한 CloudFormation [Neptune 스트림 기반 복제](streams-consumer-setup.md) 템플릿을 삭제합니다. 기본 스택은 이전에 제공한 스택 이름을 사용하며, 하나는 배포 ID 뒤에 “-replication”, 즉, `(DeploymentID)-replication`이 붙는 것으로 구성됩니다.

 CloudFormation 템플릿을 삭제해도 클러스터 자체는 삭제되지 않습니다. 그린 클러스터가 예상대로 작동하는지 확인한 후에는 블루 클러스터를 수동으로 삭제하기 전에 스냅샷을 찍을 수도 있습니다.

# Neptune 블루/그린 솔루션 모범 사례
<a name="neptune-BG-best-practices"></a>
+ 그린 클러스터를 프로덕션으로 전환하기 전에 제대로 작동하는지 철저하게 확인하는 것이 좋습니다. 데이터의 일관성과 데이터베이스 구성을 확인하세요. 일부 새 엔진 버전에는 클라이언트 업그레이드가 필요할 수도 있습니다. 업그레이드하기 전에 엔진 릴리스 노트를 확인하세요. 프로덕션 환경에서 블루/그린 업그레이드를 시작하기 전에 개발, 테스트 및 사전 프로덕션 환경에서 이 모든 것을 테스트해 보는 것이 좋습니다.
+ 유지 관리 기간 중에 블루 서버에서 그린 서버로 전환하는 것이 가장 좋습니다.
+ 업그레이드 및 동기화 후 모든 것이 제대로 작동하도록 하려면 소스 클러스터를 삭제하기 전에 일정 기간 동안 유지하는 것이 좋습니다. 예상치 못한 문제가 발생할 경우 유용할 수 있습니다.
+ Neptune 블루/그린 솔루션을 실행할 때 상당한 다운타임을 초래하는 복제 지연을 초래할 수 있으므로 대량 로드와 같은 과도한 쓰기 작업을 피합니다. 이상적으로는 블루 클러스터에 대한 쓰기를 해제한 후 그린 클러스터에 대한 쓰기를 활성화하는 데 걸리는 시간이 몇 분 밖에 걸리지 않는 것이 좋습니다.

# Neptune 블루/그린 솔루션 문제 해결
<a name="neptune-BG-troubleshooting"></a>

 다음 정보는 기존 클러스터와의 충돌, Neptune 스트림 활성화 필요성, 지속적인 대량 로드 작업, 버전 호환성 요구 사항 등 블루/그린 솔루션 배포 프로세스 중에 발생할 수 있는 문제를 강조합니다. 이러한 잠재적 문제를 해결하면 Neptune 블루/그린 솔루션을 원활하고 성공적으로 배포할 수 있습니다.

**Neptune 블루/그린 솔루션에서 발생한 오류**
+ **`Cluster with id = (blue_green_deployment_id) already exists`** - 식별자*(blue\$1green\$1deployment\$1id)*를 가진 기존 클러스터가 있습니다.

  새 배포 ID를 제공하거나 이전 Neptune 블루/그린 실행에서 클러스터를 생성한 경우 `resume`에 배포 모드를 설정합니다.
+ **`Streams should be enabled on the source Cluster for Blue Green Deployment`** - 블루(소스) 클러스터에서 [Neptune 스트림](streams-using-enabling.md)을 활성화합니다.
+ **`No Bulkload should be in progress on source cluster: (cluster_id)`** - Neptune 블루/그린 솔루션은 진행 중인 대량 로드를 식별하면 종료됩니다.

  이는 동기화 프로세스가 쓰기 작업을 따라잡을 수 있도록 하기 위한 것입니다. Neptune 블루/그린 솔루션을 시작하기 전에 진행 중인 대량 로드 작업을 피하거나 취소하세요.
+ **`Blue Green deployment requires instances to be in sync with db cluster parameter group`** - 클러스터 파라미터 그룹의 모든 변경 사항은 DB 클러스터 전체에서 동기화되어야 합니다. [Amazon Neptune 파라미터 그룹](parameter-groups.md)을(를) 참조하세요.
+ **`Invalid target engine version for Blue Green Deployment`** - 대상 엔진 버전은 [Amazon Neptune의 엔진 릴리스](engine-releases.md)에서 활성 상태로 나열되어야 하며 소스(블루) 클러스터의 현재 엔진 릴리스보다 높아야 합니다.

# Neptune에 권한이 있는 IAM 사용자 생성
<a name="manage-console-iam-user"></a>

Neptune 콘솔에 액세스하여 Neptune DB 클러스터를 생성하고 관리하려면 필요한 모든 권한을 가진 IAM 사용자를 생성해야 합니다.

첫 번째 단계는 Neptune의 서비스 연결 역할 정책을 생성하는 것입니다.

## Amazon Neptune의 서비스 연결 역할 정책 생성
<a name="manage-console-iam-user-service-linked"></a>

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. 왼쪽의 탐색 창에서 **정책**을 선택합니다.

1. **정책** 페이지에서 **정책 생성**을 선택합니다.

1. **정책 생성** 페이지에서 **JSON** 탭을 선택하고 다음 서비스 연결 역할 정책을 복사합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": "iam:CreateServiceLinkedRole",
         "Effect": "Allow",
         "Resource": "arn:aws:iam::*:role/aws-service-role/rds.amazonaws.com/AWSServiceRoleForRDS",
         "Condition": {
           "StringLike": {
               "iam:AWSServiceName":"rds.amazonaws.com"
           }
         }
       }
     ]
   }
   ```

------

1. **다음: 태그**를 선택하고 **태그 추가** 페이지에서 **다음: 검토**를 선택합니다.

1. **정책 검토** 페이지에서 새 정책의 이름을 “NeptuneServiceLinked”로 지정합니다.

서비스 연결 역할에 대한 자세한 내용은 [Amazon Neptune에 대해 서비스 연결 역할 사용](security-iam-service-linked-roles.md)를 참조하세요.

## 필요한 모든 권한이 있는 새 IAM 사용자 생성
<a name="manage-console-iam-user-create"></a>

그런 다음, 생성한 서비스 연결 역할 정책(여기서는 `NeptuneServiceLinked`)과 함께 필요한 권한을 부여하는 적절한 관리형 정책을 첨부하여 새 IAM 사용자를 생성합니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **사용자**를 선택한 후 **사용자** 페이지에서 **사용자 추가**를 선택합니다.

1. **사용자 추가** 페이지에서 새 IAM 사용자의 이름을 입력하고 액세스 **키 - 자격 증명 유형에 대한 프로그래밍 액세스를** 선택한 **다음 다음: 권한을** 선택합니다. AWS 

1. **권한 설정** 페이지의 **필터 정책** 상자에 ‘Neptune’을 입력합니다. 이제 나열된 정책에서 다음을 선택합니다.
   + **NeptuneFullAccess**
   + **NeptuneConsoleFullAccess**
   + **NeptuneServiceLinked**(이전에 만든 서비스 연결 역할 정책의 이름을 그대로 지정한 것으로 가정)

1. 다음으로 **필터 정책** 상자에 ‘Neptune’ 대신 ‘VPC’를 입력합니다. 나열된 정책에서 **AmazonVPCFullAccess**를 선택합니다.

1. **다음: 태그**를 선택하고 **태그 추가** 페이지에서 **다음: 검토**를 선택합니다.

1. **검토** 페이지에서 다음 정책이 모두 새 사용자에게 첨부되었는지 확인합니다.
   + **NeptuneFullAccess**
   + **NeptuneConsoleFullAccess**
   + **NeptuneServiceLinked**
   + **AmazonVPCFullAccess**

   **사용자 생성**을 선택합니다.

1. 마지막으로 새 사용자의 액세스 키 ID와 비밀 액세스 키를 다운로드하여 저장합니다.

Amazon Simple Storage Service(S3)와 같은 다른 서비스에서 상호 운용하려면 권한과 신뢰 관계를 더 추가해야 합니다.

# Amazon Neptune 파라미터 그룹
<a name="parameter-groups"></a>

DB 파라미터 그룹에서 [파라미터](parameters.md)를 사용하여 Amazon Neptune에서 데이터베이스 구성을 관리합니다. 파라미터 그룹은 하나 이상의 DB 인스턴스에 적용되는 엔진 구성 값의 컨테이너 역할을 합니다.**

DB 파라미터 그룹은 DB 클러스터 파라미터 그룹과 DB 파라미터 그룹 두 유형이 있습니다.
+ DB 파라미터 그룹은 인스턴스 레벨에서 적용되며, 일반적으로 `neptune_query_timeout` 파라미터 같은 Neptune 그래프 엔진과 연결됩니다.**
+ DB 클러스터 파라미터 그룹은 클러스터의 모든 인스턴스에 적용되며 일반적으로 설정 범위가 더 넓습니다.** 모든 Neptune 클러스터는 DB 클러스터 파라미터 그룹과 연결됩니다. 그리고 해당 클러스터 내 모든 DB 인스턴스는 DB 클러스터 파라미터 그룹에 포함된 엔진 구성 값을 상속합니다.

사용자가 DB 클러스터 파라미터 그룹에서 수정한 구성 값으로 DB 파라미터 그룹의 기본값을 재정의합니다. DB 파라미터 그룹의 해당 값을 편집하면 그 값으로 DB 클러스터 파라미터 그룹의 설정을 재정의합니다.

사용자 지정 DB 파라미터 그룹을 지정하지 않고 DB 인스턴스를 생성할 경우 기본 DB 파라미터 그룹이 사용됩니다. 기본 DB 파라미터 그룹의 파라미터 설정은 수정할 수 없습니다. 대신, 기본 파라미터 설정을 변경하려면 새 DB 파라미터 그룹을 생성해야 합니다. 생성하는 DB 파라미터 그룹에서 모든 DB 엔진 파라미터를 변경할 수 있는 것은 아닙니다.

파라미터 그룹은 특정 Neptune 엔진 버전과 호환되는 패밀리로 생성됩니다. 새 메이저 또는 마이너 엔진 버전으로 업그레이드할 때 해당 버전에 해당하는 파라미터 그룹 패밀리를 사용하여 사용자 지정 파라미터 그룹을 다시 생성해야 할 수 있습니다.

파라미터 그룹 패밀리 이름 지정은 패턴을 따르며`neptuneX.Y`, 여기서는 엔진 버전과 `X.Y` 일치합니다. 예제:
+ `neptune1` - 1.2.0.0 이전 엔진 버전의 경우
+ `neptune1.2` - 엔진 버전 1.2.x용
+ `neptune1.3` - 엔진 버전 1.3.x용
+ `neptune1.4` - 엔진 버전 1.4.x용

Neptune 클러스터를 업그레이드할 때 대상 엔진 버전의 [릴리스 정보를](engine-releases.md) 확인하여 새 파라미터 그룹 패밀리가 필요한지 확인합니다. 이 경우 업그레이드하기 전에 새 패밀리의 모든 사용자 지정 파라미터 그룹을 다시 생성해야 합니다.

일부 Neptune 파라미터는 정적이고 다른 파라미터는 동적입니다. 차이점은 다음과 같습니다.

**정적 파라미터**
+ 정적 파라미터는 DB 인스턴스가 재부팅된 후에만 적용되는 파라미터입니다. 달리 말하면, 고정 파라미터를 변경하고 인스턴스 DB 파라미터 그룹을 저장하면 DB 인스턴스를 수동으로 재부팅한 후에 파라미터 변경 내용이 적용됩니다. 현재 모든 Neptune 인스턴스 수준 파라미터(DB 클러스터 파라미터 그룹이 아닌 DB 파라미터 그룹에 속함)는 정적입니다.
+ 클러스터 수준의 고정 파라미터를 변경하고 DB 클러스터 파라미터 그룹을 저장하면 클러스터에서 DB 인스턴스를 수동으로 재부팅한 후에 파라미터 변경 내용이 적용됩니다.

**동적 파라미터**
+ 동적 파라미터는 해당 파라미터 그룹에서 파라미터가 업데이트된 후 거의 즉시 적용되는 파라미터입니다. 즉, 동적 파라미터를 업데이트한 후 DB 인스턴스를 재부팅하지 않아도 파라미터 변경 사항이 적용됩니다.
+ 동적 클러스터 파라미터 변경이 모든 DB 인스턴스에 적용되는 데 약간의 지연이 있을 수 있습니다.
+ 업데이트된 동적 파라미터 값은 현재 실행 중인 요청에는 적용되지 않고 변경 이후 제출된 요청에만 적용됩니다.
+ 동적 클러스터 수준 파라미터를 변경하면 기본적으로 파라미터 변경이 재부팅 없이 DB 클러스터에 즉시 적용됩니다. 클러스터의 DB 인스턴스가 재부팅될 때까지 파라미터 변경을 연기하려면 AWS CLI 를 사용하여 파라미터 변경에 `pending-reboot` 대해를 `ApplyMethod` 로 설정할 수 있습니다.

현재 모든 파라미터는 정적입니다. 단, 다음과 같은 새 클러스터 파라미터는 예외입니다.
+ `neptune_enable_slow_query_log`(클러스터 수준)
+ `neptune_slow_query_log_threshold`(클러스터 수준)

다음은 DB 파라미터 그룹의 파라미터 작업 시 알아 두어야 할 몇 가지 주요 사항입니다.
+ DB 파라미터 그룹에 파라미터를 잘못 설정하면 성능 저하나 시스템 불안정 등의 의도하지 않은 부작용이 있을 수 있습니다. 데이터베이스 파라미터를 수정할 때 항상 주의하고 DB 파라미터 그룹을 수정하기 전에 데이터를 백업하세요. 파라미터 그룹 변경 내용을 프로덕션 DB 인스턴스에 적용하기 전에 테스트 DB 인스턴스에 적용해 봐야 합니다.
+ DB 인스턴스와 연결된 DB 파라미터 그룹을 변경하면 DB 인스턴스에서 새 DB 파라미터 그룹을 사용하기 전에 인스턴스를 수동으로 재부팅해야 합니다.
**참고**  
[릴리스: 1.2.0.0(2022년 7월 21일)](engine-releases-1.2.0.0.md) 이전에는 기본 인스턴스가 재시작되면 DB 클러스터의 모든 읽기 복제본 인스턴스가 자동으로 재부팅되었습니다.  
[릴리스: 1.2.0.0(2022년 7월 21일)](engine-releases-1.2.0.0.md)부터는 기본 인스턴스를 다시 시작해도 복제본 인스턴스가 재시작되지 않습니다. 즉, DB 클러스터 수준 파라미터 변경 사항을 적용하려면 각 인스턴스를 개별적으로 다시 시작해야 합니다.

## DB 클러스터 파라미터 그룹 또는 DB 파라미터 그룹 편집
<a name="parameters-editgroup"></a>

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **파라미터 그룹**을 선택합니다.

1. 편집할 DB 파라미터 그룹의 **이름** 링크를 선택합니다.

   (선택 사항) **파라미터 그룹 생성**을 선택하여 새 클러스터 파라미터 그룹을 생성하고 새 그룹을 생성합니다. 그런 다음 새 파라미터 그룹의 **이름**을 선택합니다.
**중요**  
이 단계는 기본 DB 클러스터 파라미터 그룹을 수정할 수 없어 기본 DB 클러스터 파라미터 그룹만 갖게 될 경우에 필요합니다.**

1. 파라미터를 검색하고 **이름** 열 옆에 있는 **값** 필드를 클릭합니다.

1. 허용되는 값을 입력하고 값 필드 옆에 있는 검사를 선택합니다.

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

1. DB 클러스터 파라미터를 변경하는 경우 Neptune 클러스터의 모든 DB 인스턴스를 재부팅하고, DB 인스턴스 파라미터를 변경하는 경우 하나 이상의 특정 인스턴스를 재부팅합니다.

## DB 클러스터 파라미터 그룹 또는 DB 파라미터 그룹 생성
<a name="parameters-creategroup"></a>

Neptune 콘솔을 사용하여 새 파라미터를 만들 수 있습니다.

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 좌측 탐색 창에서 **파라미터 그룹**을 선택합니다.

1. **DB 파라미터 그룹 생성**을 선택합니다.

   **DB 파라미터 그룹 생성** 페이지가 나타납니다.

1. **파라미터 그룹 패밀리** 목록에서 대상 Neptune 엔진 버전과 일치하는 패밀리(예: **neptune1.2**, **neptune1.3** 또는 **neptune1.4**)를 선택합니다.

1. **유형** 목록에서 **DB 파라미터 그룹** 또는 **DB 클러스터 파라미터 그룹**을 선택합니다.

1. **그룹 이름** 상자에 새로운 DB 파라미터 그룹의 이름을 입력합니다.

1. **설명** 상자에 새 DB 파라미터 그룹에 대한 설명을 입력합니다.

1. **생성(Create)**을 선택합니다.

 AWS CLI를 사용하여 새 파라미터 그룹을 생성할 수도 있습니다.

```
aws neptune create-db-parameter-group \
  --db-parameter-group-name (a name for the new DB parameter group) \
  --db-parameter-group-family (the family matching your engine version, such as neptune1.2, neptune1.3, or neptune1.4) \
  --description (a description for the new DB parameter group)
```

# Amazon Neptune 파라미터
<a name="parameters"></a>

DB 파라미터 그룹에서 [파라미터 그룹](parameter-groups.md)을 사용하여 Amazon Neptune에서 데이터베이스 구성을 관리합니다. Neptune 데이터베이스를 구성하는 데 사용할 수 있는 파라미터는 다음과 같습니다.

**클러스터 수준 파라미터**
+ [neptune\$1enable\$1audit\$1log](#parameters-db-cluster-parameters-neptune_enable_audit_log)
+ [neptune\$1enable\$1slow\$1query\$1log](#parameters-db-cluster-parameters-neptune_enable_slow_query_log)
+ [neptune\$1slow\$1query\$1log\$1threshold](#parameters-db-cluster-parameters-neptune_slow_query_log_threshold)
+ [neptune\$1lab\$1mode](#parameters-db-cluster-parameters-neptune_lab_mode)
+ [neptune\$1query\$1timeout](#parameters-db-cluster-parameters-neptune_query_timeout)
+ [neptune\$1streams](#parameters-db-cluster-parameters-neptune_streams)
+ [neptune\$1streams\$1expiry\$1days](#parameters-db-cluster-parameters-neptune_streams_expiry_days)
+ [neptune\$1lookup\$1cache](#parameters-db-cluster-parameters-neptune_lookup_cache)
+ [neptune\$1autoscaling\$1config](#parameters-db-cluster-parameters-neptune_autoscaling_config)
+ [neptune\$1ml\$1iam\$1role](#parameters-db-cluster-parameters-neptune_ml_iam_role)
+ [neptune\$1ml\$1endpoint](#parameters-db-cluster-parameters-neptune_ml_endpoint)
+ [neptune\$1enable\$1inline\$1server\$1generated\$1edge\$1id](#parameters-db-cluster-parameters-neptune_inline_edge_id)

   

**인스턴스 수준 파라미터**
+ [neptune\$1dfe\$1query\$1engine](#parameters-instance-parameters-neptune_dfe_query_engine)
+ [neptune\$1query\$1timeout](#parameters-instance-parameters-neptune_query_timeout)
+ [neptune\$1result\$1cache](#parameters-db-instance-parameters-neptune_result_cache)
+ [UndoLogPurgeConfig](#parameters-db-instance-parameters-undo_log_purge_config)

   

**사용 중단되는 파라미터**
+ [neptune\$1enforce\$1ssl](#parameters-db-cluster-parameters-neptune_enforce_ssl)

## `neptune_enable_audit_log`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_enable_audit_log"></a>

이 파라미터는 Neptune의 감사 로깅을 전환합니다.

허용되는 값은 `0`(비활성화) 및 `1`(활성화)입니다. 기본값은 `0`입니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

[CLI를 사용하여 Neptune 감사 로그를 CloudWatch Logs에 게시](cloudwatch-logs.md#cloudwatch-logs-cli)에 설명된 대로 Amazon CloudWatch에 감사 로그를 게시할 수 있습니다.

## `neptune_enable_slow_query_log`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_enable_slow_query_log"></a>

이 파라미터를 사용하여 Neptune의 [느린 쿼리 로깅](slow-query-logs.md) 기능을 활성화하거나 비활성화할 수 있습니다.

이는 동적 파라미터이므로 값을 변경해도 DB 클러스터를 다시 시작할 필요가 없으며 다시 시작해야 할 필요도 없습니다.

허용되는 값:
+ **`info`** - 느린 쿼리 로깅을 활성화하고 성능 저하의 원인이 될 수 있는 선택된 속성을 로깅합니다.
+ **`debug`** - 느린 쿼리 로깅을 활성화하고 쿼리 실행의 사용 가능한 모든 속성을 기록합니다.
+ **`disabled`** - 느린 쿼리 로깅을 비활성화합니다.

기본값은 `disabled`입니다.

[CLI를 사용하여 Neptune 느린 쿼리 로그를 CloudWatch Logs에 게시](cloudwatch-logs.md#cloudwatch-slow-query-logs-cli)에 설명된 대로 Amazon CloudWatch에 느린 쿼리 로그를 게시할 수 있습니다.

## `neptune_slow_query_log_threshold`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_slow_query_log_threshold"></a>

이 파라미터는 실행 시간 임곗값(밀리초)을 지정하며, 그 이후에는 쿼리가 느린 쿼리로 간주됩니다. [느린 쿼리 로깅](slow-query-logs.md)이 활성화된 경우 이 임곗값보다 오래 실행되는 쿼리는 일부 속성과 함께 로깅됩니다.

기본값은 5,000밀리초(5초)입니다.

이는 동적 파라미터이므로 값을 변경해도 DB 클러스터를 다시 시작할 필요가 없으며 다시 시작해야 할 필요도 없습니다.

## `neptune_lab_mode`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_lab_mode"></a>

이 파라미터를 설정하면 Neptune의 특정 실험적 기능이 활성화됩니다. 현재 사용 가능한 실험적 기능은 [Neptune 랩 모드](features-lab-mode.md) 단원을 참조하세요.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

실험적 기능을 활성화하거나 비활성화하려면 이 파라미터에 *(기능 이름)*`=enabled` 또는 *(기능 이름)*`=disabled`을 포함합니다. 다음과 같이 쉼표로 구분하여 여러 기능을 활성화하거나 비활성화할 수 있습니다.

*(기능 \$11 이름)*`=enabled,` *(기능 \$12 이름)*`=enabled`

Lab Mode 기능은 일반적으로 비활성화되어 있습니다. 단, 이 `DFEQueryEngine` 기능은 [Neptune 엔진 릴리스 1.0.5.0](engine-releases-1.0.5.0.md)부터 쿼리 힌트(`DFEQueryEngine=viaQueryHint`)와 함께 사용할 수 있도록 기본적으로 활성화되었습니다. [Neptune 엔진 릴리스 1.1.1.0](engine-releases-1.1.1.0.md)부터 DFE 엔진은 더 이상 랩 모드로 제공되지 않으며, 이제 인스턴스의 DB 파라미터 그룹에 있는 [neptune\$1dfe\$1query\$1engine](#parameters-instance-parameters-neptune_dfe_query_engine) 인스턴스 파라미터를 사용하여 제어됩니다.

## `neptune_query_timeout`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_query_timeout"></a>

그래프 쿼리의 특정 제한 시간 기간을 밀리초 단위로 지정합니다.

허용되는 값의 범위는 `10`\$1`2,147,483,647`(231-1)입니다. 기본값은 `120,000`(2분)입니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

여러 제한 시간 설정(클러스터 수준, 인스턴스 수준 및 쿼리당)이 구성된 경우 다음 표에는 어떤 제한 시간 값이 우선하는지 나와 있습니다.


| 클러스터 PG | 인스턴스 PG | 쿼리 힌트 | 결과 | 
| --- | --- | --- | --- | 
| 기본값 | 기본값 | 없음 | Cluster | 
| 사용자 지정 | 기본값 | 없음 | Cluster | 
| 사용자 지정 | 사용자 지정 | 없음 | Instance | 
| 기본값 | 사용자 지정 | 없음 | Instance | 
| 임의 | 임의 | 가장 낮음 | Query | 
| 기본값 | 사용자 지정 | 최저가 아님 | Instance | 
| 사용자 지정 | 기본값 | 최저가 아님 | Cluster | 
| 사용자 지정 | 사용자 지정 | 최저가 아님 | Instance | 

**참고**  
특히 서버리스 인스턴스에서 쿼리 제한 시간 값을 너무 높게 설정하면 예상치 못한 비용이 발생할 수 있습니다. 제한 시간을 적절하게 설정하지 않으면 의도치 않게 쿼리가 예상보다 훨씬 오래 실행되어 예상하지 못한 비용이 발생할 수 있습니다. 쿼리를 실행하는 동안 비용이 많이 드는 대규모 인스턴스 유형으로 스케일 업할 수 있는 서버리스 인스턴스의 경우 특히 그렇습니다.  
대부분의 쿼리를 수용하고 예기치 않게 오래 실행되는 쿼리의 제한 시간만 발생시키는 쿼리 제한 시간 값을 사용하면 이런 종류의 예상치 못한 비용을 피할 수 있습니다.

## `neptune_streams`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_streams"></a>

[Neptune 스트림](streams.md)를 활성화하거나 비활성화합니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

허용되는 값은 `0`(비활성화: 기본값) 및 `1`(활성화)입니다.

## `neptune_streams_expiry_days`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_streams_expiry_days"></a>

서버에서 스트림 레코드를 삭제하기까지 경과되는 일수를 지정합니다.

허용되는 값은 `1`\$1`90`이 포함됩니다. 기본값은 `7`입니다.

이 파라미터는 [엔진 버전 1.2.0.0](engine-releases-1.2.0.0.md)에 도입되었습니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

## `neptune_lookup_cache`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_lookup_cache"></a>

`R5d` 인스턴스에서 [Neptune 조회 캐시](feature-overview-lookup-cache.md)를 비활성화하거나 다시 활성화합니다. 

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

허용되는 값은 `1`(활성화) 및 `0`(비활성화)입니다. 기본값은 `0`이지만 DB 클러스터에서 `R5d` 인스턴스를 생성할 때마다 `neptune_lookup_cache` 파라미터가 자동으로 `1`로 설정되고 해당 인스턴스에 조회 캐시가 생성됩니다.

## `neptune_autoscaling_config`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_autoscaling_config"></a>

[Neptune Auto Scaling](manage-console-autoscaling.md)에서 생성하고 관리하는 읽기 복제본 인스턴스의 구성 파라미터를 설정합니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

`neptune_autoscaling_config` 파라미터 값으로 설정한 JSON 문자열을 사용하여 다음을 지정할 수 있습니다.
+ Neptune Auto scaling에서 새로 생성하는 모든 읽기 전용 복제본 인스턴스에 사용하는 인스턴스 유형입니다.
+ 해당 읽기 전용 복제본에 할당된 유지 관리 기간입니다.
+ 모든 새 읽기 전용 복제본에 연결할 태그입니다.

JSON 문자열의 구조는 다음과 같습니다.

```
"{
  \"tags\": [
    { \"key\" : \"reader tag-0 key\", \"value\" : \"reader tag-0 value\" },
    { \"key\" : \"reader tag-1 key\", \"value\" : \"reader tag-1 value\" },
  ],
  \"maintenanceWindow\" : \"wed:12:03-wed:12:33\",
  \"dbInstanceClass\" : \"db.r5.xlarge\"
}"
```

참고로 문자열 내의 따옴표는 모두 백슬래시 문자(`\`)로 이스케이프 처리해야 합니다.

`neptune_autoscaling_config` 파라미터에 지정되지 않은 세 가지 구성 설정은 모두 DB 클러스터의 기본 라이터 인스턴스 구성에서 복사됩니다.

## `neptune_ml_iam_role`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_ml_iam_role"></a>

Neptune ML에서 사용되는 IAM 역할 ARN을 지정합니다. 값은 모든 유효한 IAM 역할 ARN일 수 있습니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

그래프에서 기계 학습을 위한 기본 IAM 역할 ARN을 지정할 수 있습니다.

## `neptune_ml_endpoint`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_ml_endpoint"></a>

Neptune ML에 사용되는 엔드포인트를 지정합니다. 값은 임의의 유효한 [SageMaker AI 엔드포인트 이름](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html#sagemaker-CreateEndpoint-request-EndpointName)일 수 있습니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

그래프에서 기계 학습을 위한 기본 SageMaker AI 엔드포인트를 지정할 수 있습니다.

## `neptune_enable_inline_server_generated_edge_id`(클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_inline_edge_id"></a>

 Neptune 인라인 서버 생성 Edge ID 기능을 활성화하거나 비활성화합니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

허용되는 값은 `1`(활성화) 및 `0`(비활성화)입니다. 기본값은 `0`입니다.

## `neptune_dfe_query_engine`(인스턴스 수준 파라미터)
<a name="parameters-instance-parameters-neptune_dfe_query_engine"></a>

[Neptune 엔진 릴리스 1.1.1.0](engine-releases-1.1.1.0.md)부터 이 DB 인스턴스 파라미터는 [DFE 쿼리 엔진](neptune-dfe-engine.md) 사용 방법을 제어하는 데 사용됩니다. 값은 다음과 같습니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.
+ **`enabled`** - `useDFE` 쿼리 힌트가 존재하고 `false` 설정된 경우를 제외하고 가능한 모든 곳에서 DFE 엔진을 사용합니다.
+ **`viaQueryHint`**(기본값) - `true` 설정된 `useDFE` 쿼리 힌트가 명시적으로 포함된 쿼리에만 DFE 엔진을 사용합니다. 

이 파라미터가 명시적으로 설정되지 않은 경우 인스턴스가 시작될 때 기본값인 `viaQueryHint`가 사용됩니다.

**참고**  
모든 openCypher 쿼리는 이 파라미터의 설정 방식에 관계없이 DFE 엔진에서 실행됩니다.

릴리스 1.1.1.0 이전에는 이 파라미터가 DB 인스턴스 파라미터가 아니라 Lab Mode 파라미터였습니다.

## `neptune_query_timeout`(인스턴스 수준 파라미터)
<a name="parameters-instance-parameters-neptune_query_timeout"></a>

이 DB 인스턴스 파라미터는 인스턴스 하나에 대한 그래프 쿼리 제한 시간(밀리초)을 지정합니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

허용되는 값의 범위는 `10`\$1`2,147,483,647`(231-1)입니다. 기본값은 `120,000`(2분)입니다.

**참고**  
특히 서버리스 인스턴스에서 쿼리 제한 시간 값을 너무 높게 설정하면 예상치 못한 비용이 발생할 수 있습니다. 제한 시간을 적절하게 설정하지 않으면 의도치 않게 쿼리가 예상보다 훨씬 오래 실행되어 예상하지 못한 비용이 발생할 수 있습니다. 쿼리를 실행하는 동안 비용이 많이 드는 대규모 인스턴스 유형으로 스케일 업할 수 있는 서버리스 인스턴스의 경우 특히 그렇습니다.  
대부분의 쿼리를 수용하고 예기치 않게 오래 실행되는 쿼리의 제한 시간만 발생시키는 쿼리 제한 시간 값을 사용하면 이런 종류의 예상치 못한 비용을 피할 수 있습니다.

## `neptune_result_cache`(인스턴스 수준 파라미터)
<a name="parameters-db-instance-parameters-neptune_result_cache"></a>

**`neptune_result_cache`** - 이 DB 인스턴스 파라미터는 [쿼리 결과 캐싱](gremlin-results-cache.md)를 활성화하거나 비활성화합니다.

이 파라미터는 정적입니다. 즉, 파라미터에 대한 변경 사항은 재부팅될 때까지 어떤 인스턴스에도 적용되지 않습니다.

허용되는 값은 `0`(비활성화: 기본값) 및 `1`(활성화)입니다.

## `UndoLogPurgeConfig`(인스턴스 수준 파라미터)
<a name="parameters-db-instance-parameters-undo_log_purge_config"></a>

**`UndoLogPurgeConfig`** - 이 파라미터를 사용하여 Neptune에서 공격적인 UndoLog 제거를 활성화하거나 비활성화합니다.

허용되는 값은 표준 스레드 수를 사용하여 실행 취소 로그를 정리하는 `default`, 증가된 스레드 수를 사용하여 실행 취소 로그의 정리 작업을 가속화하는 `aggressive`입니다. `agressive` 옵션을 선택하면 `NumUndoPagesPurged` 지표에 대한 값이 더 높아질 것으로 예상할 수 있습니다.

## `neptune_enforce_ssl`(더 이상 사용되지 않는 클러스터 수준 파라미터)
<a name="parameters-db-cluster-parameters-neptune_enforce_ssl"></a>

(**더 이상 사용되지 않음**) 이전에는 Neptune에 HTTP 연결을 허용하는 리전이 있었는데, 이 파라미터는 1로 설정된 경우 모든 연결에서 HTTPS를 사용하도록 강제하는 데 사용되었습니다. 그러나 Neptune은 이제 모든 리전에서 HTTPS 연결만 허용하므로 이 파라미터는 더 이상 관련이 없습니다.

# 를 사용하여 Neptune DB 클러스터 시작 AWS Management Console
<a name="manage-console-launch-console"></a>

새 Neptune DB 클러스터를 시작하는 가장 쉬운 방법은에 설명된 대로 필요한 모든 리소스를 생성하는 CloudFormation 템플릿을 사용하는 것입니다[Neptune 클러스터 생성](get-started-create-cluster.md).

원하는 경우 여기에 설명된 대로 Neptune 콘솔을 사용하여 새 DB 클러스터를 수동으로 시작할 수도 있습니다.

**참고**  
 Neptune 콘솔에 액세스하여 Neptune 클러스터를 생성하려면 먼저 충분한 권한을 가진 사용자가 있어야 합니다. 현재 사용자에게 이러한 권한이 없는 경우 [Neptune에 권한이 있는 IAM 사용자 생성](manage-console-iam-user.md)에 설명된 대로 필요한 권한이 있는 IAM 사용자를 생성할 수 있습니다.

사용자에게 올바른 권한이 있는지 확인하거나 올바른 권한이 있는 사용자를 생성했으면 해당 IAM 사용자 AWS Management Console 로에 로그인하고 아래 단계에 따라 새 DB 클러스터를 생성합니다.

**콘솔을 사용하여 Neptune DB 클러스터를 시작하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. **데이터베이스**에서 **클러스터** 페이지로 이동하여 **데이터베이스 생성**을 선택합니다. 그러면 **데이터베이스 생성** 페이지가 열립니다.

1. **설정**에서 새 DB 클러스터의 이름을 입력하거나 여기에 제공된 기본 이름을 그대로 사용합니다. 이 이름은 인스턴스의 엔드포인트 주소로 사용되며 다음 제약 조건을 충족해야 합니다.
   + 1\$163자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.
   + 첫 번째 문자는 글자이어야 합니다.
   + 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.
   + 지정된 AWS 리전의 AWS 계정에 있는 모든 DB 인스턴스에서 고유해야 합니다.

1. **템플릿**에서 **프로덕션** 또는 **개발 및 테스트**를 선택합니다.

1. **DB 인스턴스 크기**에서 인스턴스 크기를 선택합니다. 이에 따라 새 DB 클러스터에 있는 기본 쓰기 인스턴스의 처리 및 메모리 용량이 결정됩니다.

   **프로덕션** 템플릿을 선택한 경우 나열된 사용 가능한 메모리 최적화 클래스 중에서만 선택할 수 있지만 **개발 및 테스트**를 선택한 경우 보다 경제적인 버스트 가능 클래스 중에서 선택할 수도 있습니다(버스트 가능 클래스에 대한 설명은 [T3 버스트 가능 인스턴스](manage-console-instances-t3.md) 참조).
**참고**  
Neptune은 더 이상 `R4` 인스턴스 유형을 지원하지 않습니다.

1. **가용성 및 내구성**에서 다중 가용 영역(다중 AZ) 배포를 활성화할지 여부를 선택할 수 있습니다. 프로덕션 템플릿은 기본적으로 다중 AZ 배포를 활성화하지만 개발 및 테스트 템플릿은 그렇지 않습니다. 다중 AZ 배포가 활성화된 경우 Neptune은 다른 가용 영역(AZ)에 생성한 읽기 전용 복제본 인스턴스를 찾아 가용성을 개선합니다.

1. **연결**에서 사용 가능한 옵션 중에서 새 DB 클러스터를 호스팅할 Virtual Private Cloud(VPC)를 선택합니다. Neptune이 자동으로 VPC를 생성하도록 하려면 여기에서 **새 VPC 생성**을 선택할 수 있습니다. Neptune 인스턴스에 액세스하려면 동일한 VPC에 Amazon EC2 인스턴스를 생성해야 합니다(자세한 내용은 [Amazon VPC를 사용하여 Amazon Neptune 데이터베이스 보호](security-vpc.md) 참조). DB 클러스터를 생성한 후에는 VPC를 변경할 수 없습니다.

   필요한 경우 추가 연결 구성에서 클러스터의 **연결을 추가로 구성**할 수 있습니다.

   1. **서브넷 그룹**에서 새 DB 클러스터에 사용할 Neptune DB 서브넷 그룹을 선택할 수 있습니다. VPC에 서브넷 그룹이 없는 경우에는 Neptune은 DB 서브넷 그룹을 생성합니다([Amazon VPC를 사용하여 Amazon Neptune 데이터베이스 보호](security-vpc.md) 참조).

   1. **VPC 보안 그룹**에서 새 DB 클러스터에 대한 네트워크 액세스를 보호할 기존 VPC 보안 그룹을 하나 이상 선택하고, Neptune에서 자동으로 생성하도록 하려면 **새로 생성**을 선택한 다음 새 VPC 보안 그룹의 이름을 입력합니다 ([VPC 콘솔을 사용하여 보안 그룹 생성](get-started-vpc.md#security-vpc-security-group) 참조).

   1. **데이터베이스 포트**에 데이터베이스가 애플리케이션 연결에 사용할 TCP/IP 포트를 입력합니다. Neptune은 포트 `8182` 번호를 기본값으로 사용합니다.

1. Neptune이 Neptune Workbench에서 Jupyter Notebook을 자동으로 생성하도록 하려면 **노트북 구성**에서 **노트북 생성**을 선택합니다([그래프 노트북에서 Amazon Neptune 사용](graph-notebooks.md) 및 [Neptune 워크벤치를 사용하여 Neptune 노트북 호스팅](graph-notebooks.md#graph-notebooks-workbench) 참조). 그런 다음 새 노트북을 구성하는 방법을 선택할 수 있습니다.

   1. **Notebook 인스턴스 유형**에서 노트북에 사용할 수 있는 인스턴스 클래스 중에서 선택하세요.

   1. **노트북 이름**에는 노트북의 이름을 입력합니다.

   1. 원하는 경우 **설명 - 선택 사항**에 노트북에 대한 설명을 입력할 수도 있습니다.

   1. **IAM 역할 이름**에서 Neptune이 노트북의 IAM 역할을 생성하도록 선택하고 새 역할의 이름을 입력하거나 사용 가능한 역할 중에서 기존 IAM 역할을 선택하도록 선택합니다.

   1. 마지막으로 노트북을 인터넷에 직접 연결할지, Amazon SageMaker AI를 통해 연결할지, 아니면 NAT 게이트웨이가 있는 VPC를 통해 연결할지를 선택합니다. 자세한 내용은 [VPC의 리소스에 Notebook 인스턴스 연결](https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-notebook-and-internet-access.html)을 참조하세요.

1. **태그**에서 새 DB 클러스터와 태그를 최대 50개까지 연결할 수 있습니다.

1. **추가 구성**에는 새 DB 클러스터에 대해 더 많은 설정을 지정할 수 있습니다. 대부분의 경우 설정을 건너뛰고 지금은 기본값을 그대로 사용할 수 있습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/manage-console-launch-console.html)

1. **데이터베이스 생성**을 선택하여 새 Neptune DB 클러스터와 기본 인스턴스를 시작합니다.

   Amazon Neptune 콘솔의 데이터베이스 목록에 새로운 DB 클러스터가 나타납니다. DB 클러스터가 생성되고 사용할 준비가 될 때까지 DB 클러스터의 상태는 **생성 중**입니다. 상태가 **사용 가능**으로 변경되면 DB 클러스터의 기본 인스턴스에 연결할 수 있습니다. DB 인스턴스 클래스와 할당된 저장소에 따라 새 인스턴스를 사용할 수 있을 때까지 몇 분 정도 걸릴 수 있습니다.

   새로 생성된 클러스터를 보려면 Neptune 콘솔의 **데이터베이스** 보기를 선택합니다.
**참고**  
를 사용하여 DB 클러스터의 모든 Neptune DB 인스턴스를 삭제하면 콘솔 AWS Management Console이 DB 클러스터 자체를 자동으로 삭제합니다. AWS CLI 또는 SDK를 사용하는 경우 마지막 인스턴스를 삭제한 후 DB 클러스터를 수동으로 삭제해야 합니다.

   **클러스터 엔드포인트** 값을 기록해 둡니다. Neptune DB 클러스터에 연결하려면 이 값이 필요합니다.

# Amazon Neptune DB 클러스터 중지 및 시작을 참조하세요.
<a name="manage-console-stop-start"></a>

 Amazon Neptune 클러스터를 중지하고 시작하면 개발 및 테스트 환경 비용을 관리하는 데 도움이 됩니다. 클러스터를 사용할 때마다 모든 DB 인스턴스를 설정 및 해제하는 대신 클러스터의 모든 DB 인스턴스를 일시적으로 중지할 수 있습니다.

**Topics**
+ [Neptune DB 클러스터의 중지 및 시작 개요](#manage-console-start-stop-overview)
+ [Neptune DB 클러스터 중지](#manage-console-stopping)
+ [중지된 Neptune DB 클러스터 시작](#manage-console-start)

## Neptune DB 클러스터의 중지 및 시작 개요
<a name="manage-console-start-stop-overview"></a>

Neptune 클러스터가 필요하지 않은 기간에는 이 클러스터의 모든 인스턴스를 한번에 중지할 수 있습니다. 사용해야 할 때는 언제든지 클러스터를 다시 시작할 수 있습니다. 시작 및 중지를 사용하면 개발, 테스트 또는 연속 가용성을 필요로 하지 않는 유사한 활동에 사용되는 클러스터의 설정 및 해제 프로세스가 간소화됩니다. 클러스터에 있는 인스턴스 수에 관계없이 단일 작업 AWS Management Console 으로에서이 작업을 수행할 수 있습니다.

 DB 클러스터가 중지되어 있는 동안에는 지정된 보존 기간 내 클러스터 스토리지, 수동 스냅샷 및 자동 백업 스토리지에 대한 비용만 청구됩니다. DB 인스턴스 시간에 대해서는 요금이 부과되지 않습니다

Neptune은 7일 후 DB 클러스터를 자동으로 다시 시작하므로 필요한 유지 관리 업데이트보다 늦어지지 않습니다.

로드가 적은 Neptune 클러스터의 요금을 최소화하려면 읽기 전용 복제본을 모두 삭제하는 대신 클러스터를 중지할 수 있습니다. 인스턴스가 두 개 이상인 클러스터의 경우 DB 인스턴스를 자주 삭제하고 다시 생성하는 것은 AWS CLI 또는 Neptune API를 사용할 때만 실용적이며 삭제를 올바른 순서로 수행하기 어려울 수도 있습니다. 예를 들어 장애 조치 메커니즘이 활성화되지 않도록 기본 인스턴스를 삭제하기 전에 모든 읽기 전용 복제본을 삭제해야 합니다.

DB 클러스터를 계속 실행해야 하지만 용량을 줄이기 위해선 시작 및 중지를 사용하지 마세요. 클러스터의 비용이 너무 비싸거나 사용량이 많지 않은 경우, 하나 이상의 DB 인스턴스를 삭제하거나 더 작은 인스턴스 클래스를 사용하도록 DB 인스턴스를 변경할 수 있지만 개별 DB 인스턴스를 중지할 수는 없습니다.

## Neptune DB 클러스터 중지
<a name="manage-console-stopping"></a>

잠시 동안 사용하지 않을 경우 실행 중인 Neptune DB 클러스터를 중지한 다음 필요할 때 다시 시작할 수 있습니다. 클러스터가 중지되어 있는 동안에는 DB 인스턴스 시간이 아니라 지정된 보존 기간 내 클러스터 스토리지, 수동 스냅샷 및 자동 백업 스토리지에 대한 비용이 청구됩니다.

중지 작업은 장애 조치 메커니즘이 활성화되지 않도록 기본 인스턴스를 중지하기 전에 모든 클러스터의 읽기 전용 복제본 인스턴스를 중지합니다.

### 를 사용하여 DB 클러스터 중지 AWS Management Console
<a name="manage-console-stopping-console"></a>

**AWS Management Console 를 사용하여 Neptune 클러스터를 중지하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 후 클러스터를 선택합니다. 이 페이지에서 중지 작업을 수행하거나 중지하려는 DB 클러스터의 세부 정보 페이지로 이동하세요.

1. **작업**에서 **중지**를 선택합니다.

### 를 사용하여 DB 클러스터 중지 AWS CLI
<a name="manage-console-stopping-cli"></a>

를 사용하여 DB 인스턴스를 중지하려면 [stop-db-cluster](api-clusters.md#StopDBCluster) 명령을 AWS CLI호출하고 `--db-cluster-identifier` 파라미터를 사용하여 중지하려는 DB 클러스터를 식별합니다.

**Example**  

```
aws neptune stop-db-cluster --db-cluster-identifier mydbcluster
```

### Neptune 관리 API를 사용하여 DB 클러스터 중지
<a name="manage-console-stopping-api"></a>

Neptune 관리 API를 사용하여 DB 인스턴스를 중지하려면 [StopDBCluster](api-clusters.md#StopDBCluster) API를 호출하고 `DBClusterIdentifier` 파라미터를 사용하여 중지할 DB 클러스터를 식별합니다.

### DB 클러스터가 중지되는 동안 발생할 수 있는 일
<a name="manage-console-stopped"></a>
+ 스냅샷에서 복구할 수 **있습니다**([DB 클러스터 스냅샷에서 복원](backup-restore-restore-snapshot.md) 참조).
+ DB 클러스터 또는 DB 인스턴스의 구성은 수정할 수**없습니다**.
+ 클러스터에서 DB 인스턴스를 추가하거나 제거할 수 **없습니다**.
+ 아직 연결된 DB 인스턴스가 있는 경우 클러스터를 삭제할 수 **없습니다.**
+ 일반적으로 대부분의 관리 작업을 수행하려면 중지된 DB 클러스터를 다시 시작해야 합니다.
+ Neptune은 다시 시작한 후 중지된 클러스터에 예약된 유지 관리를 적용합니다. 7일 후에 Neptune은 중지된 클러스터를 자동으로 다시 시작하므로 유지 관리 상태에서 너무 늦어지지 않는다는 점을 기억하세요.
+ Neptune은 클러스터가 중지된 동안에는 기본 데이터를 변경할 수 없으므로 중지된 DB 클러스터의 자동 백업을 수행하지 않습니다.
+ Neptune은 DB 클러스터가 중지되는 동안 백업 보존 기간을 연장하지 않습니다.

## 중지된 Neptune DB 클러스터 시작
<a name="manage-console-start"></a>

중지된 상태인 Neptune DB 클러스터만 시작할 수 있습니다. 클러스터를 시작하면 모든 DB 인스턴스가 다시 사용 가능하게 됩니다. 클러스터는 엔드포인트, 파라미터 그룹 및 VPC 보안 그룹과 같은 구성 설정을 유지합니다.

### 를 사용하여 중지된 DB 클러스터 시작 AWS Management Console
<a name="manage-console-start-console"></a>

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 후 클러스터를 선택합니다. 이 페이지에서 시작 작업을 수행하거나 시작하려는 DB 클러스터의 세부 정보 페이지로 이동하세요.

1. **작업**에서 **시작**을 선택합니다.

### 를 사용하여 중지된 DB 클러스터 시작 AWS CLI
<a name="manage-console-start-cli"></a>

를 사용하여 중지된 DB 클러스터를 시작하려면 `--db-cluster-identifier` 파라미터를 사용하여 [start-db-cluster](api-clusters.md#StartDBCluster) 명령을 AWS CLI호출하여 시작하려는 중지된 DB 클러스터를 지정합니다. DB 클러스터를 생성할 때 선택한 클러스터 이름을 제공하거나 선택한 DB 인스턴스 이름을 `-cluster` 끝에 추가하여 사용합니다.

**Example**  

```
aws neptune start-db-cluster --db-cluster-identifier mydbcluster
```

### Neptune 관리 API를 사용하여 중지된 DB 클러스터 시작
<a name="manage-console-start-api"></a>

Neptune 관리 API를 사용하여 중지된 Neptune DB 클러스터를 시작하려면 `DBCluster` 파라미터를 사용하여 [StartDBCluster](api-clusters.md#StartDBCluster) API를 호출하여 시작하려는 중지된 DB 클러스터를 지정합니다. DB 클러스터를 생성할 때 선택한 클러스터 이름을 제공하거나 선택한 DB 인스턴스 이름을 `-cluster` 끝에 추가하여 사용합니다.

# 빠른 재설정 API를 사용하여 Amazon Neptune DB 클러스터 비우기
<a name="manage-console-fast-reset"></a>

Neptune 빠른 재설정 REST API를 사용하면 Neptune 그래프를 빠르고 쉽게 재설정하여 모든 데이터를 제거할 수 있습니다.

Neptune 노트북 내에서 [%db\$1reset](#manage-console-fast-reset-db-reset-magic) 라인 매직으로 이 작업을 수행할 수 있습니다.
+ 대부분의 경우 빠른 재설정 작업은 몇 분 내에 완료됩니다. 이 기간은 작업이 시작될 때 클러스터에 가해지는 부하에 따라 다소 달라질 수 있습니다.
+ 빠른 재설정 작업으로 인해 추가 I/O가 발생하지 않습니다.
+ 빠른 재설정 후에도 스토리지 볼륨 크기가 줄어들지 않습니다. 대신 새 데이터가 삽입될 때 스토리지가 재사용됩니다. 즉, 빠른 재설정 작업 전후에 생성된 스냅샷의 볼륨 크기가 동일합니다. 빠른 재설정 작업 전후에 생성된 스냅샷을 사용하는 복원된 클러스터의 볼륨 크기도 동일합니다.
+ 재설정 작업의 일부로 DB 클러스터의 모든 인스턴스가 재시작됩니다.
**참고**  
드문 경우이긴 하지만 이러한 서버 재시작으로 인해 클러스터 장애 조치가 발생할 수도 있습니다.

**중요**  
빠른 재설정을 사용하면 Neptune DB 클러스터와 다른 서비스의 통합이 중단될 수 있습니다. 예제:  
빠른 재설정은 데이터베이스에서 모든 스트림 데이터를 삭제하고 스트림을 완전히 재설정합니다. 즉, 스트림 소비자가 새 구성 없이는 더 이상 작동하지 않을 수 있습니다.
빠른 재설정은 작업과 엔드포인트를 포함하여 Neptune ML에서 사용 중인 SageMaker AI 리소스에 대한 모든 메타데이터를 제거합니다. 이들은 SageMaker AI에 계속 존재하며, 기존 SageMaker AI 엔드포인트를 Neptune ML 추론 쿼리에 계속 사용할 수 있지만, Neptune ML 관리 API는 더 이상 이러한 엔드포인트에서 작동하지 않습니다.
ElasticSearch와의 전체 텍스트 검색 통합과 같은 통합 역시 빠른 재설정을 통해 삭제되므로 다시 사용하려면 먼저 수동으로 다시 설정해야 합니다.

**API를 사용하여 Neptune DB 클러스터에서 모든 데이터를 삭제하려면**

1. 먼저 데이터베이스 재설정을 수행하는 데 사용할 수 있는 토큰을 생성합니다. 이 단계는 다른 사람이 실수로 데이터베이스를 재설정하는 것을 방지하기 위한 것입니다.

   이를 위해서는 DB 클러스터의 라이터 인스턴스에 있는 `/system` 엔드포인트에 `initiateDatabaseReset` 작업을 지정하라는 `HTTP POST` 요청을 보내면 됩니다.

   JSON 콘텐츠 유형을 사용하는 `curl` 명령은 다음과 같습니다.

   ```
   curl -X POST \
     -H 'Content-Type: application/json' \
         https://your_writer_instance_endpoint:8182/system \
     -d '{ "action" : "initiateDatabaseReset" }'
   ```

   또는 `x-www-form-urlencoded` 콘텐츠 유형 사용:

   ```
   curl -X POST \
     -H 'Content-Type: application/x-www-form-urlencoded' \
         https://your_writer_instance_endpoint:8182/system \
     -d 'action=initiateDatabaseReset '
   ```

   `initiateDatabaseReset` 요청은 다음과 같이 JSON 응답으로 재설정 토큰을 반환합니다.

   ```
   {
     "status" : "200 OK",
     "payload" : {
       "token" : "new_token_guid"
     }
   }
   ```

   토큰은 발급 후 1시간(60분) 동안 유효합니다.

   요청을 리더 인스턴스나 상태 엔드포인트로 보내면 Neptune에서 `ReadOnlyViolationException`이 발생합니다.

   `initiateDatabaseReset` 요청을 여러 번 보내는 경우 가장 최근에 생성된 토큰만 실제로 재설정을 수행하는 두 번째 단계에서 유효합니다.

   `initiateDatabaseReset` 요청 직후 서버를 다시 시작하면 생성된 토큰은 유효하지 않게 되므로 새 토큰을 받으려면 새 요청을 보내야 합니다.

1. 다음으로, `initiateDatabaseReset`에서 돌려받은 토큰과 함께 DB 클러스터의 라이터 인스턴스에 있는 `/system` 엔드포인트로 `performDatabaseReset` 요청을 보냅니다. 이렇게 하면 DB 클러스터의 데이터가 모두 삭제됩니다.

   JSON 콘텐츠 유형을 사용하는 `curl` 명령:

   ```
   curl -X POST \
     -H 'Content-Type: application/json' \
         https://your_writer_instance_endpoint:8182/system \
     -d '{
           "action" : "performDatabaseReset",
           "token" : "token_guid"
         }'
   ```

   또는 `x-www-form-urlencoded` 콘텐츠 유형 사용:

   ```
   curl -X POST \
     -H 'Content-Type: application/x-www-form-urlencoded' \
         https://your_writer_instance_endpoint:8182/system \
     -d 'action=performDatabaseReset&token=token_guid'
   ```

   요청은 JSON 응답을 반환합니다. 요청이 수락된 경우 응답은 다음과 같습니다.

   ```
   {
     "status" : "200 OK"
   }
   ```

   전송한 토큰이 발급된 토큰과 일치하지 않는 경우 응답은 다음과 같습니다.

   ```
   {
     "code" : "InvalidParameterException",
     "requestId":"token_guid",
     "detailedMessage" : "System command parameter 'token' : 'token_guid' does not match database reset token"
   }
   ```

   요청이 수락되고 재설정이 시작되면 서버가 다시 시작되고 데이터가 삭제됩니다. 재설정하는 동안에는 DB 클러스터에 다른 요청을 보낼 수 없습니다.

## IAM-Auth와 함께 빠른 재설정 API 사용
<a name="manage-console-fast-reset-iam-auth"></a>

DB 클러스터에서 IAM 인증을 활성화한 경우 [awscurl](https://github.com/okigan/awscurl)을 사용하여 IAM-Auth를 사용하여 인증된 빠른 재설정 명령을 보낼 수 있습니다.

**awscurl을 사용하여 IAM-Auth로 빠른 재설정 요청 전송**

1. `AWS_ACCESS_KEY_ID` 및 `AWS_SECRET_ACCESS_KEY` 환경 변수를 올바르게 설정하세요(임시 자격 증명을 사용하는 경우에도 `AWS_SECURITY_TOKEN`입니다).

1. `initiateDatabaseReset` 요청은 다음과 같습니다.

   ```
   awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \
     -H 'Content-Type: application/json' --region us-west-2 \
     -d '{ "action" : "initiateDatabaseReset" }'
   ```

1. `performDatabaseReset` 요청은 다음과 같습니다.

   ```
   awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \
     -H 'Content-Type: application/json' --region us-west-2 \
     -d '{ "action" : "performDatabaseReset" }'
   ```

## Neptune Workbench `%db_reset` 라인 매직을 사용하여 DB 클러스터 재설정
<a name="manage-console-fast-reset-db-reset-magic"></a>

Neptune Workbench는 Neptune 노트북에서 데이터베이스를 빠르게 재설정할 수 있는 `%db_reset` 라인 매직을 지원합니다.

파라미터 없이 마법을 호출하면 클러스터의 모든 데이터를 삭제할지 묻는 화면이 나타나고, 삭제한 후에는 클러스터 데이터를 더 이상 사용할 수 없음을 확인하는 확인란이 나타납니다. 이때 데이터를 삭제할지 아니면 작업을 취소할지 선택할 수 있습니다.

더 위험한 옵션은 `--yes` 또는 `-y` 옵션을 사용하여 간접적으로 `%db_reset`을 호출하는 것입니다. 이 경우 추가 메시지 없이 삭제가 수행됩니다.

REST API와 마찬가지로 두 단계로 재설정을 수행할 수도 있습니다.

```
%db_reset --generate-token
```

다음과 같이 응답합니다.

```
{
  "status" : "200 OK",
  "payload" : {
    "token" : "new_token_guid"
  }
}
```

그러면 다음을 수행:

```
%db_reset --token new_token_guid
```

다음과 같이 응답합니다.

```
{
  "status" : "200 OK"
}
```

## 빠른 재설정 작업에 대한 일반적인 오류 코드
<a name="manage-console-fast-reset-common-error-codes"></a>


| Neptune 오류 코드 | HTTP 상태 | 메시지 | 예제 | 
| --- | --- | --- | --- | 
| `InvalidParameterException` | 400 | 시스템 명령 파라미터 ‘*action*’이 지원되지 않는 값 ‘*XXX*’입니다. | 잘못된 파라미터 | 
| `InvalidParameterException` | 400 | 제공된 값이 너무 많음: *동작* | 'Content-type:Application/X-WWW-Form-Urlencoded' 헤더와 함께 두 개 이상의 액션이 전송된 빠른 재설정 요청 | 
| `InvalidParameterException` | 400 | '동작' 필드가 중복되었습니다. | 'Content-Type: application/json' 헤더와 함께 두 개 이상의 액션이 전송된 빠른 재설정 요청 | 
| `MethodNotAllowedException` | 400 | 잘못된 경로: /*bad\$1endpoint* | 요청이 잘못된 엔드포인트로 전송됨 | 
| `MissingParameterException` | 400 | 필요 파라미터 누락: [동작] | 빠른 재설정 요청에 필수 ‘동작’ 파라미터가 포함되어 있지 않음 | 
| `ReadOnlyViolationException` | 400 | 읽기 복제본 인스턴스에서는 쓰기가 허용되지 않음 | 리더 또는 상태 엔드포인트에 빠른 재설정 요청이 전송됨 | 
| `AccessDeniedException` | 403 | 인증 토큰 누락 | 빠른 재설정 요청이 올바른 서명 없이 IAM 인증이 활성화된 DB 엔드포인트로 전송됨 | 
| `ServerShutdownException` | 500 | 데이터베이스 재설정이 진행 중입니다. 클러스터를 사용할 수 있게 되면 쿼리를 다시 시도하세요. | 빠른 재설정이 시작되면 기존 쿼리와 들어오는 Gremlin/Sparql 쿼리가 실패합니다. | 

# DB 클러스터에 Neptune 리더 인스턴스 추가
<a name="manage-console-add-replicas"></a>

Neptune DB 클러스터에는 기본 DB 인스턴스 1개와 최대 15개의 Neptune 리더 인스턴스가 있습니다. 기본 DB 인스턴스는 읽기 및 쓰기 작업을 지원하고, 클러스터 볼륨에 대한 모든 데이터 수정을 수행합니다. Neptune 리더 인스턴스는 동일한 스토리지 볼륨에 기본 DB 인스턴스로 연결되며 읽기 작업만 지원합니다.

리더 인스턴스를 사용하여 기본 DB 인스턴스에서 읽기 워크로드를 오프로드합니다.

DB 클러스터의 가용성을 높이려면 여러 가용 영역에 걸쳐 DB 클러스터에 기본 인스턴스와 Neptune 리더를 분배하는 것이 좋습니다.

[다음 섹션](manage-console-create-replica.md)에서는 DB 클러스터에서 리더 인스턴스를 만드는 방법을 설명합니다.

# 콘솔을 사용하여 Neptune 리더 인스턴스 생성
<a name="manage-console-create-replica"></a>

Neptune DB 클러스터의 기본 인스턴스를 생성한 후 Neptune 콘솔을 사용하여 Neptune 리더 인스턴스를 더 추가할 수 있습니다.

**AWS Management Console을 사용하여 Neptune 리더 인스턴스를 만들려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home)에서 Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **Databases**(데이터베이스)를 선택합니다.

1. 리더 인스턴스를 만들려는 DB 클러스터를 선택합니다.

1. **작업**을 선택한 다음 **리더 추가**를 선택합니다.

1. **복제본 DB 인스턴스 생성** 페이지에서 Neptune 복제본에 대한 옵션을 지정합니다. 다음 표에서는 Neptune 읽기 전용 복제본에 대한 설정을 보여줍니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/manage-console-create-replica.html)

1. **읽기 복제본 생성**을 선택하여 Neptune 복제본 인스턴스를 생성합니다.

DB 클러스터에서 Neptune 리더 인스턴스를 제거하려면 [Amazon Neptune에서 DB 인스턴스 삭제](manage-console-instances-delete.md)의 지침을 따르세요.

# 콘솔을 사용하여 Neptune DB 클러스터 수정
<a name="manage-console-modify"></a>

를 사용하여 DB 인스턴스를 수정할 때 즉시 적용을 선택하여 변경 사항을 **즉시 적용**하도록 AWS Management Console선택할 수 있습니다. 변경 사항을 즉시 적용하도록 선택하면 새로운 변경 사항과 보류 중인 수정 사항 대기열에 있는 모든 변경 사항이 바로 적용됩니다.

변경 사항을 즉시 적용하지 않기로 선택하면 변경 사항이 보류 중 수정 사항 대기열로 보내집니다. 다음 유지 관리 기간에 대기열에 있는 보류 중 변경 사항이 적용됩니다.

**중요**  
보류 중인 수정 작업으로 인해 가동 중지가 필요한 경우 즉시 적용을 선택하면 해당 DB 인스턴스에서 예기치 못한 가동 중지가 발생할 수 있습니다. DB 클러스터의 다른 DB 인스턴스에서는 가동 중지가 발생하지 않습니다.

**참고**  
Neptune에서 DB 클러스터를 수정할 때 **즉시 적용** 설정만 **DB 클러스터 식별자**, **IAM DB 인증**의 변경 사항에 영향을 줍니다. 다른 모든 수정 사항은 **즉시 적용** 설정의 값에 상관없이 즉시 적용됩니다.

**콘솔을 사용하여 DB 클러스터를 수정하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **클러스터**를 선택한 다음 수정할 DB 클러스터를 선택합니다.

1. **작업**을 선택한 다음 **클러스터 수정**을 선택합니다. **DB 클러스터 수정** 페이지가 나타납니다.

1. 원하는 설정을 모두 변경합니다.
**참고**  
 콘솔에는 현재 DB 인스턴스에만 적용되는 인스턴스 수준 변경 사항과 전체 DB 클러스터에 적용되는 인스턴스 수준 변경 사항이 있습니다. 콘솔의 인스턴스 레벨에서 전체 DB 클러스터를 수정하는 설정을 변경하려면 [DB 클러스터에서 DB 인스턴스 수정](#manage-console-modify-instance)의 지침을 따르세요.

1. 원하는 대로 모두 변경했으면 **계속**을 선택하고 요약을 확인합니다.

1. 변경 사항을 즉시 적용하려면 **즉시 적용**을 선택합니다.

1. 확인 페이지에서 변경 내용을 검토합니다. 변경 내용이 올바른 경우 **클러스터 수정**을 선택하여 변경 내용을 저장합니다.

   변경 사항을 편집하려면 **뒤로**를 선택하고, 변경 사항을 취소하려면 **취소**를 선택합니다.

## DB 클러스터에서 DB 인스턴스 수정
<a name="manage-console-modify-instance"></a>

**콘솔을 사용하여 DB 클러스터에서 DB 인스턴스를 수정하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택한 다음 수정할 DB 인스턴스를 선택합니다.

1. **인스턴스 작업**을 선택하고 **수정**을 선택합니다. **DB 인스턴스 수정** 페이지가 나타납니다.

1. 원하는 설정을 모두 변경합니다.
**참고**  
일부 설정은 전체 DB 클러스터에 적용되며, 클러스터 수준에서 변경이 필요합니다. 이러한 설정을 변경하려면 [콘솔을 사용하여 Neptune DB 클러스터 수정](#manage-console-modify)의 지침을 따르세요.  
 에서 AWS Management Console일부 인스턴스 수준 변경 사항은 현재 DB 인스턴스에만 적용되는 반면, 다른 변경 사항은 전체 DB 클러스터에 적용됩니다.

1. 원하는 대로 모두 변경했으면 **계속**을 선택하고 요약을 확인합니다.

1. 변경 사항을 즉시 적용하려면 **즉시 적용**을 선택합니다.

1. 확인 페이지에서 변경 내용을 검토합니다. 변경 내용이 정확할 경우 **DB 인스턴스 수정**을 선택하여 변경 내용을 저장합니다.

   변경 사항을 편집하려면 **뒤로**를 선택하고, 변경 사항을 취소하려면 **취소**를 선택합니다.

# Amazon Neptune의 성능 및 규모 조정
<a name="manage-console-performance-scaling"></a>

세 가지 수준의 Neptune DB 클러스터 및 인스턴스 조정
+ [스토리지 규모 조정](#manage-console-performance-scaling-storage)
+ [인스턴스 규모 조정](#manage-console-performance-scaling-instances)
+ [읽기 규모 조정](#manage-console-performance-scaling-reads)

## Neptune의 스토리지 스케일 인
<a name="manage-console-performance-scaling-storage"></a>

Neptune 스토리지는 클러스터 볼륨에 저장된 데이터에 따라 자동 조정됩니다. 데이터 증가에 따라 클러스터 볼륨 스토리지는 64TiB로 제한되는 중국 및 GovCloud를 제외한 모든 지원 리전에서 최대 128TiB까지 확장됩니다.

클러스터 볼륨 크기는 1시간 단위로 확인하여 스토리지 비용을 측정할 수 있습니다.

Neptune 데이터베이스가 사용한 스토리지는 월별 GB 단위의 증분 방식으로 청구되며 사용한 I/O는 백만 요청 건 단위의 증분 방식으로 청구됩니다. Npetune 데이터베이스에 사용된 스토리지와 I/O에 대해서만 지불하면 되고 미리 프로비저닝할 필요가 없습니다.

요금에 대한 자세한 내용은 [Neptune 제품 페이지](https://aws.amazon.com/neptune/pricing)를 참조하세요.

## Neptune의 인스턴스 스케일링 인
<a name="manage-console-performance-scaling-instances"></a>

필요에 따라 DB 클러스터의 DB 인스턴스마다 DB 인스턴스 클래스를 수정하여 Neptune DB 클러스터의 크기를 조정할 수 있습니다. Neptune은 여러 최적화 DB 인스턴스 클래스를 지원합니다.

## Neptune의 읽기 스케일링 인
<a name="manage-console-performance-scaling-reads"></a>

DB 클러스터에서 Neptune 복제본을 최대 15개까지 생성하여 Neptune DB 클러스터에 대한 읽기 조정을 수행할 수 있습니다. 각 Neptune 복제본은 복제본 지연 시간을 최소화하여 클러스터 볼륨에서 동일한 데이터를 반환합니다. 일반적으로 이 지연 시간은 기본 인스턴스가 업데이트를 적용한 후 100밀리초 미만입니다. 읽기 트래픽이 증가하면 Neptune 복제본을 추가 생성하여 직접 연결함으로써 DB 클러스터의 읽기 부하를 분산시키는 것도 가능합니다. Neptune 복제본의 DB 인스턴스 클래스가 기본 인스턴스의 DB 인스턴스 클래스와 같을 필요는 없습니다.

DB 클러스터에 Neptune 복제본을 추가하는 방법에 대한 자세한 내용은 [리더 인스턴스 추가](manage-console-create-replica.md) 단원을 참조하세요.

# Amazon Neptune DB 클러스터의 복제본 수 Auto Scaling
<a name="manage-console-autoscaling"></a>

Neptune Auto Scaling을 사용하여 DB 클러스터의 Neptune 복제본 수를 연결 및 워크로드 요구 사항에 맞게 자동으로 조정할 수 있습니다. Auto Scaling을 통해 Neptune DB 클러스터는 워크로드 증가를 처리할 수 있으며, 워크로드가 감소하면 Auto Scaling은 불필요한 복제본을 제거하므로 사용하지 않은 용량에 대해 비용을 지불하지 않아도 됩니다.

Auto Scaling은 이미 기본 라이터 인스턴스와 하나 이상의 읽기 복제본 인스턴스가 있는 Neptune DB 클러스터에서만 사용할 수 있습니다([Amazon Neptune DB 클러스터 및 인스턴스](feature-overview-db-clusters.md) 참조). 또한 클러스터의 모든 읽기 복제본 인스턴스는 사용 가능한 상태여야 합니다. 읽기 복제본이 사용 가능하지 않은 상태인 경우 Neptune Auto Scaling은 클러스터의 모든 읽기 전용 복제본을 사용할 수 있을 때까지 아무 작업도 수행하지 않습니다.

새 클러스터를 생성해야 하는 경우 [Neptune 클러스터 생성](get-started-create-cluster.md) 섹션을 참조하세요.

AWS CLI 사용을 통해 [규모 조정 정책](#manage-console-autoscaling-define-policy)을 정의하고 DB 클러스터에 적용합니다. AWS CLI 사용을 통해 Auto Scaling 정책을 편집하거나 삭제할 수도 있습니다. 이 정책은 다음과 같은 Auto Scaling 파라미터를 지정합니다.
+ 클러스터에 보유할 최소 및 최대 복제본 수입니다.
+ 복제본 추가 조정 활동 간 `ScaleOutCooldown` 간격과 복제본 삭제 조정 활동 간 `ScaleInCooldown` 간격입니다.
+ CloudWatch 지표와 측정치는 규모 확장 또는 축소를 위한 트리거 값입니다.

Neptune Auto Scaling 동작의 빈도는 다음과 같은 여러 가지 방법으로 줄어듭니다.
+ 처음에는 리더 추가 또는 삭제를 위한 Auto Scaling을 위해 `CPUUtilization` 하이 알람이 최소 3분 동안 위반되거나 로우 알람이 최소 15분 동안 위반되어야 합니다.
+ 첫 번째 추가 또는 삭제 이후 Neptune Auto Scaling 작업의 빈도는 자동 크기 조정 정책의 `ScaleOutCooldown` 및 `ScaleInCooldown` 설정에 의해 제한됩니다.

사용 중인 CloudWatch 지표가 정책에 지정된 높은 임곗값에 도달하고 마지막 Auto Scaling 작업 이후 `ScaleOutCooldown` 간격이 경과한 경우, 그리고 설정한 최대 복제본 수가 DB 클러스터에 아직 없는 경우, Neptune Auto Scaling은 DB 클러스터의 기본 인스턴스와 동일한 인스턴스 유형을 사용하여 새 복제본을 생성합니다.

마찬가지로 지표가 지정한 하한 임곗값에 도달하고 마지막 Auto Scaling 작업 이후 `ScaleInCooldown` 간격이 경과한 경우, 그리고 DB 클러스터에 지정된 최소 복제본 수보다 많은 경우 Neptune Auto Scaling은 복제본 중 하나를 삭제합니다.

**참고**  
Neptune Auto Scaling은 자체에서 생성한 복제본만 제거합니다. 기존 복제본은 제거되지 않습니다.

[neptune\$1autoscaling\$1config](parameters.md#parameters-db-cluster-parameters-neptune_autoscaling_config) DB 클러스터 파라미터를 사용하여 Neptune Auto Scaling이 생성하는 새 읽기 전용 복제본의 인스턴스 유형, 해당 읽기 전용 복제본의 유지 관리 기간, 각 새 읽기 전용 복제본에 연결할 태그를 지정할 수도 있습니다. 다음과 같이 이러한 구성 설정을 JSON 문자열에 `neptune_autoscaling_config` 파라미터 값으로 입력합니다.

```
"{
  \"tags\": [
    { \"key\" : \"reader tag-0 key\", \"value\" : \"reader tag-0 value\" },
    { \"key\" : \"reader tag-1 key\", \"value\" : \"reader tag-1 value\" },
  ],
  \"maintenanceWindow\" : \"wed:12:03-wed:12:33\",
  \"dbInstanceClass\" : \"db.r5.xlarge\"
}"
```

참고로 JSON 문자열의 따옴표는 모두 백슬래시 문자(`\`)로 이스케이프 처리해야 합니다. 평소와 같이 문자열의 모든 공백은 선택 사항입니다.

`neptune_autoscaling_config` 파라미터에 지정되지 않은 세 가지 구성 설정은 모두 DB 클러스터의 기본 라이터 인스턴스 구성에서 복사됩니다.

[Auto Scaling](https://docs.aws.amazon.com/autoscaling/plans/userguide/)은 새 읽기 복제본 인스턴스를 추가할 때 DB 인스턴스 ID 앞에 `autoscaled-reader`(예: `autoscaled-reader-7r7t7z3lbd-20210828`)를 접두사로 붙입니다. 또한 `autoscaled-reader` 키와 `TRUE` 값을 사용하여 생성하는 모든 읽기 복제본에 태그를 추가합니다. AWS Management Console에서 DB 인스턴스 세부 정보 페이지의 **태그** 탭에서 확인할 수 있습니다.

```
 "key" : "autoscaled-reader",  "value" : "TRUE"
```

Auto Scaling으로 생성되는 모든 읽기 복제본 인스턴스의 승격 등급은 기본적으로 `15`이며, 가장 낮은 우선 순위입니다. 즉 장애 조치가 이루어지는 동안 수동으로 생성된 것과 같이 우선순위가 더 높은 복제본이 먼저 승격됩니다. [Neptune DB 클러스터의 내결함성](backup-restore-overview-fault-tolerance.md)을(를) 참조하세요.

Neptune Auto Scaling은 Neptune [`CPUUtilization`](cw-metrics.md#cw-metrics-available) CloudWatch 지표를 사전 정의된 지표로 사용하는 [대상 추적 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)과 함께 Application Auto Scaling을 사용하여 구현됩니다.

## Neptune Serverless DB 클러스터에서 Auto Scaling 사용
<a name="autoscaling-with-serverless"></a>

Neptune Serverless는 수요가 인스턴스의 용량을 초과할 때 Neptune Auto Scaling보다 훨씬 빠르게 반응하며 다른 인스턴스를 추가하는 대신 인스턴스를 확장합니다. 비교적 안정적인 워크로드 증가 또는 감소에 맞춰 Auto Scaling이 설계된 반면, 서버리스는 급격한 수요 급증과 불안감을 처리하는 데 탁월합니다.

이들의 강점을 이해하면 Auto Scaling과 서버리스를 결합하여 워크로드의 변화를 효율적으로 처리하고 비용을 최소화하면서 수요를 충족하는 유연한 인프라를 구축할 수 있습니다.

Auto Scaling이 서버리스와 함께 효과적으로 작동하도록 하려면 [서버리스 클러스터의 `maxNCU`](neptune-serverless-capacity-scaling.md#neptune-serverless-capacity-range-max) 설정을 수요 급증과 짧은 수요 변화를 수용할 수 있을 만큼 충분히 높게 구성하는 것이 중요합니다. 그러지 않으면 일시적인 변경으로 인해 서버리스 스케일링이 트리거되지 않아 Auto Scaling으로 인해 불필요한 추가 인스턴스가 많이 생성될 수 있습니다. `maxNCU`를 충분히 높게 설정하면 서버리스 스케일링으로 이러한 변경 사항을 더 빠르고 저렴하게 처리할 수 있습니다.

## Amazon Neptune의 Auto Scaling 활성화 방법
<a name="manage-console-autoscaling-enable"></a>

Auto Scaling은 AWS CLI를 사용하는 Neptune DB 클러스터에서만 활성화할 수 있습니다. AWS Management Console을 사용하여 Auto Scaling을 활성화할 수 없습니다.

또한 다음 Amazon 리전에는 Auto Scaling이 지원되지 않습니다.
+ 아프리카(케이프타운): `af-south-1`
+ 중동(UAE): `me-central-1`
+ AWSGovCloud(미국 동부): `us-gov-east-1`
+ AWSGovCloud(미국 서부): `us-gov-west-1`

Neptune DB 클러스터의 Auto Scaling을 활성화하려면 다음 세 단계를 수행해야 합니다.

### 1. Application Auto Scaling을 통해 DB 클러스터 등록
<a name="manage-console-autoscaling-register"></a>

Neptune DB 클러스터의 자동 크기 조정을 활성화하는 첫 번째 단계는 AWS CLI 또는 Application Auto Scaling SDK 중 하나를 사용하여 클러스터를 Application Auto Scaling에 등록하는 것입니다. 클러스터에는 기본 인스턴스 하나와 읽기 복제본 인스턴스가 하나 이상 있어야 합니다.

예를 들어, 1\$18개의 추가 복제본으로 자동 확장할 클러스터를 등록하려면 다음과 같이 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 명령을 사용할 수 있습니다.

```
aws application-autoscaling register-scalable-target \
  --service-namespace neptune \
  --resource-id cluster:(your DB cluster name) \
  --scalable-dimension neptune:cluster:ReadReplicaCount \
  --min-capacity 1 \
  --max-capacity 8
```

이는 [https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_RegisterScalableTarget.html](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_RegisterScalableTarget.html) Application Auto Scaling API 작업을 사용하는 것과 같습니다.

AWS CLI `register-scalable-target` 명령은 다음 파라미터를 사용합니다.
+ **`service-namespace`** – `neptune`으로 설정합니다.

  이 파라미터는 Application Auto Scaling API의 `ServiceNamespace` 파라미터와 동일합니다.
+ **`resource-id`** - Neptune DB 클러스터의 리소스 식별자로 설정합니다. 리소스 유형은 `cluster`이며, 그 뒤에 콜론('`:`'), DB 클러스터의 이름이 차례로 나옵니다.

  이 파라미터는 Application Auto Scaling API의 `ResourceID` 파라미터와 동일합니다.
+ **`scalable-dimension`** - 이 경우 확장 가능한 차원은 DB 클러스터의 복제본 인스턴스 수이므로 이 파라미터를 `neptune:cluster:ReadReplicaCount`로 설정합니다.

  이 파라미터는 Application Auto Scaling API의 `ScalableDimension` 파라미터와 동일합니다.
+ **`min-capacity`** – Application Auto Scaling에서 관리하는 최소 리더 DB 인스턴스 수 이 값은 0\$115로 설정되어야 하며 `max-capacity`의 최대 Neptune 복제본 수에 대해 지정된 값과 같거나 작아야 합니다. Auto Scaling이 작동하려면 DB 클러스터에 리더가 한 개 이상 있어야 합니다.

  이 파라미터는 Application Auto Scaling API의 `MinCapacity` 파라미터와 동일합니다.
+ **`max-capacity`** - Application Auto Scaling에서 관리하는 기존 인스턴스 및 새 인스턴스를 포함하여 DB 클러스터에 있는 최소 리더 DB 복제본 인스턴스 수입니다. 이 값은 0\$115로 설정되어야 하며 `min-capacity`의 최소 Neptune 복제본 수에 대해 지정된 값과 같거나 커야 합니다.

  `max-capacity` AWS CLI 파라미터는 Application Auto Scaling API의 `MaxCapacity` 파라미터와 동일합니다.

DB 클러스터를 등록하면 Application Auto Scaling에서 `AWSServiceRoleForApplicationAutoScaling_NeptuneCluster` 서비스 연결 역할을 생성합니다. 자세한 정보는 Application Auto Scaling 사용 설명서의 [Application Auto Scaling 서비스 연결 역할](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html)을 참조하세요.**

### 2. DB 클러스터에 사용할 Auto Scaling 정책을 정의합니다.
<a name="manage-console-autoscaling-define-policy"></a>

대상 추적 조정 정책은 텍스트 파일에도 저장할 수 있는 JSON 텍스트 객체로 정의됩니다. Neptune의 경우 이 정책은 현재 Neptune [`CPUUtilization`](cw-metrics.md#cw-metrics-available)CloudWatch 지표를 이름이 `NeptuneReaderAverageCPUUtilization`으로 지정된 사전 정의된 지표로만 사용할 수 있습니다. 

다음은 스케일링 정책에 대한 대상 추적 구성의 예제입니다.

```
{
  "PredefinedMetricSpecification": { "PredefinedMetricType": "NeptuneReaderAverageCPUUtilization" },
  "TargetValue": 60.0,
  "ScaleOutCooldown" : 600,
  "ScaleInCooldown" : 600
}
```

이 **`TargetValue`** 요소에는 자동 스케일 아웃(즉, 더 많은 복제본 추가) 과 그 이하로 스케일 인(즉, 복제본 삭제) CPU 사용률이 포함됩니다.**** 이 경우 스케일링을 트리거하는 목표 비율은 `60.0`%입니다.

**`ScaleInCooldown`** 요소는 한 스케일 인 활동을 완료한 후 다른 스케일 인 활동을 시작하기 전까지의 시간(초)을 지정합니다. 기본값은 300초입니다. 여기서 값 600은 하나의 복제본 삭제가 완료되고 다른 복제본이 시작되는 시점까지 최소 10분이 경과해야 함을 나타냅니다.

**`ScaleOutCooldown`** 요소는 한 스케일 아웃 활동을 완료한 후 다른 스케일 아웃 활동을 시작하기 전까지의 시간(초)을 지정합니다. 기본값은 300초입니다. 여기서 값 600은 하나의 복제본 추가가 완료되고 다른 복제본이 시작되는 시점까지 최소 10분이 경과해야 함을 지정합니다.

**`DisableScaleIn`** 요소는 Boolean 요소로 존재하고 `true` 설정된 경우 스케일 인을 완전히 비활성화합니다. 즉, Auto Scaling은 복제본을 추가할 수는 있지만 제거하지는 않습니다. 기본적으로 스케일 인은 활성화되어 있으며 활성화되어 있으며 `DisableScaleIn`은 `false`입니다.

### 
<a name="manage-console-autoscaling-apply-policy"></a>

Application Auto Scaling으로 Neptune DB 클러스터를 등록하고 규모 조정 정책을 삭제한 후 등록된 Neptune DB 클러스터에 규모 조정 정책을 적용합니다. 이를 위해서는 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) 명령을 다음 파라미터와 함께 사용하면 됩니다.

```
aws application-autoscaling put-scaling-policy \
  --policy-name (name of the scaling policy) \
  --policy-type TargetTrackingScaling \
  --resource-id cluster:(name of your Neptune DB cluster) \
  --service-namespace neptune \
  --scalable-dimension neptune:cluster:ReadReplicaCount \
  --target-tracking-scaling-policy-configuration file://(path to the JSON configuration file)
```

Auto Scaling 정책을 적용하면 DB 클러스터에서 자동 크기 조정이 활성화됩니다.

AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) 명령을 사용하여 기존 Auto Scaling 정책을 업데이트할 수도 있습니다.

Application Auto Scaling API 참조의 [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)를 참조하세요.**

## Neptune DB 클러스터에서 Auto Scaling 제거
<a name="manage-console-autoscaling-delete"></a>

Neptune DB 클러스터에서Auto Scaling을 제거하려면 AWS CLI [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html) 및 [deregister-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/deregister-scalable-target.html) 명령을 사용합니다.

# Amazon Neptune DB 클러스터 유지 관리
<a name="cluster-maintenance"></a>

Neptune은 다음을 포함하여 사용하는 모든 리소스에 대해 정기적으로 유지 관리를 수행합니다.
+ **필요에 따라 기본 하드웨어 교체.** 이는 사용자가 별도의 조치를 취할 필요 없이 백그라운드에서 수행되며 일반적으로 사용자 작업에 영향을 미치지 않습니다.
+ **기본 운영 체제 업데이트.** DB 클러스터 인스턴스의 운영 체제 업그레이드는 성능과 보안을 개선하기 위한 것이므로 일반적으로 가능한 한 빨리 완료해야 합니다. 일반적으로 업데이트에는 10분 정도 걸립니다. 운영 체제 업데이트는 DB 인스턴스의 DB 엔진 버전이나 DB 인스턴스 클래스를 변경하지 않습니다.

  일반적으로 DB 클러스터의 리더 인스턴스를 먼저 업데이트한 다음 라이터 인스턴스를 업데이트하는 것이 좋습니다. 장애 조치 시 리더와 라이터를 동시에 업데이트하면 다운타임이 발생할 수 있습니다. DB 인스턴스는 운영 체제 업데이트 전에 자동으로 백업되지 않으므로 운영 체제 업데이트를 적용하기 전에 반드시 수동 백업을 수행해야 합니다.
+ **Neptune 데이터베이스 엔진 업데이트.** Neptune에서는 새로운 기능과 개선 사항을 도입하고 버그를 수정하기 위해 정기적으로 다양한 엔진 업데이트가 릴리스됩니다.

## 엔진 버전 번호
<a name="engine-version-numbers"></a>

### 엔진 릴리스 1.3.0.0 이전의 버전 번호 지정
<a name="older-engine-numbers"></a>

2019년 11월 이전에는 Neptune이 한 번에 하나의 엔진 버전만 지원했으며, 엔진 버전 번호는 모두 `1.0.1.0.200<xxx>` 형식을 사용했습니다. 여기서 `xxx`는 패치 번호였습니다. 새 엔진 버전은 모두 이전 버전에 대한 패치로 릴리스되었습니다.

2019년 11월부터 Neptune은 여러 버전을 지원하므로 고객이 업그레이드 경로를 보다 효과적으로 제어할 수 있습니다. 결과적으로 엔진 릴리스 번호 매기기가 변경되었습니다.

2019년 11월부터 [엔진 릴리스 1.3.0.0](engine-releases-1.3.0.0.md)까지 엔진 버전 번호는 5개 부분으로 구성되어 있습니다. 버전 번호 `1.0.2.0.R2`를 예로 들면,
+ 첫 번째 부분은 항상 1이었습니다.
+ 두 번째 부분인(`1.0.2.0.R2`의 `0`)은 데이터베이스 메이저 버전 번호였습니다.
+ 세 번째와 네 번째 부분(`1.0.2.0.R2`의 `2.0`)은 모두 마이너 버전 번호였습니다.
+ 다섯 번째 부분(`1.0.2.0.R2`의 `R2`)은 패치 번호였습니다.

대부분의 업데이트는 패치 업데이트였으며 패치와 마이너 버전 업데이트의 구분이 항상 명확하지는 않았습니다.

### 엔진 릴리스 1.3.0.0 이후의 버전 번호 지정
<a name="current-engine-numbers"></a>

[엔진 릴리스 1.3.0.0](engine-releases-1.3.0.0.md)부터 Neptune에서 엔진 업데이트에 번호를 지정하고 관리하는 방식이 변경되었습니다.

엔진 버전 번호는 이제 다음과 같이 네 부분으로 구분되며, 각 부분은 릴리스 유형에 해당합니다.

    *product-version***.***major-version***.***minor-version***.***patch-version*

이전에 패치로 릴리스되었던 종류의 비 주요 변경 사항이 이제는 [`AutoMinorVersionUpgrade`](engine-maintenance-management.md#using-amvu) 인스턴스 설정을 사용하여 관리할 수 있는 마이너 버전으로 릴리스됩니다.

즉, 원하는 경우 [`RDS-EVENT-0156`](event-lists.md#RDS-EVENT-0156) 이벤트를 구독하면 새 마이너 버전이 릴리스될 때마다 알림을 받을 수 있습니다([Neptune이벤트 알림 구독](events-subscribing.md) 참조).

패치 릴리스는 이제 긴급 특정 수정을 위해 제공되며 버전 번호의 마지막 부분(`*.*.*.1`, `*.*.*.2` 등)을 사용하여 번호가 지정됩니다.

# Amazon Neptune의 다양한 엔진 릴리스 유형
<a name="release-types"></a>

엔진 버전 번호의 네 부분에 해당하는 네 가지 유형의 엔진 릴리스는 다음과 같습니다.
+ **제품 버전**   –   이는 제품의 기능이나 인터페이스가 전면적이고 근본적인 변화를 겪는 경우에만 변경됩니다. 현재 Neptune 제품 버전은 1입니다.
+ [**메이저 버전**](#major-versions)   –   메이저 버전에는 중요한 새 기능과 주요 변경 사항이 도입되며, 일반적으로 유효 수명이 2년 이상입니다.
+ [**마이너 버전**](#minor-versions)   –   마이너 버전에는 새로운 기능, 개선 사항 및 버그 수정이 포함될 수 있지만 주요 변경 사항은 포함되지 않습니다. 다음 유지 관리 기간에 자동으로 적용할지 여부를 선택할 수 있으며, 버전이 릴리스될 때마다 알림을 받도록 선택할 수도 있습니다.
+ [**패치 버전**](#patch-version-updates)   –   패치 버전은 긴급한 버그 수정이나 중요한 보안 업데이트를 적용하기 위한 용도로만 릴리스됩니다. 주요 변경 사항은 거의 없으며 릴리스 후 다음 유지 관리 기간에 자동으로 적용됩니다.

## Amazon Neptune 메이저 버전 업데이트
<a name="major-versions"></a>

메이저 버전 업데이트에서는 일반적으로 하나 이상의 중요한 새 기능이 도입되며 종종 주요 변경 사항이 포함됩니다. 일반적으로 지원 수명은 약 2년입니다. Neptune 메이저 버전은 릴리스 날짜 및 예상 지원 종료일과 함께 [엔진 릴리스](engine-releases.md)에 나열되어 있습니다.

사용 중인 메이저 버전이 지원 종료될 때까지 메이저 버전 업데이트는 전적으로 선택 사항입니다. 새 메이저 버전으로 업그레이드하도록 선택한 경우에 설명된 대로 AWS CLI 또는 Neptune 콘솔을 사용하여 새 버전을 직접 설치해야 합니다[메이저 버전 업그레이드](engine-updates-manually.md).

하지만 사용 중인 메이저 버전이 지원 종료되면 최신 메이저 버전으로 업그레이드해야 한다는 알림이 표시됩니다. 이 경우 알림 후 유예 기간 내에 업그레이드하지 않으면 다음 유지 관리 기간에 최신 메이저 버전으로의 업그레이드가 자동으로 예약됩니다. 자세한 정보는 [엔진 버전 수명 기간](engine-updates-eol-planning.md)을 참조하세요.

## Amazon Neptune 마이너 버전 업데이트
<a name="minor-versions"></a>

대부분의 Neptune 엔진 업데이트는 마이너 버전 업데이트입니다. 자주 발생하며 주요 변경 사항은 포함되지 않습니다.

DB 클러스터의 라이터(기본) 인스턴스에서 [`AutoMinorVersionUpgrade`](engine-maintenance-management.md#using-amvu) 필드를 `true`로 설정한 경우, 마이너 버전 업데이트는 릴리스 후 다음 유지 관리 기간 동안 DB 클러스터의 모든 인스턴스에 자동으로 적용됩니다.

DB 클러스터의 라이터 인스턴스에서 [`AutoMinorVersionUpgrade`](engine-maintenance-management.md#using-amvu) 필드를 `false`로 설정한 경우 [명시적으로 설치](engine-updates-manually.md)하는 경우에만 업데이트가 적용됩니다.

**참고**  
마이너 버전 업데이트는 독립적이며(동일한 메이저 버전에 대한 이전 마이너 버전 업데이트에 종속되지 않음) 누적됩니다(이전 마이너 버전 업데이트에 도입된 모든 기능 및 수정 사항이 포함됨). 즉, 이전 버전을 설치했는지 여부에 관계없이 지정된 모든 마이너 버전 업데이트를 설치할 수 있습니다.

[`RDS-EVENT-0156`](event-lists.md#RDS-EVENT-0156) 이벤트를 구독하면 마이너 버전 릴리스를 쉽게 추적할 수 있습니다([Neptune 이벤트 알림 구독](events-subscribing.md) 참조). 그러면 새 마이너 버전이 릴리스될 때마다 알림을 받게 됩니다.

또한 알림 구독 여부에 관계없이 언제든지 [보류 중인 업데이트를 확인](engine-maintenance-management.md#check-pending-updates)할 수 있습니다.

## Amazon Neptune 패치 버전 업데이트
<a name="patch-version-updates"></a>

인스턴스 신로성에 영향을 미치는 보안 문제 또는 기타 심각한 결함이 있는 경우 Neptune에서 필수 패치가 배포됩니다. 패치는 사용자 개입 없이 다음 유지 관리 기간 동안 DB 클러스터의 모든 인스턴스에 적용됩니다.

패치 릴리스는 배포하지 않을 경우의 위험이 배포와 관련된 위험 및 다운타임보다 중대한 경우에만 배포됩니다. 패치 릴리스는 자주 발생하지 않으며(수개월에 한 번 정도) 적용하는 데 유지 관리 기간의 일부만 필요합니다.

# Amazon Neptune 메이저 엔진 버전 수명 기간 계획
<a name="engine-updates-eol-planning"></a>

Neptune 엔진 버전은 거의 항상 분기 말에 수명이 다합니다. 예외는 중요한 보안 또는 가용성 문제가 생기는 경우에만 발생합니다.

엔진 버전의 수명이 다하면 Neptune 데이터베이스를 최신 버전으로 업그레이드해야 합니다.

일반적으로 Neptune 엔진 버전은 다음과 같이 계속 제공됩니다.
+ **마이너 엔진 버전:** 마이너 엔진 버전은 출시 후 최소 6개월 동안 계속 사용할 수 있습니다.
+ **메이저 엔진 버전:** 메이저 엔진 버전은 출시 후 최소 12개월 동안 계속 사용할 수 있습니다.

엔진 버전이 수명 종료되기 최소 3개월 전에 AWS 는 계정 AWS 과 연결된 이메일 주소로 자동 이메일 알림을 보내고 동일한 메시지를 [AWS Health Dashboard](https://docs.aws.amazon.com/health/latest/ug/aws-health-dashboard-status.html)에 게시합니다. 이로 인해 업그레이드를 계획하고 준비할 시간을 확보할 수 있습니다.

엔진 버전의 수명이 다하면 더 이상 해당 버전을 사용하여 새 클러스터나 인스턴스를 만들 수 없으며, 자동 크기 조정도 해당 버전을 사용하여 인스턴스를 생성할 수 없습니다.

실제로 수명이 다한 엔진 버전은 유지 관리 기간 동안 자동으로 업그레이드됩니다. 엔진 버전 사용 종료 3개월 전에 전송되는 메시지에는 자동으로 업그레이드될 버전, DB 클러스터에 미치는 영향, 권장 조치 등 자동 업데이트와 관련된 세부 정보가 포함됩니다.

**중요**  
데이터베이스 엔진 버전을 최신으로 유지하는 것은 사용자의 책임입니다. AWS 에서는 최신 보안, 개인 정보 보호, 가용성 보호 기능의 혜택을 누릴 수 있도록 모든 고객에게 데이터베이스를 최신 엔진 버전으로 업그레이드하기를 촉구합니다. 사용 중단일이 지난 지원되지 않는 엔진 또는 소프트웨어('레거시 엔진')에서 데이터베이스를 운영하는 경우 가동 중단을 비롯한 보안, 개인 정보 보호 및 운영 위험에 직면할 가능성이 커집니다.  
엔진에서 데이터베이스를 운영하려면 AWS 서비스 사용에 적용되는 계약이 적용됩니다. 레거시 엔진은 일반적으로 사용할 수 없습니다. 레거시 엔진 AWS 에 대한 지원을 더 이상 제공하지 AWS 않으며, 레거시 엔진이 서비스, AWS그 계열사 또는 제3자에게 보안 또는 책임 위험 또는 손해 위험을 초래한다고 AWS 판단되는 경우 언제든지 레거시 엔진에 대한 액세스 또는 사용에 제한을 둘 수 있습니다. 레거시 엔진에서 콘텐츠를 계속 실행하기로 결정하면 콘텐츠를 사용할 수 없거나 복구할 수 없게 되거나 콘텐츠가 손상될 수 있습니다. 레거시 엔진에서 실행되는 데이터베이스에는 서비스 수준에 관한 계약(SLA) 예외가 적용됩니다.  
레거시 엔진에서 실행되는 데이터베이스 및 관련 소프트웨어에는 버그, 오류, 결함 및/또는 유해한 구성 요소가 포함되어 있습니다. 따라서 계약 또는 서비스 조건에 상반되는 내용이 있더라도 AWS 는 레거시 엔진을 "있는 그대로" 제공합니다.

# Neptune DB 클러스터의 엔진 업데이트 관리
<a name="engine-maintenance-management"></a>

**참고**  
업데이트는 DB 클러스터의 모든 인스턴스에 동시에 적용됩니다. 업데이트하려면 해당 인스턴스에서 데이터베이스를 다시 시작해야 하므로 가동 중지가 20초나 30초에서 수분까지 발생할 수 있으며, 이후 DB 클러스터 사용을 재개할 수 있습니다. 인스턴스에 대한 유지 관리 업데이트를 완료하려면 다중 AZ 장애 조치가 필요한 경우가 드물게 있을 수 있습니다.  
적용 시간이 더 오래 걸릴 수 있는 메이저 버전 업그레이드의 경우 [블루/그린 배포 전략](neptune-BG-deployments.md)을 사용하여 다운타임을 최소화할 수 있습니다.

## 현재 사용 중인 엔진 버전 확인
<a name="check-current-engine-version"></a>

명령을 사용하여 DB 클러스터에서 AWS CLI [`get-engine-status`](access-graph-status.md) 현재 사용 중인 엔진 릴리스 버전을 확인할 수 있습니다.

```
aws neptunedata get-engine-status
```

[JSON 출력](access-graph-status.md#access-graph-status-sample-output)에는 다음과 같은 `"dbEngineVersion"` 필드가 포함됩니다.

```
  "dbEngineVersion": "1.3.0.0",
```

## 어떤 업데이트가 보류 중이고 사용 가능한지 확인합니다.
<a name="check-pending-updates"></a>

Neptune 콘솔을 사용하여 DB 클러스터에 대한 보류 중인 업데이트를 확인할 수 있습니다. 왼쪽 열에서 **데이터베이스**를 선택한 다음 데이터베이스 창에서 DB 클러스터를 선택합니다. 보류 중인 업데이트가 **유지 관리** 열에 나열됩니다. **작업**을 선택한 다음 **유지 관리**를 선택하면 수행할 작업에 대한 세 가지 옵션이 표시됩니다.
+ 지금 업그레이드.
+ 다음 기간에 업그레이드.
+ 업그레이드 연기.

다음과 AWS CLI 같이를 사용하여 보류 중인 엔진 업데이트를 나열할 수 있습니다.

```
aws neptune describe-pending-maintenance-actions \
  --resource-identifier (ARN of your DB cluster)
  --region (your region) \
  --engine neptune
```

다음과 AWS CLI 같이를 사용하여 사용 가능한 엔진 업데이트를 나열할 수도 있습니다.

```
aws neptune describe-db-engine-versions \
  --region (your region) \
  --engine neptune
```

사용 가능한 엔진 릴리스 목록에는 버전 번호가 현재 버전 번호보다 높고 업그레이드 경로가 지정되어 있는 릴리스만 포함됩니다.

## 업그레이드하기 전에 항상 테스트 수행
<a name="always-test-before-upgrading"></a>

새로운 메이저 또는 마이너 Neptune 엔진 버전이 출시되면 업그레이드하기 전에 해당 버전에서 항상 Neptune 애플리케이션을 먼저 테스트하세요. 마이너 업그레이드에서는 주요 변경 사항이 없더라도 코드에 영향을 줄 수 있는 새로운 기능이나 동작이 도입될 수 있습니다.

먼저 현재 버전의 릴리스 노트 페이지를 대상 버전의 릴리스 노트 페이지와 비교하여 쿼리 언어 버전에 변경 사항이나 기타 주요 변경 사항이 있는지 확인합니다.

프로덕션 DB 클러스터를 업그레이드하기 전에 새 버전을 테스트하는 가장 좋은 방법은 [Neptune 블루/그린 배포 솔루션](neptune-BG-deployments.md)을 사용하는 것입니다. 이렇게 하면 프로덕션 DB 클러스터에 영향을 주지 않고 새 버전에서 애플리케이션과 쿼리를 실행할 수 있습니다.

## 업그레이드하기 전에 항상 수동 스냅샷 생성
<a name="engine-version-snapshot-before-upgrading"></a>

업그레이드하기 전에 항상 DB 클러스터의 수동 스냅샷을 생성하는 것이 좋습니다. 자동 스냅샷은 단기적인 보호만 제공하는 반면, 수동 스냅샷은 명시적으로 삭제하기 전까지는 계속 사용할 수 있습니다.

경우에 따라 Neptune은 업그레이드 프로세스의 일부로 수동 스냅샷을 생성하지만, 여기에 의존해서는 안 되며 항상 자체 수동 스냅샷을 만들어야 합니다.

DB 클러스터를 업그레이드 전 상태로 되돌릴 필요가 없다고 판단되면 직접 만든 수동 스냅샷과 Neptune이 생성한 수동 스냅샷(있는 경우)을 명시적으로 삭제할 수 있습니다. Neptune이 수동 스냅샷을 생성하는 경우 이름은 `preupgrade`로 시작하고 DB 클러스터 이름, 소스 엔진 버전, 대상 엔진 버전, 날짜가 차례로 뒤따릅니다.

## Nepture 유지 관리 기간
<a name="manage-console-maintaining-window"></a>

주간 유지 관리 기간은 30분이며, 이 기간 동안 예정된 엔진 업데이트 및 기타 시스템 변경 사항이 적용됩니다. 대부분의 유지 관리 이벤트가 30분의 기간 중에 완료됩니다. 단, 가끔 대규모 유지 관리 이벤트는 완료하는 데 더 오래 걸릴 수 있습니다.

각 DB 클러스터에는 메주 30분의 유지 관리 기간이 있습니다. DB 클러스터 생성 시 기본 시간을 지정하지 않으면 Neptune이 요일을 임의로 선택한 다음 리전에 따라 달라지는 8시간 기간에서 30분의 기간을 임의로 할당합니다.

예를 들어, 여러 AWS 리전에서 사용되는 유지 관리 기간의 8시간 기간은 다음과 같습니다.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/engine-maintenance-management.html)

유지 관리 기간에 따라 보류 중인 작업이 시작되는 시기가 결정되며 대부분의 유지 관리 작업은 기간 내에 완료되지만 대규모 유지 관리 작업은 기간 종료 시간 이후에도 계속될 수 있습니다.

### DB 클러스터 유지 관리 기간 변경
<a name="manage-console-maintaining-adjusting-window"></a>

클러스터의 사용량이 가장 적은 시기로 유지 관리 기간을 맞추는 것이 가장 좋습니다. 현재 기간이 그렇지 않은 경우 다음과 같이 더 좋은 시기로 변경할 수 있습니다.

**DB 클러스터 유지 관리 기간을 변경하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. 유지 관리 기간을 변경하려는 DB 클러스터를 선택합니다.

1. **수정**을 선택합니다.

1. **클러스터 수정** 페이지 하단에서 **더 보기**를 선택합니다.

1. **기본 유지 관리 기간** 섹션에서 유지 관리 기간의 날짜, 시간 및 기간을 원하는 대로 설정합니다.

1. **다음**을 선택합니다.

   확인 페이지에서 변경 내용을 검토합니다.

1. 유지 관리 기간에 변경 사항을 즉시 적용하려면 **즉시 적용**을 선택합니다.

1.  **제출**을 선택하여 변경 사항을 저장합니다.

   변경 사항을 편집하려면 **이전**을 선택하고, 변경 사항을 취소하려면 **취소**를 선택합니다.

## AutoMinorVersionUpgrade를 사용하여 자동 마이너 버전 업데이트 제어
<a name="using-amvu"></a>

**중요**  
`AutoMinorVersionUpgrade`는 [엔진 릴리스 1.3.0.0](engine-releases-1.3.0.0.md) 이상의 마이너 버전 업그레이드에만 유효합니다.

DB 클러스터의 라이터(기본) 인스턴스에서 `AutoMinorVersionUpgrade` 필드를 `true`로 설정한 경우, 마이너 버전 업데이트는 릴리스 후 다음 유지 관리 기간 동안 DB 클러스터의 모든 인스턴스에 자동으로 적용됩니다.

DB 클러스터의 라이터 인스턴스에서 `AutoMinorVersionUpgrade` 필드를 `false`로 설정한 경우 [명시적으로 설치](engine-updates-manually.md#engine-minor-updates-using-console)하는 경우에만 업데이트가 적용됩니다.

**참고**  
패치 릴리스(`*.*.*.1`, `*.*.*.2` 등)는 `AutoMinorVersionUpgrade` 파라미터 설정 방식에 관계없이 다음 유지 관리 기간 동안 항상 자동으로 설치됩니다.

다음과 AWS Management Console 같이를 `AutoMinorVersionUpgrade` 사용하여를 설정할 수 있습니다.

**Neptune 콘솔을 사용하여 `AutoMinorVersionUpgrade`를 설정하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **Databases**(데이터베이스)를 선택합니다.

1. `AutoMinorVersionUpgrade`를 설정하려는 DB 클러스터의 기본(라이터) 인스턴스를 선택합니다.

1. **수정**을 선택합니다.

1. **클러스터 수정** 페이지 하단에서 **더 보기**를 선택합니다.

1. 확장된 페이지 하단에서 **마이너 버전 자동 업그레이드 켜기** 또는 **마이너 버전 자동 업그레이드 끄기**를 선택합니다.

1. **다음**을 선택합니다.

   확인 페이지에서 변경 내용을 검토합니다.

1. 자동 마이너 버전 업그레이드에 대한 변경 사항을 적용하려면 **즉시 적용**을 선택합니다.

1.  **제출**을 선택하여 변경 사항을 저장합니다.

   변경 사항을 편집하려면 **이전**을 선택하고, 변경 사항을 취소하려면 **취소**를 선택합니다.

 AWS CLI 를 사용하여 `AutoMinorVersionUpgrade` 필드를 설정할 수도 있습니다. 예를 들어 `true`로 설정하려면 다음과 같은 명령을 사용합니다.

```
1. aws neptune modify-db-instance \
2.   --db-instance-identifier (the ID of your cluster's writer instance) \
3.   --auto-minor-version-upgrade \
4.   --apply-immediately
```

마찬가지로 `false`로 설정하려면 다음과 같은 명령을 사용합니다.

```
1. aws neptune modify-db-instance \
2.   --db-instance-identifier (the ID of your cluster's writer instance) \
3.   --no-auto-minor-version-upgrade \
4.   --apply-immediately
```

# Neptune 엔진 업데이트 수동 설치
<a name="engine-updates-manually"></a>

## 메이저 버전 엔진 업그레이드 설치
<a name="engine-major-updates-manually"></a>

메이저 엔진 릴리스는 항상 수동으로만 설치해야 합니다. 다운타임을 최소화하고 테스트 및 검증에 충분한 시간을 확보하기 위해 새 메이저 버전을 설치하는 가장 좋은 방법은 일반적으로 [Neptune 블루/그린 배포 솔루션](neptune-BG-deployments.md)을 사용하는 것입니다.

경우에 따라 DB 클러스터를 생성한 CloudFormation 템플릿을 사용하여 메이저 버전 업그레이드를 설치할 수도 있습니다( 참조[CloudFormation 템플릿을 사용하여 Neptune DB 클러스터의 엔진 버전 업데이트](cfn-engine-update.md)).

메이저 버전 업데이트를 즉시 설치하려는 경우 다음과 같은 CLI 명령을 사용할 수 있습니다.

```
aws neptune modify-db-cluster \
  --db-cluster-identifier (identifier for your neptune cluster) \
  --engine neptune \
  --engine-version (the new engine version) \
  --apply-immediately
```

업그레이드하려는 엔진 버전을 지정해야 합니다. 그렇지 않으면 엔진이 최신 버전 또는 원하는 버전으로 업그레이드되지 않을 수 있습니다.

`--apply-immediately` 대신 `--no-apply-immediately`를 지정할 수 있습니다.

클러스터에서 사용자 지정 클러스터 파라미터 그룹을 사용하는 경우 이 파라미터를 사용하여 지정해야 합니다.

```
  --db-cluster-parameter-group-name (name of the custom DB cluster parameter group)
```

마찬가지로 클러스터의 인스턴스가 사용자 지정 DB 파라미터 그룹을 사용하는 경우 이 파라미터를 사용하여 지정해야 합니다.

```
  ---db-instance-parameter-group-name (name of the custom instance parameter group)
```

## 를 사용하여 마이너 버전 엔진 업그레이드 설치 AWS Management Console
<a name="engine-minor-updates-using-console"></a>

**Neptune 콘솔을 사용하여 마이너 버전 업그레이드를 수행하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 다음 수정하려는 DB 클러스터를 선택합니다.

1. **수정**을 선택합니다.

1. **인스턴스 사양**에서 업그레이드하려는 새 버전을 선택합니다.

1. **다음**을 선택합니다.

1. 변경 사항을 즉시 적용하려면 **즉시 적용**을 선택합니다.

1. **제출**을 선택하여 DB 클러스터를 업데이트합니다.

## 를 사용하여 마이너 버전 엔진 업그레이드 설치 AWS CLI
<a name="engine-updates-using-cli"></a>

다음과 같은 명령을 사용하여 다음 유지 관리 기간까지 기다리지 않고 마이너 버전 업그레이드를 수행할 수 있습니다.

```
aws neptune modify-db-cluster \
  --db-cluster-identifier (your-neptune-cluster) \
  --engine-version (new-engine-version) \
  --apply-immediately
```

를 사용하여 수동으로 업그레이드하는 경우 업그레이드하려는 엔진 버전을 포함해야 AWS CLI합니다. 그렇지 않으면 엔진이 최신 버전 또는 원하는 버전으로 업그레이드되지 않을 수 있습니다.

# 1.2.0.0 이전 버전에서 엔진 버전 1.2.0.0 이상으로 업그레이드
<a name="engine-updates-1200-changes"></a>

[엔진 릴리스 1.2.0.0](engine-releases-1.2.0.0.md)에는 이전 버전에서 업그레이드하는 것이 평소보다 더 복잡해질 수 있는 몇 가지 중요한 변경 사항이 도입되었습니다.
+ [엔진 릴리스 1.2.0.0](engine-releases-1.2.0.0.md)에서는 사용자 지정 파라미터 그룹과 사용자 지정 클러스터 파라미터 그룹을 위한 새로운 형식을 도입했습니다. 따라서 1.2.0.0 이전 엔진 버전에서 엔진 버전 1.2.0.0 이상으로 업그레이드하는 경우 파라미터 그룹 패밀리 `neptune1.2`를 사용하여 기존의 모든 사용자 지정 파라미터 그룹과 사용자 지정 클러스터 파라미터 그룹을 다시 생성해야 합니다. 이전 릴리스에서는 파라미터 그룹 패밀리 `neptune1`을 사용했으며, 이러한 파라미터 그룹은 릴리스 1.2.0.0 이상에서는 작동하지 않습니다. 자세한 정보는 [Amazon Neptune 파라미터 그룹](parameter-groups.md)을 참조하세요.
+ 엔진 릴리스 1.2.0.0에는 실행 취소 로그에 대한 새로운 형식이 도입되었습니다. 따라서 1.2.0.0 이전 버전에서 버전 1.2.0.0 이상으로 업그레이드하는 경우 [`UndoLogListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) 지표는 특정 임계값 미만이어야 합니다. 그렇지 않으면 패치가 롤백되어 실패합니다. 임계값은 인스턴스 유형을 기반으로 합니다. 기본 제한은 4xlarge 이상의 인스턴스의 경우 40k, 4xlarge 미만의 인스턴스의 경우 10k입니다. 업그레이드를 시도할 때가 제한을 `UndoLogListSize` 초과하면 패치 프로세스가 롤백되고 업그레이드가 취소되며 이유가 포함된 이벤트가 클러스터 이벤트 페이지에 표시됩니다. 이러한 제한은 운영상의 이유로 사전 경고 없이 변경될 수 있습니다.

  제거가 이루어지는 클러스터의 라이터 인스턴스를 업그레이드하여 제거 속도를 높일 수 있습니다. 업그레이드를 시도하기 전에 이렇게 하면 해당 임계값 `UndoLogListSize` 아래로 내려갈 수 있습니다. 라이터의 크기를 24XL 인스턴스 유형으로 늘리면 제거 속도가 시간당 백만 개 이상으로 증가할 수 있습니다.

  `UndoLogListSize` CloudWatch 지표가 매우 큰 경우 지원 사례를 열면 필요한 한도 미만으로 낮추기 위한 추가 전략을 탐색하는 데 도움이 될 수 있습니다.
+ 마지막으로, 릴리스 1.2.0.0에는 IAM 인증과 함께 Bolt 프로토콜을 사용하던 이전 코드에 영향을 미치는 주요 변경 사항이 적용되었습니다. 릴리스 1.2.0.0부터 Bolt는 IAM 서명을 위한 리소스 경로가 필요합니다. Java에서 리소스 경로를 설정하면 `request.setResourcePath("/openCypher"));`처럼 보일 수 있습니다. 다른 언어에서는 엔드포인트 URI에 `/openCypher`를 추가할 수 있습니다. [Bolt 프로토콜 사용](access-graph-opencypher-bolt.md)의 예제를 참조하세요.

# CloudFormation 템플릿을 사용하여 Neptune DB 클러스터의 엔진 버전 업데이트
<a name="cfn-engine-update"></a>

Neptune DB 클러스터를 생성하는 데 사용한 Neptune CloudFormation 템플릿을 재사용하여 엔진 버전을 업데이트할 수 있습니다.

Neptune 엔진 버전 업그레이드는 마이너 또는 메이저 버전일 수 있습니다. CloudFormation 템플릿을 사용하면 종종 중요한 변경 사항이 포함된 메이저 버전 업그레이드에 도움이 될 수 있습니다. 메이저 버전 업그레이드에는 기존 애플리케이션과 호환되지 않는 데이터베이스 변경 사항이 포함될 수 있으므로 업그레이드 시 애플리케이션 변경 사항이 필요할 수도 있습니다. [업그레이드 전에 항상 테스트](engine-maintenance-management.md#always-test-before-upgrading)하고, DB 클러스터의 수동 스냅샷을 만드는 것이 좋습니다.

각 메이저 버전마다 별도의 엔진 업그레이드를 수행해야 한다는 점에 유의하세요. 메이저 버전을 건너뛰고 다음 메이저 버전으로 바로 업그레이드할 수는 없습니다.

2023년 5월 17일 이전에 Neptune CloudFormation 스택을 사용하여 엔진 버전을 업그레이드한 경우 새 빈 DB 클러스터를 생성하기만 하면 됩니다. 그러나 2023년 5월 17일부터 Neptune CloudFormation 스택은 이제 기존 데이터를 보존하는 인플레이스 엔진 업그레이드를 지원합니다.

**참고**  
 를 사용하는 경우 사용 중인 AWS CDK 버전이 2.82.0 이상인지 AWS Cloud Development Kit (AWS CDK)확인합니다. 2.82.0 이전 버전은 현재 위치 Neptune 엔진 업그레이드를 지원하지 않습니다.

메이저 버전 업그레이드의 경우 템플릿의 `DBCluster`에서 다음 속성을 설정해야 합니다.
+ `DBClusterParameterGroup`(사용자 지정 또는 기본값)
+ `DBInstanceParameterGroupName`
+ `EngineVersion`

마찬가지로 DbCluster에 연결된 DB 인스턴스의 경우 다음을 설정해야 합니다.
+ `DBParameterGroup`(사용자 지정 또는 기본값)

기본값이든 사용자 지정이든 상관없이 모든 파라미터 그룹이 템플릿에 정의되어 있는지 확인하세요.

커스텀 파라미터 그룹의 경우 기존 커스텀 파라미터 그룹의 제품군이 새 엔진 버전과 호환되는지 확인하세요. [1.2.0.0](engine-releases-1.2.0.0.md) 이전의 엔진 버전에서는 파라미터 그룹 제품군 `neptune1`이 사용된 반면, 1.2.0.0 이후의 엔진 릴리스에는 파라미터 그룹 제품군 `neptune1.2`가 필요합니다. 자세한 정보는 [Amazon Neptune 파라미터 그룹](parameter-groups.md)을 참조하세요.

메이저 엔진 버전 업그레이드의 경우 `DBCluster` `DBInstanceParameterGroupName` 필드에 적절한 제품군을 사용하여 파라미터 그룹을 지정하세요.

기본 파라미터 그룹은 새 엔진 버전과 호환되는 그룹으로 업그레이드해야 합니다.

참고로 Neptune은 엔진 업그레이드 후 DB 인스턴스를 자동으로 재부팅합니다.

**Topics**
+ [예: 1.2.0.1에서 1.2.0.2로 마이너 엔진 업그레이드](cfn-engine-update-1201-1202.md)
+ [예: 기본 파라미터 그룹을 사용하여 1.1.1.0에서 1.2.0.2로 메이저 버전 업그레이드](cfn-engine-update-1110-1202-default.md)
+ [예: 사용자 지정 파라미터 그룹을 사용하여 1.1.1.0에서 1.2.0.2로 메이저 버전 업그레이드](cfn-engine-update-1110-1202-custom.md)
+ [예: 기본 및 사용자 지정 파라미터 그룹을 혼합하여 1.1.1.0에서 1.2.0.2로 메이저 버전 업그레이드](cfn-engine-update-1110-1202-mixed.md)

# 예: 1.2.0.1에서 1.2.0.2로 마이너 엔진 업그레이드
<a name="cfn-engine-update-1201-1202"></a>

업그레이드하려는 DB 클러스터와 이를 생성할 때 사용한 템플릿을 찾습니다. 예제:

```
Description: Base Template to create Neptune Stack with Engine Version 1.2.0.1 using custom Parameter Groups
Parameters:
  DbInstanceType:
    Description: Neptune DB instance type
    Type: String
    Default: db.r5.large
Resources:
  NeptuneDBClusterParameterGroup:
    Type: 'AWS::Neptune::DBClusterParameterGroup'
    Properties:
      Family: neptune1.2
      Description: test-cfn-neptune-db-cluster-parameter-group-description
      Parameters:
        neptune_enable_audit_log: 0
  NeptuneDBParameterGroup:
    Type: 'AWS::Neptune::DBParameterGroup'
    Properties:
      Family: neptune1.2
      Description: test-cfn-neptune-db-parameter-group-description
      Parameters:
        neptune_query_timeout: 20000
  NeptuneDBCluster:
    Type: 'AWS::Neptune::DBCluster'
    Properties:
      EngineVersion: 1.2.0.1
      DBClusterParameterGroupName:
        Ref: NeptuneDBClusterParameterGroup
    DependsOn:
      - NeptuneDBClusterParameterGroup
  NeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
      DBParameterGroupName:
        Ref: NeptuneDBParameterGroup
    DependsOn:
      - NeptuneDBCluster
      - NeptuneDBParameterGroup
Outputs:
  DBClusterId:
    Description: Neptune Cluster Identifier
    Value:
      Ref: NeptuneDBCluster
```

`EngineVersion` 속성을 `1.2.0.1`에서 `1.2.0.2`로 업데이트하세요.

```
Description: Template to upgrade minor engine version to 1.2.0.2
Parameters:
  DbInstanceType:
    Description: Neptune DB instance type
    Type: String
    Default: db.r5.large
Resources:
  NeptuneDBClusterParameterGroup:
    Type: 'AWS::Neptune::DBClusterParameterGroup'
    Properties:
      Family: neptune1.2
      Description: test-cfn-neptune-db-cluster-parameter-group-description
      Parameters:
        neptune_enable_audit_log: 0
  NeptuneDBParameterGroup:
    Type: 'AWS::Neptune::DBParameterGroup'
    Properties:
      Family: neptune1.2
      Description: test-cfn-neptune-db-parameter-group-description
      Parameters:
        neptune_query_timeout: 20000
  NeptuneDBCluster:
    Type: 'AWS::Neptune::DBCluster'
    Properties:
      EngineVersion: 1.2.0.2
      DBClusterParameterGroupName:
        Ref: NeptuneDBClusterParameterGroup
    DependsOn:
      - NeptuneDBClusterParameterGroup
  NeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
      DBParameterGroupName:
        Ref: NeptuneDBParameterGroup
    DependsOn:
      - NeptuneDBCluster
      - NeptuneDBParameterGroup
Outputs:
  DBClusterId:
    Description: Neptune Cluster Identifier
    Value:
      Ref: NeptuneDBCluster
```

이제 CloudFormation 를 사용하여 수정된 템플릿을 실행합니다.

# 예: 기본 파라미터 그룹을 사용하여 1.1.1.0에서 1.2.0.2로 메이저 버전 업그레이드
<a name="cfn-engine-update-1110-1202-default"></a>

업그레이드하려는 `DBCluster`와 이를 생성할 때 사용한 템플릿을 찾습니다. 예제:

```
Description: Base Template to create Neptune Stack with Engine Version 1.1.1.0 using default Parameter Groups
Parameters:
  DbInstanceType:
    Description: Neptune DB instance type
    Type: String
    Default: db.r5.large
Resources:
  NeptuneDBCluster:
    Type: 'AWS::Neptune::DBCluster'
    Properties:
      EngineVersion: 1.1.1.0
  NeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
    DependsOn:
      - NeptuneDBCluster
Outputs:
  DBClusterId:
    Description: Neptune Cluster Identifier
    Value:
      Ref: NeptuneDBCluster
```
+ `DBClusterParameterGroup` 기본값을 새 엔진 버전에서 사용하는 파라미터 그룹 제품군의 것으로 업데이트하세요(여기서는 `default.neptune1.2`).
+ `DBCluster`에 첨부된 각 `DBInstance` 항목에 대해 `DBParameterGroup` 기본값을 새 엔진 버전에서 사용하는 제품군의 기본값으로 업데이트하세요(여기서는 `default.neptune1.2`).
+ `DBInstanceParameterGroupName` 속성을 해당 제품군의 기본 파라미터 그룹(여기서는 `default.neptune1.2`)으로 설정합니다.
+ `EngineVersion` 속성을 `1.1.0.0`에서 `1.2.0.2`로 업데이트하세요.

템플릿은 다음과 같아야 합니다.

```
Description: Template to upgrade major engine version to 1.2.0.2 by using upgraded default parameter groups
Parameters:
  DbInstanceType:
    Description: Neptune DB instance type
    Type: String
    Default: db.r5.large
Resources:
  NeptuneDBCluster:
    Type: 'AWS::Neptune::DBCluster'
    Properties:
      EngineVersion: 1.2.0.2
      DBClusterParameterGroupName: default.neptune1.2
      DBInstanceParameterGroupName: default.neptune1.2
  NeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
      DBParameterGroupName: default.neptune1.2
    DependsOn:
      - NeptuneDBCluster
Outputs:
  DBClusterId:
    Description: Neptune Cluster Identifier
    Value:
```

이제 CloudFormation 를 사용하여 수정된 템플릿을 실행합니다.

# 예: 사용자 지정 파라미터 그룹을 사용하여 1.1.1.0에서 1.2.0.2로 메이저 버전 업그레이드
<a name="cfn-engine-update-1110-1202-custom"></a>

업그레이드하려는 `DBCluster`와 이를 생성할 때 사용한 템플릿을 찾습니다. 예제:

```
Description: Base Template to create Neptune Stack with Engine Version 1.1.1.0 using custom Parameter Groups 
Parameters:
  DbInstanceType:
    Description: Neptune DB instance type
    Type: String
    Default: db.r5.large
Resources:
  NeptuneDBClusterParameterGroup:
    Type: 'AWS::Neptune::DBClusterParameterGroup'
    Properties:
      Name: engineupgradetestcpg
      Family: neptune1
      Description: 'NeptuneDBClusterParameterGroup with family neptune1'
      Parameters:
        neptune_enable_audit_log: 0
  NeptuneDBParameterGroup:
    Type: 'AWS::Neptune::DBParameterGroup'
    Properties:
      Name: engineupgradetestpg
      Family: neptune1
      Description: 'NeptuneDBParameterGroup1 with family neptune1'
      Parameters:
        neptune_query_timeout: 20000
  NeptuneDBCluster:
    Type: 'AWS::Neptune::DBCluster'
    Properties:
      EngineVersion: 1.1.1.0
      DBClusterParameterGroupName:
        Ref: NeptuneDBClusterParameterGroup
    DependsOn:
      - NeptuneDBClusterParameterGroup
  NeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
      DBParameterGroupName:
        Ref: NeptuneDBParameterGroup
    DependsOn:
      - NeptuneDBCluster
      - NeptuneDBParameterGroup
Outputs:
  DBClusterId:
    Description: Neptune Cluster Identifier
    Value:
      Ref: NeptuneDBCluster
```
+ 사용자 지정 `DBClusterParameterGroup` 제품군을 새 엔진 버전에서 사용하는 제품군으로 업데이트하세요(여기서는 `default.neptune1.2`).
+ `DBCluster`에 연결된 각 `DBInstance`에 대해 사용자 지정 `DBParameterGroup` 제품군을 새 엔진 버전에서 사용하는 제품군으로 업데이트하세요(여기서는 `default.neptune1.2`).
+ `DBInstanceParameterGroupName` 속성을 해당 제품군의 파라미터 그룹(여기서는 `default.neptune1.2`)으로 설정합니다.
+ `EngineVersion` 속성을 `1.1.0.0`에서 `1.2.0.2`로 업데이트하세요.

템플릿은 다음과 같아야 합니다.

```
Description: Template to upgrade major engine version to 1.2.0.2 by modifying existing custom parameter groups
Parameters:
  DbInstanceType:
    Description: Neptune DB instance type
    Type: String
    Default: db.r5.large
Resources:
  NeptuneDBClusterParameterGroup:
    Type: 'AWS::Neptune::DBClusterParameterGroup'
    Properties:
      Name: engineupgradetestcpgnew
      Family: neptune1.2
      Description: 'NeptuneDBClusterParameterGroup with family neptune1.2'
      Parameters:
        neptune_enable_audit_log: 0
  NeptuneDBParameterGroup:
    Type: 'AWS::Neptune::DBParameterGroup'
    Properties:
      Name: engineupgradetestpgnew
      Family: neptune1.2
      Description: 'NeptuneDBParameterGroup1 with family neptune1.2'
      Parameters:
        neptune_query_timeout: 20000
  NeptuneDBCluster:
    Type: 'AWS::Neptune::DBCluster'
    Properties:
      EngineVersion: 1.2.0.2
      DBClusterParameterGroupName:
        Ref: NeptuneDBClusterParameterGroup
      DBInstanceParameterGroupName:
        Ref: NeptuneDBParameterGroup
    DependsOn:
      - NeptuneDBClusterParameterGroup
  NeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
      DBParameterGroupName:
        Ref: NeptuneDBParameterGroup
    DependsOn:
      - NeptuneDBCluster
      - NeptuneDBParameterGroup
Outputs:
  DBClusterId:
    Description: Neptune Cluster Identifier
    Value:
      Ref: NeptuneDBCluster
```

이제 CloudFormation 를 사용하여 수정된 템플릿을 실행합니다.

# 예: 기본 및 사용자 지정 파라미터 그룹을 혼합하여 1.1.1.0에서 1.2.0.2로 메이저 버전 업그레이드
<a name="cfn-engine-update-1110-1202-mixed"></a>

업그레이드하려는 `DBCluster`와 이를 생성할 때 사용한 템플릿을 찾습니다. 예제:

```
Description: Base Template to create Neptune Stack with Engine Version 1.1.1.0 using custom Parameter Groups 
Parameters:
  DbInstanceType:
    Description: Neptune DB instance type
    Type: String
    Default: db.r5.large
Resources:
  NeptuneDBClusterParameterGroup:
    Type: 'AWS::Neptune::DBClusterParameterGroup'
    Properties:
      Family: neptune1
      Description: 'NeptuneDBClusterParameterGroup with family neptune1'
      Parameters:
        neptune_enable_audit_log: 0
  NeptuneDBParameterGroup:
    Type: 'AWS::Neptune::DBParameterGroup'
    Properties:
      Family: neptune1
      Description: 'NeptuneDBParameterGroup with family neptune1'
      Parameters:
        neptune_query_timeout: 20000
  NeptuneDBCluster:
    Type: 'AWS::Neptune::DBCluster'
    Properties:
      EngineVersion: 1.1.1.0
      DBClusterParameterGroupName:
        Ref: NeptuneDBClusterParameterGroup
    DependsOn:
      - NeptuneDBClusterParameterGroup
  CustomNeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
      DBParameterGroupName:
        Ref: NeptuneDBParameterGroup
    DependsOn:
      - NeptuneDBCluster
      - NeptuneDBParameterGroup
  DefaultNeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
    DependsOn:
      - NeptuneDBCluster
Outputs:
  DBClusterId:
    Description: Neptune Cluster Identifier
    Value:
      Ref: NeptuneDBCluster
```
+ 사용자 지정 클러스터 파라미터 그룹의 경우 `DBClusterParameterGroup` 제품군을 새 엔진 버전에 해당하는 그룹, 즉 `neptune1.2` 제품군으로 업데이트하세요.
+ 기본 클러스터 파라미터 그룹의 경우 `DBClusterParameterGroup`을 새 엔진 버전에 해당하는 기본값, 즉 `default.neptune1.2`로 업데이트하세요. 
+ `DBCluster`에 연결된 각 `DBInstance`에 대해 기본 `DBParameterGroup`을 새 엔진 버전에서 사용하는 제품군 (여기서는 `default.neptune1.2`)으로 업데이트하고 사용자 정의 파라미터 그룹을 새 엔진 버전에서 지원하는 제품군을 사용하는 그룹(여기서는 `neptune1.2`)으로 업데이트합니다. 
+ `DBInstanceParameterGroupName` 속성을 새 엔진 버전에서 지원하는 제품군의 파라미터 그룹으로 설정합니다.

템플릿은 다음과 같아야 합니다.

```
Description: Template to update Neptune Stack to Engine Version 1.2.0.1 using custom and default Parameter Groups 
Parameters:
  DbInstanceType:
    Description: Neptune DB instance type
    Type: String
    Default: db.r5.large
Resources:
  NeptuneDBClusterParameterGroup:
    Type: 'AWS::Neptune::DBClusterParameterGroup'
    Properties:
      Family: neptune1.2
      Description: 'NeptuneDBClusterParameterGroup with family neptune1.2'
      Parameters:
        neptune_enable_audit_log: 0
  NeptuneDBParameterGroup:
    Type: 'AWS::Neptune::DBParameterGroup'
    Properties:
      Family: neptune1.2
      Description: 'NeptuneDBParameterGroup1 with family neptune1.2'
      Parameters:
        neptune_query_timeout: 20000
  NeptuneDBCluster:
    Type: 'AWS::Neptune::DBCluster'
    Properties:
      EngineVersion: 1.2.0.2
      DBClusterParameterGroupName:
        Ref: NeptuneDBClusterParameterGroup
      DBInstanceParameterGroupName: default.neptune1.2
    DependsOn:
      - NeptuneDBClusterParameterGroup
  CustomNeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
      DBParameterGroupName:
        Ref: NeptuneDBParameterGroup
    DependsOn:
      - NeptuneDBCluster
      - NeptuneDBParameterGroup
  DefaultNeptuneDBInstance:
    Type: 'AWS::Neptune::DBInstance'
    Properties:
      DBClusterIdentifier:
        Ref: NeptuneDBCluster
      DBInstanceClass:
        Ref: DbInstanceType
      DBParameterGroupName: default.neptune1.2
    DependsOn:
      - NeptuneDBCluster
Outputs:
  DBClusterId:
    Description: Neptune Cluster Identifier
    Value:
      Ref: NeptuneDBCluster
```

이제 CloudFormation 를 사용하여 수정된 템플릿을 실행합니다.

# Neptune의 데이터베이스 복제본 생성
<a name="manage-console-cloning"></a>

DB 복제본 생성을 사용하면 Amazon Neptune의 모든 데이터베이스를 빠르고 비용 효과적으로 복제할 수 있습니다. 복제본 데이터베이스는 최초 생성 시 최소한의 추가 공간만 필요합니다. 데이터베이스 복제본 생성 작업은 *기록 중 복사(Copy-on-Write) 프로토콜*을 사용합니다. 데이터는 데이터가 변경될 때 소스 데이터베이스 또는 복제본 데이터베이스에 복사됩니다. 동일한 DB 클러스터에서 여러 복제본을 생성할 수 있습니다. 다른 복제본에서 추가 복제본을 생성할 수도 있습니다. Neptune 스토리지와 관련하여 기록 중 복사 프로토콜을 사용하는 방법에 대한 자세한 내용은 [기록 중 복사(Copy-on-Write) 프로토콜](#manage-console-cloning-protocol) 단원을 참조하세요.

다양한 사용 사례에서 특히 다음과 같이 프로덕션 환경에 영향을 미치기를 원치 않을 경우 DB 복제본 생성 작업을 사용할 수 있습니다.
+ 스키마 변경 사항 또는 파라미터 그룹 변경 사항 등 변경 사항의 영향을 실험 및 평가하는 경우
+ 데이터 내보내기 또는 분석 쿼리 실행과 같은 워크로드 집약적 작업을 수행하는 경우
+ 비프로덕션 환경에서 개발 또는 테스트용으로 프로덕션 DB 클러스터의 복제본을 생성하는 경우

**AWS Management Console를 사용하여 DB 클러스터 복제를 생성하려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home)에서 Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택합니다. 복제본을 생성할 DB 클러스터의 기본 인스턴스를 선택합니다.

1. **인스턴스 작업**을 선택한 후 **복제본 생성**을 선택합니다.

1. **복제본 생성** 페이지에서 복제본 DB 클러스터의 기본 인스턴스 이름을 **DB 인스턴스 식별자**로 입력합니다.

   필요에 따라 복제본 DB 클러스터에 다른 설정을 구성합니다. 다양한 DB 클러스터 설정에 대한 자세한 정보는 [콘솔을 사용하여 시작](manage-console-launch-console.md) 단원을 참조하세요.

1. **복제본 생성**을 선택해 복제본 DB 클러스터를 시작합니다.

**AWS CLI를 사용하여 DB 클러스터 복제를 생성하려면**
+ [restore-db-cluster-to-point-in-time](api-snapshots.md#RestoreDBClusterToPointInTime) AWS CLI 명령을 호출하고 다음 값을 입력합니다.
  + `--source-db-cluster-identifier` – 복제를 생성할 소스 DB 클러스터의 이름입니다.
  + `--db-cluster-identifier` – 복제 DB 클러스터의 이름입니다.
  + `--restore-type copy-on-write` - 복제본 DB 클러스터를 생성해야 함을 나타내는 `copy-on-write` 값입니다.
  + `--use-latest-restorable-time` – 최근 복원이 가능한 백업 시간을 사용하도록 지정합니다.
**참고**  
[restore-db-cluster-to-point-in-time](api-snapshots.md#RestoreDBClusterToPointInTime) AWS CLI 명령은 해당 DB 클러스터의 DB 인스턴스가 아닌 DB 클러스터만 복제합니다.

  다음 Linux/UNIX 예제에서는 `source-db-cluster-id` DB 클러스터에서 복제본을 생성하고 해당 클론의 이름을 `db-clone-cluster-id`로 명명합니다.

  ```
  aws neptune restore-db-cluster-to-point-in-time \
    --region us-east-1 \
    --source-db-cluster-identifier source-db-cluster-id \
    --db-cluster-identifier db-clone-cluster-id \
    --restore-type copy-on-write \
    --use-latest-restorable-time
  ```

  `\` 라인 끝 이스케이프 문자가 이에 상당하는 Windows `^`로 바뀌면 Windows에서도 똑같은 예제가 적용됩니다.

  ```
  aws neptune restore-db-cluster-to-point-in-time ^
    --region us-east-1 ^
    --source-db-cluster-identifier source-db-cluster-id ^
    --db-cluster-identifier db-clone-cluster-id ^
    --restore-type copy-on-write ^
    --use-latest-restorable-time
  ```

## 제한 사항
<a name="manage-console-cloning-limitations"></a>

Neptune의 DB 복제 작업에는 다음과 같은 제한이 있습니다.
+ AWS 리전 간에 복제본 데이터베이스를 생성할 수 없습니다. 복제본 데이터베이스는 소스 데이터베이스와 동일한 리전에 생성해야 합니다.
+ 복제된 데이터베이스는 항상 복제된 데이터베이스에서 사용 중인 Neptune 엔진 버전의 최신 패치를 사용합니다. 소스 데이터베이스가 해당 패치 버전으로 아직 업그레이드되지 않은 경우에도 마찬가지입니다. 그러나 엔진 버전 자체는 변경되지 않습니다.
+ 현재 다른 복제본 기반의 복제본을 포함해 Neptune DB 클러스터 복사본 하나당 복제본 수는 15개로 제한됩니다. 이 한도에 도달한 후에는 데이터베이스를 복제하지 말고 다른 복사본을 만들어야 합니다. 그렇지만 복사본 하나가 최대 15개의 복제본으로 구성될 수 있습니다.
+ 교차 계정 DB 복제는 현재 지원하지 않습니다.
+ 복제본에 다양한 Virtual Private Cloud(VPC)를 제공할 수 있습니다. 하지만 이러한 VPC의 서브넷을 동일한 가용 영역 세트에 매핑해야 합니다.

## DB 복제를 위한 기록 중 복사 프로토콜
<a name="manage-console-cloning-protocol"></a>

다음 시나리오는 기록 중 복사 프로토콜의 작동 방식을 보여줍니다.
+ [복제 전 Neptune 데이터베이스](#manage-console-cloning-protocol-before)
+ [복제 후 Neptune 데이터베이스](#manage-console-cloning-protocol-after)
+ [소스 데이터베이스에 변경 사항이 발생하는 경우](#manage-console-cloning-protocol-source-write)
+ [복제본 데이터베이스에 변경 사항이 발생하는 경우](#manage-console-cloning-protocol-clone-write)

### 복제 전 Neptune 데이터베이스
<a name="manage-console-cloning-protocol-before"></a>

소스 데이터베이스에서 데이터가 페이지 단위로 저장됩니다. 다음 다이어그램에서 소스 데이터베이스에 4개 페이지가 있습니다.

![\[4페이지로 구성된 DB 복제 전 Neptune 소스 데이터베이스\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-clone-1.png)


### 복제 후 Neptune 데이터베이스
<a name="manage-console-cloning-protocol-after"></a>

다음 다이어그램에서 알 수 있듯이 DB 복제 후 소스 데이터베이스에는 변동이 없습니다. 소스 데이터베이스와 복제본 데이터베이스 모두 동일한 4개 페이지를 가리킵니다. 물리적으로 복사된 페이지가 없으므로 추가 스토리지도 필요하지 않습니다.

![\[DB 복제 후 동일한 페이지를 가리키는 Neptune 소스 데이터베이스 및 복제본 데이터베이스\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-clone-2.png)


### 소스 데이터베이스에 변경 사항이 발생하는 경우
<a name="manage-console-cloning-protocol-source-write"></a>

다음 예제에서 소스 데이터베이스가 `Page 1`에서 데이터를 변경합니다. 원래의 `Page 1`에 기록하는 대신, 추가 스토리지를 사용하여 `Page 1'`이라는 새 페이지가 생성됩니다. 이제 소스 데이터베이스가 새로운 `Page 1'` 이외에 `Page 2`, `Page 3`, `Page 4`도 가리킵니다. 복제본 데이터베이스는 계속해서 `Page 1`\$1`Page 4`를 가리킵니다.

![\[소스 데이터베이스에 변경 발생 후 Neptune 소스 데이터베이스 및 복제본 데이터베이스\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-clone-3.png)


### 복제본 데이터베이스에 변경 사항이 발생하는 경우
<a name="manage-console-cloning-protocol-clone-write"></a>

다음 다이어그램에서 복제본 데이터베이스도 변경되었습니다. 이번에는 `Page 4`입니다. 원래 `Page 4`에 기록하는 대신, 추가 스토리지를 사용하여 `Page 4'`이라는 새 페이지가 생성됩니다. 소스 데이터베이스는 `Page 1'`과 `Page 2`\$1`Page 4`를 계속 가리키지만, 복제본 데이터베이스는 이제 `Page 1`\$1`Page 3`과 `Page 4'`도 가리킵니다.

![\[복제본 데이터베이스에 변경 발생 후 Neptune 소스 데이터베이스 및 복제본 데이터베이스\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-clone-4.png)


두 번째 시나리오에서 예시한 대로, DB 복제 이후 복제본 생성 지점에 추가 스토리지가 필요하지 않습니다. 하지만 세 번째 및 네 번째 시나리오와 같이 소스 데이터베이스 및 복제본 데이터베이스가 변경될 경우 변경된 페이지만 생성됩니다. 시간이 경과하여 소스 데이터베이스와 복제본 데이터베이스 모두가 변경될 경우 변경 사항을 캡처하고 저장하기 위해 점점 더 많은 스토리지가 필요합니다.

## 소스 데이터베이스 삭제
<a name="manage-console-cloning-source-deleting"></a>

소스 데이터베이스를 삭제해도 연관된 복제본 데이터베이스에는 영향을 주지 않습니다. 복제본 데이터베이스는 이전에 소스 데이터베이스가 소유하던 페이지를 계속 가리킵니다.

# Amazon Neptune 인스턴스 관리
<a name="manage-console-instances"></a>

다음 단원에는 인스턴스 수준의 작업에 대한 정보가 나와 있습니다.

**Topics**
+ [Neptune T3 버스트 가능 인스턴스 클래스](manage-console-instances-t3.md)
+ [Neptune DB 인스턴스 수정(및 즉시 적용)](manage-console-instances-modify.md)
+ [Neptune DB 인스턴스 이름 변경](manage-console-instances-rename.md)
+ [Amazon Neptune에서 DB 인스턴스 재부팅](manage-console-instances-reboot.md)
+ [Amazon Neptune에서 DB 인스턴스 삭제](manage-console-instances-delete.md)

# Neptune T3 버스트 가능 인스턴스 클래스
<a name="manage-console-instances-t3"></a>

Amazon Neptune은 `R5` 및 `R6`와 같은 고정 성능 인스턴스 클래스 외에도, 버스트 가능 성능 `T3` 인스턴스를 사용하는 옵션을 제공합니다. 그래프 애플리케이션을 개발하는 동안 데이터베이스가 빠르고 응답성이 뛰어나기를 원하지만 항상 사용할 필요는 없습니다. Neptune의 `db.t3.medium` 인스턴스 클래스는 가장 저렴한 고정 성능 인스턴스 클래스보다 훨씬 저렴한 비용으로 이러한 상황에서 사용해야 하는 바로 그 클래스입니다.

버스트 가능 인스턴스는 워크로드에 더 많은 성능이 필요할 때까지 기본 수준의 CPU 성능에서 실행된 다음, 워크로드에 필요한 기간 동안 기본 수준 이상으로 버스트됩니다. 평균 CPU 사용률이 24시간 동안 기준선을 초과하지 않으면 버스트에 시간당 요금이 적용됩니다. 따라서 대부분의 개발 및 테스트 상황에서 저렴한 비용으로 좋은 성능을 얻을 수 있습니다.

`T3` 인스턴스 클래스로 시작하는 경우 AWS Management Console, AWS CLI, 또는 AWS SDK 중 하나를 사용하여 프로덕션 환경에 들어갈 준비가 되면 나중에 고정 성능 인스턴스 클래스로 쉽게 전환할 수 있습니다.

## T3 버스팅을 CPU 크레딧으로 관리
<a name="manage-console-instances-t3-cpu-credits"></a>

CPU 크레딧은 1분 동안 가상 CPU 코어(vCPU)의 전체 사용률을 나타냅니다. 이 수치는 2분 동안 vCPU의 50% 사용률 또는 2분 동안 vCPU 2개의 25% 사용률 등으로 변환할 수 있습니다.

`T3` 인스턴스는 유휴 상태일 때 CPU 크레딧을 적립하고 활성 상태일 때 이 크레딧을 사용합니다. 두 크레딧은 모두 밀리초 분해도로 측정됩니다. `db.t3.medium` 인스턴스 클래스에는 2개의 vCPU가 있으며, 각 vCPU는 유휴 상태일 때 시간당 12 CPU 크레딧을 적립합니다. 다시 말해서, 각 vCPU의 20% 사용률에서 CPU 크레딧 잔고는 0이 됩니다. 적립한 12 CPU 크레딧은 vCPU의 20% 사용률로 소비됩니다(60분의 20% 도 12이기 때문). 따라서 20% 사용률은 양수 또는 음수 CPU 크레딧 잔고를 생성하지 않는 기준선 사용률입니다.**

유휴 시간(CPU 사용률이 총 가용 사용률의 20% 미만)일 때는 `db.t3.medium` 인스턴스 클래스의 한도인 576(24시간 동안 적립할 수 있는 최대 CPU 크레딧 수, 즉 2x12x24)까지 CPU 크레딧이 크레딧 잔고 버킷에 저장됩니다. 이 한도를 초과하면 CPU 크레딧은 바로 폐기됩니다.

필요한 경우 CPU 크레딧 잔고가 0 이하로 떨어진 후에도 워크로드에 필요한 기간 동안 CPU 사용률을 최대 100%로 버스트할 수 있습니다. 인스턴스가 24시간 동안 계속해서 마이너스 잔고를 유지하면 해당 기간 동안 적립된 CPU 크레딧에 대해 -60마다 0.05 USD의 추가 요금이 발생합니다. 하지만 대부분의 개발 및 테스트 워크로드의 경우, 일반적으로 버스트에 대한 요금은 버스트 전후의 유휴 시간에 적립된 크레딧으로 해결됩니다.

**참고**  
Neptune의 `T3` 인스턴스 클래스는 Amazon EC2 [무제한 모드](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode.html)와 같이 구성됩니다.

## AWS Management Console을 사용하여 T3 버스트 가능 인스턴스 생성
<a name="manage-console-instances-t3-console"></a>

AWS Management Console에서는 `db.t3.medium` 인스턴스 클래스를 사용하는 기본 DB 클러스터 인스턴스 또는 읽기 전용 복제본 인스턴스를 생성하거나, `db.t3.medium` 인스턴스 클래스를 사용하도록 기존 인스턴스를 수정할 수 있습니다.

예를 들어, Neptune 콘솔에서 새 DB 클러스터 기본 인스턴스를 생성하려면 다음과 같이 하세요.
+ **데이터베이스 생성**을 선택합니다.
+ **DB 엔진 버전**과 같거나 `1.0.2.2` 이후 버전을 선택하세요.
+ **목적**에서 **개발 및 테스트**를 선택합니다.
+ **DB 인스턴스 클래스**에는 기본값인 `db.t3.medium — 2 vCPU, 4 GiB RAM`을 수락합니다.

## AWS CLI를 사용하여 T3 버스트 가능 인스턴스 생성
<a name="manage-console-instances-t3-CLI"></a>

AWS CLI를 사용하여 동일한 작업을 수행할 수도 있습니다.

```
aws neptune create-db-cluster \
    --db-cluster-identifier (name for a new DB cluster) \
    --engine neptune \
    --engine-version "1.0.2.2"
    
aws neptune create-db-instance \
    --db-cluster-identifier (name of the new DB cluster) \
    --db-instance-identifier (name for the primary writer instance in the cluster) \
    --engine neptune \
    --db-instance-class db.t3.medium
```

# Neptune DB 인스턴스 수정(및 즉시 적용)
<a name="manage-console-instances-modify"></a>

대부분의 변경 사항을 Amazon Neptune DB 인스턴스에 즉시 적용하거나 다음 유지 관리 기간까지 연기할 수 있습니다. 파라미터 그룹 변경 등의 수정 사항을 적용하려면 DB 인스턴스를 수동으로 재부팅해야 합니다.

**중요**  
수정 사항을 적용하려면 Neptune에서 DB 인스턴스를 재부팅해야 하므로 DB 인스턴스가 잠시 중단될 수도 있습니다. DB 인스턴스 설정을 수정하기 전에 데이터베이스 및 애플리케이션에 미치는 영향을 확인하세요.

## 공통 설정 및 가동 중지 영향
<a name="manage-console-instances-modify-settings"></a>

다음 표에는 변경할 수 있는 설정, 변경 사항을 적용할 수 있는 시점, 변경 사항으로 인한 DB 인스턴스 가동 중지 여부에 대한 자세한 내용이 나와 있습니다.


****  

| DB 인스턴스 설정 | 가동 중지 참고 사항 | 
| --- | --- | 
|  **DB 인스턴스 클래스**   |  변경 사항이 즉시 적용되거나 다음 유지 관리 기간에 적용됩니다.  | 
|  **DB 인스턴스 식별자**   |  변경 사항이 즉시 적용되든 다음 유지 관리 기간에 적용되든 관계없이 DB 인스턴스가 재부팅되고 중단이 발생합니다.  | 
|  **서브넷 그룹**   |  변경 사항이 즉시 적용되든 다음 유지 관리 기간에 적용되든 관계없이 DB 인스턴스가 재부팅되고 중단이 발생합니다.  | 
| **보안 그룹** | 변경 사항이 적용되도록 지정한 시기와 상관없이 변경 사항은 가능한 한 빨리 비동기적으로 적용되며 중단은 발생하지 않습니다. | – | 
| **인증 기관** | 기본적으로 새 인증 기관을 할당하면 DB 인스턴스가 다시 시작됩니다. | 
| **데이터베이스 포트** | 변경 사항은 항상 즉시 적용되므로 DB 인스턴스가 재부팅되고 중단이 발생합니다. | 
| **DB 파라미터 그룹** |  이 설정을 변경해도 작동이 중단되지 않습니다. 파라미터 그룹 이름 자체는 즉시 변경되지만, 실제 파라미터 변경 사항은 장애 조치 없이 인스턴스를 재부팅해야 적용됩니다. 이 경우에는 DB 인스턴스는 자동으로 재부팅되지 않으며, 다음번 유지 관리 기간 중에 파라미터 변경 사항이 적용되지 않습니다. 그러나 새로 연결된 DB 파라미터 그룹에서 동적 파라미터를 수정하면 이러한 변경 사항이 재부팅 없이 즉시 적용됩니다. 자세한 내용은 [Amazon Neptune에서 DB 인스턴스 재부팅](manage-console-instances-reboot.md) 단원을 참조하십시오.  | 
| **DB 클러스터 파라미터 그룹** |  파라미터 그룹 변경 사항은 즉시 적용됩니다.  | 
| **백업 보관 기간** |  변경 사항을 즉시 적용하도록 지정하면 변경 사항이 즉시 적용됩니다. 즉시 적용이 선택되지 않고 이 설정을 0이 아닌 값에서 다른 0이 아닌 값으로 변경하면 비동기 방식이지만 최대한 빠른 시간 내에 변경 사항이 적용됩니다. 다른 변경에 대해서는 다음 유지 관리 기간에 변경 사항이 적용됩니다. 백업 보존 기간을 0에서 0이 아닌 값으로 또는 0이 아닌 값에서 0으로 변경할 경우 인스턴스가 중단됩니다.  | 
|  **감사 로그**  | CloudWatch Logs를 통해 감사 로깅을 사용하려면 **감사 로그**를 선택합니다. 또한 감사 로깅을 활성화하려면 DB 클러스터 파라미터 그룹의 `neptune_enable_audit_log` 파라미터를 `enable`(1)로 설정해야 합니다. | 
|  **자동 마이너 버전 업그레이드**  |  Neptune DB 클러스터를 활성화하여 엔진의 마이너 버전 업그레이드를 자동으로 수신할 수 있도록 하려면 자동 마이너 버전 업그레이드 활성화를 선택하세요. *자동 마이너 버전 업그레이드* 옵션은 Neptune DB 클러스터에 대한 엔진 마이너 버전으로의 업그레이드에만 적용됩니다. 시스템 안정성 유지를 위한 정기 패치에는 적용되지 않습니다.  | 

# Neptune DB 인스턴스 이름 변경
<a name="manage-console-instances-rename"></a>

 AWS Management Console 사용을 통해 Amazon Neputne DB 인스턴스 이름을 바꿀 수 있습니다. DB 인스턴스 이름을 변경하면 커다란 영향을 끼칠 수 있습니다. DB 인스턴스 이름을 바꾸기 전에 다음과 같이 반드시 알아야 할 몇 가지가 있습니다.
+  DB 인스턴스 이름을 변경하면 DB 인스턴스의 엔드포인트도 변경됩니다. URL에는 DB 인스턴스에 할당한 이름이 포함되어 있기 때문입니다. 트래픽은 항상 이전 URL에서 새 URL로 리디렉션해야 합니다.
+  DB 인스턴스 이름을 변경하면 DB 인스턴스에서 이전에 사용된 DNS 이름은 바로 삭제되지만 캐시는 몇 분 더 남을 수도 있습니다. 이름이 바뀐 DB 인스턴스의 새로운 DNS 이름은 약 10분 후부터 적용됩니다. 이름이 바뀐 DB 인스턴스를 사용하려면 새로운 이름이 적용될 때까지 기다려야 합니다.
+  인스턴스 이름이 바뀌면 기존 DB 인스턴스 이름은 사용할 수 없습니다.
+  DB 인스턴스와 연동된 읽기 전용 복제본은 이름이 바뀐 후에도 모두 인스턴스와 연동된 상태를 유지합니다. 예를 들어 프로덕션 데이터베이스 역할을 하는 DB 인스턴스에 읽기 전용 복제본이 여러 개 연동되어 있다고 가정하겠습니다. 이때 DB 인스턴스 이름을 변경한 후 프로덕션 환경에서 DB 스냅샷으로 교체하더라도 이름을 바꾼 DB 인스턴스에는 읽기 전용 복제본이 그대로 연동되어 있습니다.
+  DB 인스턴스 이름을 재사용하면 DB 인스턴스 이름과 연동되어 있는 지표 및 이벤트가 유지됩니다. 예를 들어, 읽기 전용 복제본을 승격하여 이전 기본 인스턴스의 이름으로 변경하는 경우 기본 인스턴스와 연결된 이벤트와 지표가 이름이 바뀐 인스턴스와 연결됩니다.
+  DB 인스턴스 태그는 이름 변경 여부에 상관없이 DB 인스턴스에 그대로 남습니다.
+  DB 스냅샷은 바뀐 이름의 DB 인스턴스로 유지됩니다.

**Neptune 콘솔을 사용하여 DB 인스턴스 이름을 변경하는 방법**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home)에서 Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **Databases**(데이터베이스)를 선택합니다.

1. 이름을 변경할 DB 인스턴스 옆에 있는 라디오 버튼을 선택합니다.

1. **인스턴스 작업** 메뉴에서 **수정**을 선택합니다.

1.  **DB 인스턴스 식별자** 텍스트 상자에 새 이름을 입력합니다. **즉시 적용**을 선택한 다음 **계속**을 선택합니다.

1. **DB 인스턴스 수정**을 클릭하여 변경을 마칩니다.

# Amazon Neptune에서 DB 인스턴스 재부팅
<a name="manage-console-instances-reboot"></a>

 경우에 따라 Amazon Neptune DB 인스턴스를 수정하거나, 인스턴스와 연동되어 있는 DB 파라미터 그룹을 변경하거나, 인스턴스가 사용하는 파라미터 그룹의 정적 DB 파라미터를 변경하는 경우 인스턴스를 재부팅해야 변경 사항이 적용됩니다.

DB 인스턴스를 재부팅하면 데이터베이스 엔진 서비스가 재시작됩니다. 이때 DB 인스턴스는 물론이고 DB 파라미터 그룹에서 변경 예정인 모든 사항까지도 재부팅됩니다. DB 인스턴스를 재부팅하면 DB 인스턴스 상태가 *재부팅*으로 설정되면서 인스턴스가 잠시 중단됩니다. Neptune 인스턴스가 다중 AZ로 구성되어 있으면 장애 조치로 인해 재부팅을 실행할 수 있습니다. 재부팅이 완료되면 Neptune 이벤트가 생성됩니다.

DB 인스턴스가 다중 AZ 배포인 경우 **재부팅** 옵션을 선택하면 한 가용 영역의 장애 조치를 다른 가용 영역에 강제 실행할 수 있습니다. DB 인스턴스 장애 조치를 강제 실행할 때 Neptune은 이 다른 가용 영역에서 예비 복제본으로 자동 전환한 다음 DB 인스턴스가 예비 DB 인스턴스를 가리키도록 DNS 레코드를 업데이트합니다. 따라서 DB 인스턴스에 대한 기존 연결을 모두 삭제한 후 다시 설정해야 합니다.

**장애 조치로 재부팅**은 DB 인스턴스 결함을 시뮬레이션하여 테스트하거나, 장애 조치 이후 원래 가용 영역으로 작업을 복구할 때 유용한 기능입니다. 자세한 내용을 알아보려면 *Amazon RDS 사용 설명서*의 [고가용성(다중 AZ)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html)를 참조하세요. DB 클러스터를 재부팅하면 예비 복제본으로 장애 조치가 발생합니다. Neptune 복제본을 재부팅하면 장애 조치가 시작되지 않습니다.

재부팅에 걸리는 시간은 충돌 복구 프로세스에 따라 다릅니다. 따라서 재부팅 시간을 단축하려면 재부팅 프로세스에서 데이터베이스 작업을 최소화하여 전송 중 트랜잭션의 롤백 작업을 줄여주는 것이 좋습니다.

콘솔에서 DB 인스턴스가 **사용 가능** 상태가 아닌 경우 **재부팅** 옵션이 비활성화될 수 있습니다. 원인은 백업 진행, 고객의 수정 요청, 유지 관리 기간 작업 등 여러 가지일 수 있습니다.

**참고**  
[릴리스: 1.2.0.0(2022년 7월 21일)](engine-releases-1.2.0.0.md) 이전에는 기본 인스턴스가 재시작되면 DB 클러스터의 모든 기본(라이터) 복제본이 자동으로 재부팅되었습니다.  
[릴리스: 1.2.0.0(2022년 7월 21일)](engine-releases-1.2.0.0.md)부터는 기본 인스턴스를 다시 시작해도 복제본이 재시작되지 않습니다. 즉, DB 클러스터 파라미터 변경 사항을 적용하려면 각 인스턴스를 개별적으로 다시 시작해야 합니다([파라미터 그룹](parameter-groups.md) 참조).

**Neptune 콘솔을 사용하여 DB 인스턴스 재부팅하는 방법**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home)에서 Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **Databases**(데이터베이스)를 선택합니다.

1. 재부팅할 DB 인스턴스를 선택합니다.

1.  **인스턴스 작업**을 선택한 다음 **재부팅**을 선택합니다.

1. 한 가용 영역에서 다른 가용 영역으로 장애 조치를 강제로 실행하려면 **DB 인스턴스 재부팅** 대화 상자에서 **장애 조치로 재부팅하시겠습니까?**를 선택합니다.

1. **재부팅**을 선택합니다. 재부팅을 취소하려면 **취소**를 클릭합니다.

# Amazon Neptune에서 DB 인스턴스 삭제
<a name="manage-console-instances-delete"></a>

Amazon Neptune DB 인스턴스는 시작된 상태라면 언제든지, 어떤 상태에서든 삭제할 수 있습니다.

**주의**  
 **웹 콘솔**을 사용하여 클러스터의 마지막 남은 인스턴스를 삭제하면 기본 클러스터 스토리지 볼륨도 삭제됩니다.

## DB 인스턴스를 삭제하기 전에 최종 스냅샷 생성
<a name="manage-console-instances-final-snapshot"></a>

 DB 인스턴스를 삭제하려면 먼저 인스턴스 이름을 지정한 다음 인스턴스의 최종 DB 스냅샷 캡처 여부를 지정해야 합니다. 삭제할 DB 인스턴스가 **생성 중** 상태라면 최종 DB 스냅샷을 캡처할 수 없습니다. DB 인스턴스가 **실패**, **복원 호환 장애** 또는 **네트워크 호환 장애**의 상태로 오류 상태인 경우에는 `SkipFinalSnapshot` 파라미터가 `true`로 설정된 경우에만 인스턴스를 삭제할 수 있습니다.

를 사용하여 DB 클러스터의 모든 Neptune DB 인스턴스를 삭제하면 AWS Management Console전체 DB 클러스터가 자동으로 삭제됩니다. AWS CLI 또는 SDK를 사용하는 경우 마지막 인스턴스를 삭제한 후 DB 클러스터를 수동으로 삭제해야 합니다.

**중요**  
전체 DB 클러스터를 삭제하면 모든 자동 백업이 동시에 삭제되며 복구할 수 없습니다. 따라서 최종 DB 스냅샷을 수동으로 생성하도록 선택하지 않으면 나중에 DB 인스턴스를 최종 상태로 복원할 수 없습니다. 인스턴스의 수동 스냅샷은 클러스터를 삭제해도 제거되지 않습니다.

삭제하려는 DB 인스턴스에 읽기 전용 복제본이 있는 경우 읽기 전용 복제본을 승격하거나 삭제해야 합니다.

다음은 최종 DB 스냅샷을 포함하고 DB 인스턴스를 삭제하는 예제와 최종 DB 스냅샷을 포함하지 않고 DB 인스턴스를 삭제하는 예제입니다.

## 최종 스냅샷 없이 DB 인스턴스 삭제
<a name="manage-console-instances-delete-no-snapshot"></a>

DB 인스턴스를 빠르게 삭제해야 한다면 최종 DB 스냅샷 생성 단계를 건너뛸 수 있습니다. DB 인스턴스를 삭제하면 자동 백업 파일도 모두 삭제되기 때문에 복구할 수 없습니다. 수동 스냅샷은 삭제되지 않습니다.

**Neptune 콘솔을 사용하여 최종 DB 스냅샷 없이 DB 인스턴스를 삭제하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **Databases**(데이터베이스)를 선택합니다.

1. **인스턴스** 목록에서 삭제할 DB 인스턴스 옆에 있는 라디오 버튼을 선택합니다.

1. **인스턴스 작업**을 선택한 다음 **삭제**를 선택합니다.

1.  **최종 스냅샷을 생성하시겠습니까?** 상자에서 **아니요**를 선택합니다.

1.  **삭제**를 선택합니다.

## 최종 스냅샷을 생성하고 DB 인스턴스 삭제
<a name="manage-console-instances-delete-with-snapshot"></a>

삭제한 DB 인스턴스를 나중에 복구하기를 원한다면 최종 DB 스냅샷을 생성할 수 있습니다. 자동 백업 파일은 모두 삭제되기 때문에 복구할 수 없습니다. 수동 스냅샷은 삭제되지 않습니다.

**Neptune 콘솔을 사용하여 최종 DB 스냅샷을 생성한 뒤 DB 인스턴스를 삭제하려면**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 탐색 창에서 **Databases**(데이터베이스)를 선택합니다.

1. **인스턴스** 목록에서 삭제할 DB 인스턴스 옆에 있는 라디오 버튼을 선택합니다.

1. **인스턴스 작업**을 선택한 다음 **삭제**를 선택합니다.

1.  **최종 스냅샷을 생성하시겠습니까?** 상자에서 **예**를 선택합니다.

1.  **최종 스냅샷 이름** 상자에 최종 DB 스냅샷의 이름을 입력합니다.

1.  **삭제**를 선택합니다.

[instance-status API](access-graph-status.md)를 사용하여 인스턴스 상태를 확인하고, 인스턴스의 종류를 판별하고, 현재 설치한 엔진 릴리스 버전을 찾고, 인스턴스에 대한 기타 정보를 얻을 수 있습니다.