기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Neptune DB 클러스터의 복제본 수 Auto Scaling
Neptune Auto Scaling을 사용하여 DB 클러스터의 Neptune 복제본 수를 연결 및 워크로드 요구 사항에 맞게 자동으로 조정할 수 있습니다. Auto Scaling을 통해 Neptune DB 클러스터는 워크로드 증가를 처리할 수 있으며, 워크로드가 감소하면 Auto Scaling은 불필요한 복제본을 제거하므로 사용하지 않은 용량에 대해 비용을 지불하지 않아도 됩니다.
Auto Scaling은 이미 기본 라이터 인스턴스와 하나 이상의 읽기 복제본 인스턴스가 있는 Neptune DB 클러스터에서만 사용할 수 있습니다(Amazon Neptune DB 클러스터 및 인스턴스 참조). 또한 클러스터의 모든 읽기 복제본 인스턴스는 사용 가능한 상태여야 합니다. 읽기 복제본이 사용 가능하지 않은 상태인 경우 Neptune Auto Scaling은 클러스터의 모든 읽기 전용 복제본을 사용할 수 있을 때까지 아무 작업도 수행하지 않습니다.
새 클러스터를 생성해야 하는 경우 Neptune 클러스터 생성 섹션을 참조하세요.
를 AWS CLI사용하여 규모 조정 정책을 정의하고 DB 클러스터에 적용합니다. 를 사용하여 Auto AWS CLI Scaling 정책을 편집하거나 삭제할 수도 있습니다. 이 정책은 다음과 같은 Auto Scaling 파라미터를 지정합니다.
클러스터에 보유할 최소 및 최대 복제본 수입니다.
복제본 추가 조정 활동 사이의
ScaleOutCooldown
간격과 복제본 삭제 조정 활동 사이의ScaleInCooldown
간격.확장 또는 축소를 위한 CloudWatch 지표 및 지표 트리거 값.
Neptune Auto Scaling 동작의 빈도는 다음과 같은 여러 가지 방법으로 줄어듭니다.
처음에는 리더 추가 또는 삭제를 위한 Auto Scaling을 위해
CPUUtilization
하이 알람이 최소 3분 동안 위반되거나 로우 알람이 최소 15분 동안 위반되어야 합니다.첫 번째 추가 또는 삭제 이후 Neptune Auto Scaling 작업의 빈도는 자동 크기 조정 정책의
ScaleOutCooldown
및ScaleInCooldown
설정에 의해 제한됩니다.
사용 중인 CloudWatch 지표가 정책에서 지정한 높은 임계값에 도달하고 마지막 자동 크기 조정 작업 이후 ScaleOutCooldown
간격이 경과한 경우, 그리고 설정한 최대 복제본 수가 DB 클러스터에 아직 없는 경우, Neptune auto-scaling은 DB 클러스터의 기본 인스턴스와 동일한 인스턴스 유형을 사용하여 새 복제본을 만듭니다.
마찬가지로 지표가 지정한 하한 임곗값에 도달하고 마지막 Auto Scaling 작업 이후 ScaleInCooldown
간격이 경과한 경우, 그리고 DB 클러스터에 지정된 최소 복제본 수보다 많은 경우 Neptune Auto Scaling은 복제본 중 하나를 삭제합니다.
참고
Neptune Auto Scaling은 자체에서 생성한 복제본만 제거합니다. 기존 복제본은 제거되지 않습니다.
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은 새 읽기 복제본 인스턴스를 추가할 때 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 클러스터의 내결함성 섹션을 참조하십시오.
Neptune 자동 크기 조정은 CPUUtilization CloudWatch Neptune 지표를 사전 정의된 지표로 사용하는 대상 추적 조정 정책과 함께 Application Auto Scaling을 사용하여 구현됩니다.
Neptune Serverless DB 클러스터에서 Auto Scaling 사용
Neptune Serverless는 수요가 인스턴스의 용량을 초과할 때 Neptune Auto Scaling보다 훨씬 빠르게 반응하며 다른 인스턴스를 추가하는 대신 인스턴스를 확장합니다. 비교적 안정적인 워크로드 증가 또는 감소에 맞춰 Auto Scaling이 설계된 반면, 서버리스는 급격한 수요 급증과 불안감을 처리하는 데 탁월합니다.
이들의 강점을 이해하면 Auto Scaling과 서버리스를 결합하여 워크로드의 변화를 효율적으로 처리하고 비용을 최소화하면서 수요를 충족하는 유연한 인프라를 구축할 수 있습니다.
Auto Scaling이 서버리스와 함께 효과적으로 작동하도록 하려면 서버리스 클러스터의 maxNCU 설정을 수요 급증과 짧은 수요 변화를 수용할 수 있을 만큼 충분히 높게 구성하는 것이 중요합니다. 그러지 않으면 일시적인 변경으로 인해 서버리스 스케일링이 트리거되지 않아 Auto Scaling으로 인해 불필요한 추가 인스턴스가 많이 생성될 수 있습니다. maxNCU
를 충분히 높게 설정하면 서버리스 스케일링으로 이러한 변경 사항을 더 빠르고 저렴하게 처리할 수 있습니다.
Amazon Neptune의 Auto Scaling 활성화 방법
Auto Scaling은 AWS CLI를 사용하는 Neptune DB 클러스터에서만 활성화할 수 있습니다. AWS Management Console을 사용하여 Auto Scaling을 활성화할 수 없습니다.
또한 다음 Amazon 리전에는 Auto Scaling이 지원되지 않습니다.
아프리카(케이프타운):
af-south-1
중동(UAE):
me-central-1
AWS GovCloud (미국 동부):
us-gov-east-1
AWS GovCloud (미국 서부):
us-gov-west-1
Neptune DB 클러스터의 Auto Scaling을 활성화하려면 다음 세 단계를 수행해야 합니다.
1. Application Auto Scaling을 통해 DB 클러스터 등록
Neptune DB 클러스터의 자동 크기 조정을 활성화하는 첫 번째 단계는 AWS CLI 또는 Application Auto Scaling SDK 중 하나를 사용하여 클러스터를 Application Auto Scaling에 등록하는 것입니다. 클러스터에는 기본 인스턴스 하나와 읽기 복제본 인스턴스가 하나 이상 있어야 합니다.
예를 들어, 1~8개의 추가 복제본으로 자동 확장할 클러스터를 등록하려면 다음과 같이 AWS CLI register-scalable-target
명령을 사용할 수 있습니다.
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
이는 RegisterScalableTarget
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~15로 설정되어야 하며max-capacity
의 최대 Neptune 복제본 수에 대해 지정된 값과 같거나 작아야 합니다. Auto Scaling이 작동하려면 DB 클러스터에 리더가 한 개 이상 있어야 합니다.이 파라미터는 Application Auto Scaling API의
MinCapacity
파라미터와 동일합니다. -
max-capacity
- Application Auto Scaling에서 관리하는 기존 인스턴스 및 새 인스턴스를 포함하여 DB 클러스터에 있는 최소 리더 DB 복제본 인스턴스 수입니다. 이 값은 0~15로 설정되어야 하며min-capacity
의 최소 Neptune 복제본 수에 대해 지정된 값과 같거나 커야 합니다.이
max-capacity
AWS CLI 파라미터는 Application Auto Scaling API의MaxCapacity
파라미터와 동일합니다.
DB 클러스터를 등록하면 Application Auto Scaling에서 AWSServiceRoleForApplicationAutoScaling_NeptuneCluster
서비스 연결 역할을 생성합니다. 자세한 정보는 Application Auto Scaling 사용 설명서의 Application Auto Scaling 서비스 연결 역할을 참조하세요.
2. DB 클러스터에 사용할 Auto Scaling 정책을 정의합니다.
대상 추적 조정 정책은 텍스트 파일에도 저장할 수 있는 JSON 텍스트 객체로 정의됩니다. Neptune의 경우 이 정책은 현재 Neptune 지표를 이름이 지정된 사전 정의된 지표로만 CPUUtilization 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
입니다.
Application Auto Scaling으로 Neptune DB 클러스터를 등록하고 규모 조정 정책을 삭제한 후 등록된 Neptune DB 클러스터에 규모 조정 정책을 적용합니다. 다음과 같은 매개 변수와 함께 AWS CLI put-scaling-policy
명령을 사용하여 이 작업을 수행할 수 있습니다.
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 put-scaling-policy
명령을 사용하여 기존 자동 스케일링 정책을 업데이트할 수도 있습니다.
Application Auto Scaling API 참조의 PutScaling 정책도 참조하십시오.
Neptune DB 클러스터에서 Auto Scaling 제거
Neptune DB 클러스터에서 자동 크기 조정을 제거하려면 크기 조정 삭제 정책 및 등록 취소-확장 가능 대상 명령을 사용합니다. AWS CLI