기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Neptune Serverless 사용
새 Neptune DB 클러스터를 서버리스 클러스터로 만들거나 경우에 따라 기존 DB 클러스터를 변환하여 서버리스를 사용할 수 있습니다. 또한 서버리스 DB 클러스터의 DB 인스턴스를 서버리스 인스턴스로 또는 서버리스 인스턴스에서 변환할 수 있습니다. Neptune Serverless는 지원되는의 하나에서만 사용할 수 AWS 리전 있으며 몇 가지 다른 제한 사항이 있습니다( 참조Amazon Neptune Serverless 제약 조건).
또한 Neptune AWS CloudFormation 스택을 사용하여 Neptune Serverless DB 클러스터를 생성할 수 있습니다.
서버리스를 사용하는 새 DB 클러스터 생성
서버리스를 사용하는 Neptune DB 클러스터를 만들려면 프로비저닝된 클러스터를 만들 때와 같은 방법으로 AWS Management Console을 사용하여 만들 수 있습니다. 차이점은 DB 인스턴스 크기에서 DB 인스턴스 클래스를 서버리스로 설정해야 한다는 점입니다. 이렇게 할 때 클러스터의 서버리스 용량 범위를 설정해야 합니다.
다음과 같은 명령 AWS CLI 으로를 사용하여 서버리스 DB 클러스터를 생성할 수도 있습니다(Windows에서는 '\'를 '^'로 대체).
aws neptune create-db-cluster \ --region
(an AWS 리전 region that supports serverless)
\ --db-cluster-identifier(ID for the new serverless DB cluster)
\ --engine neptune \ --engine-version(optional: 1.2.0.1 or above)
\ --serverless-v2-scaling-configuration "MinCapacity=1.0
, MaxCapacity=128.0
"
다음과 같이 serverless-v2-scaling-configuration
파라미터를 지정할 수도 있습니다.
--serverless-v2-scaling-configuration '{"MinCapacity":
1.0
, "MaxCapacity":128.0
}'
그런 다음 ServerlessV2ScalingConfiguration
속성에 대해 describe-db-clusters
명령을 실행하면 지정한 다음의 용량 범위 설정이 반환됩니다.
"ServerlessV2ScalingConfiguration": { "MinCapacity":
(the specified minimum number of NCUs)
, "MaxCapacity":(the specified maximum number of NCUs)
}
기존 DB 클러스터 또는 인스턴스를 서버리스로 변환
엔진 버전 1.2.0.1 이상을 사용하는 Neptune DB 클러스터가 있는 경우 이를 서버리스로 변환할 수 있습니다. 이 프로세스에는 약간의 가동 중지가 발생합니다.
첫 번째 단계는 기존 클러스터에 용량 범위를 추가하는 것입니다. 를 사용하거나 다음과 같은 AWS CLI 명령을 AWS Management Console사용하여 이를 수행할 수 있습니다(Windows에서는 '\'를 '^'로 바꿉니다).
aws neptune modify-db-cluster \ --db-cluster-identifier
(your DB cluster ID)
\ --serverless-v2-scaling-configuration \ MinCapacity=(minimum number of NCUs, such as 2.0)
, \ MaxCapacity=(maximum number of NCUs, such as 24.0)
다음 단계는 클러스터의 기존 기본 인스턴스(라이터)를 대체할 새 서버리스 DB 인스턴스를 만드는 것입니다. 다시 말하지만이 작업과 모든 후속 단계는 AWS Management Console 또는를 사용하여 수행할 수 있습니다 AWS CLI. 두 경우 모두 DB 인스턴스 클래스를 서버리스로 지정합니다. AWS CLI 명령은 다음과 같습니다(Windows에서는 '\'를 '^'로 바꿉니다).
aws neptune create-db-instance \ --db-instance-identifier
(an instance ID for the new writer instance)
\ --db-cluster-identifier(ID of the DB cluster)
\ --db-instance-class db.serverless --engine neptune
새 라이터 인스턴스를 사용할 수 있게 되면 장애 조치를 수행하여 해당 인스턴스를 클러스터의 라이터 인스턴스로 만듭니다.
aws neptune failover-db-cluster \ --db-cluster-identifier
(ID of the DB cluster)
\ --target-db-instance-identifier(instance ID of the new serverless instance)
이어서 다음과 같이 이전 라이터 인스턴스를 삭제합니다.
aws neptune delete-db-instance \ --db-instance-identifier
(instance ID of the old writer instance)
\ --skip-final-snapshot
마지막으로 동일한 작업을 수행하여 서버리스 인스턴스로 변환하려는 기존의 프로비저닝된 각 리더 인스턴스를 대신할 새 서버리스 인스턴스를 만들고 기존의 프로비저닝된 인스턴스를 삭제합니다. 리더 인스턴스에는 장애 조치가 필요하지 않습니다.
기존 서버리스 DB 클러스터의 용량 범위 수정
다음과 같이 Neptune Serverless DB 클러스터의 용량 범위를 AWS CLI 를 사용하여 변경할 수 있습니다(Windows의 경우 '\' 기호를 '^' 기호로 대체).
aws neptune modify-db-cluster \ --region
(an AWS region that supports serverless)
\ --db-cluster-identifier(ID of the serverless DB cluster)
\ --apply-immediately \ --serverless-v2-scaling-configuration MinCapacity=4.0
, MaxCapacity=32
용량 범위를 변경하면 일부 구성 파라미터의 기본값이 변경됩니다. Neptune은 이러한 새 기본값 중 일부를 즉시 적용할 수 있지만 일부 동적 파라미터 변경 사항은 재부팅 후에만 적용됩니다. pending-reboot
상태는 일부 파라미터 변경 사항을 적용하려면 재부팅이 필요함을 나타냅니다.
서버리스 DB 인스턴스를 프로비저닝된 인스턴스로 변경
Neptune Serverless 인스턴스를 프로비저닝된 인스턴스로 변환하려면 인스턴스 클래스를 프로비저닝된 인스턴스 클래스 중 하나로 변경하기만 하면 됩니다. Neptune DB 인스턴스 수정(및 즉시 적용)을 참조하세요.
Amazon CloudWatch를 사용하여 서버리스 용량 모니터링
에 CloudWatch 를 사용하여 DB 클러스터에서 Neptune 서버리스 인스턴스의 용량 및 사용률을 모니터링할 수 있습니다. 클러스터 수준과 인스턴스 수준 모두에서 현재 서버리스 용량을 추적할 수 있는 두 가지 CloudWatch 지표가 있습니다.
-
ServerlessDatabaseCapacity
- 인스턴스 수준 지표로는 현재 인스턴스 용량을 NCUs로ServerlessDatabaseCapacity
보고합니다. 클러스터 수준의 지표로, 클러스터 내 모든 DB 인스턴스의ServerlessDatabaseCapacity
값 평균을 보고합니다. -
NCUUtilization
- 이 지표는 사용 가능한 용량의 비율을 보고합니다. 이 값은 현재ServerlessDatabaseCapacity
(인스턴스 수준 또는 클러스터 수준 중 하나)를 DB 클러스터의 최대 용량 설정으로 나눈 값으로 계산됩니다.클러스터 수준에서 이 지표가 100%에 가까워지면(즉, 클러스터가 최대한 크게 규모가 조정된 경우) 최대 용량 설정을 늘리는 것을 고려합니다.
라이터 인스턴스가 최대 용량에 근접하고 리더 인스턴스의 용량이 100%에 가까워지면 읽기 워크로드를 분산하기 위해 더 많은 리더 인스턴스를 추가하는 것이 좋습니다.
서버리스 인스턴스와 프로비저닝된 인스턴스의 경우 CPUUtilization
및 FreeableMemory
지표의 의미가 약간 다르다는 점을 참고합니다. 서버리스 컨텍스트에서 CPUUtilization
는 현재 사용 중인 CPU의 양을 최대 용량으로 사용할 수 있는 CPU의 양으로 나누어 계산되는 백분율입니다. 마찬가지로 FreeableMemory
는 인스턴스가 최대 용량에 도달했을 때 사용할 수 있는 여유 메모리의 양을 보고합니다.
다음 예제에서는 Linux AWS CLI 에서를 사용하여 1시간 동안 10분마다 측정된 지정된 DB 인스턴스의 최소, 최대 및 평균 용량 값을 검색하는 방법을 보여줍니다. Linux date
명령은 현재 날짜 및 시각을 기준으로 시작 및 종료 시각을 지정합니다. --query
파라미터의 sort_by
함수는 다음과 같이 Timestamp
필드를 기준으로 결과를 시간순으로 정렬합니다.
aws cloudwatch get-metric-statistics \ --metric-name "ServerlessDatabaseCapacity" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/Neptune" --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=
(instance ID)
\ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table