기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Memcached 클러스터에 대한 조정
ElastiCache for Memcached는 AWS 클라우드에서 Memcached를 배포, 운영 및 수직 확장하는 완전 관리형 인 메모리 캐싱 서비스를 제공합니다.
온디맨드 수직 조정
수직 조정을 통해 ElastiCache for Memcached는 데이터베이스 로드를 완화하여 동적 애플리케이션의 속도를 높이는 데 널리 사용되는 고성능 분산 메모리 캐싱 시스템을 제공합니다. RAM에 데이터와 객체를 저장하므로 외부 데이터 소스에서 읽을 필요가 줄어듭니다.
수직 조정에 ElastiCache for Memcached 자체 설계된 클러스터를 사용할 수 있습니다. 기존 클러스터와 새 클러스터에 수직 조정을 적용할 수 있습니다. 이를 통해 리소스 할당의 유연성을 제공하여 사용자가 클러스터 아키텍처를 변경하지 않고도 변화하는 워크로드에 효율적으로 적응할 수 있습니다. 이러한 확장 기능은 수요가 많은 기간에는 캐시 용량을 늘리고 수요가 적은 기간에는 비용을 최적화하도록 축소하여 성능을 개선합니다. 이렇게 하면 작업이 간소화되고, 리소스 요구 사항을 이동하기 위해 새 클러스터를 생성할 필요가 없으며, 트래픽 변동에 신속하게 대응할 수 있습니다. 전반적으로 Memcached 자체 설계된 캐시의 수직 조정은 비용 효율성을 높이고 리소스 사용률을 개선하며 사용자가 Memcached 인스턴스 유형을 변경하도록 하는 데 도움이 될 수 있습니다. 이를 통해 사용자는 실제 애플리케이션 요구 사항에 맞게 캐싱 인프라를 더 쉽게 조정할 수 있습니다.
참고
자체 설계된 캐시 및 노드 유형 수정은 Memcached 엔진 버전 1.5 이상에서만 사용할 수 있습니다.
수직 조정을 사용하려면 자동 검색을 활성화해야 합니다.
ElastiCache Memcached 클러스터에 대한 온디맨드 수직 조정 설정
다음 두 가지 파라미터scale-config
가 포함된를 사용하여 Memcached에 대한 온디맨드 수직 조정을 구성할 수 있습니다.
ScaleIntervalMinutes: Memcached 업그레이드 프로세스 중 조정 배치 간 시간(분)
ScalePercentage: Memcached 업그레이드 프로세스 중에 동시에 확장할 노드의 비율
기존 Memcached 노드 유형을 CLI를 통해 수직으로 확장할 수 있는 캐시로 변환
기존 Memcached 자체 설계된 캐시를 수직으로 확장할 수 있는 캐시로 변환하려면 CLI를 elasticache modify-cache-cluster
통해를 사용할 수 있습니다.
aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config <scale-config> \ --apply-immediately
CLI를 사용하여 수직 조정 설정
CLI를 통해 Memcached 자체 설계된 캐시에 대한 수직 조정을 설정하려면 scale-config
및 해당 파라미터 ScalePercentage
및와 elasticache modify-cache-cluster
함께를 사용합니다ScaleIntervalMinutes
.
scale-interval-minutes: 조정 배치 간의 시간(분)을 정의합니다. 이 설정의 범위는 2~30분입니다. 값을 지정하지 않으면 기본값인 5분이 적용됩니다.
scale-percentage:각 배치에서 동시에 확장할 노드의 비율을 지정합니다. 이 설정의 범위는 10~100입니다. 분할 시 설정이 반올림되므로 예를 들어 결과가 49.5인 경우 50의 설정이 적용됩니다. 값을 지정하지 않으면 기본값인 20이 적용됩니다.
이러한 구성 옵션을 사용하면 특정 요구 사항에 따라 조정 프로세스를 미세 조정하여 클러스터 중단 최소화와 조정 속도 최적화 간의 균형을 맞출 수 있습니다. scale-config 파라미터는 Memcached 엔진 유형에만 적용되며 다른 캐시 엔진에는 무시되므로 다른 클러스터의 기존 API 사용과 이전 버전과의 호환성이 보장됩니다.
API 호출
aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config '{ "ScalePercentage": 30, "ScaleIntervalMinutes": 2 }' --apply-immediately
결과:
캐시 클러스터 ID와 보류 중인 변경 사항을 반환합니다.
{ "CacheCluster": { "CacheNodeType": "old_insance_type", ... ... "PendingModifiedValues": { "CacheNodeType": "new_instance_type" }, } }
Memcached 캐시 수직 조정 설정 나열
Memcached 캐시에 대한 조정 옵션을 검색하고 수직 조정에 대한 현재 옵션을 확인할 수 있습니다.
API 호출
aws elasticache list-allowed-node-type-modifications --cache-cluster-id <your-cluster-id>
결과:
{ "ScaleUpModifications": [ "cache.x.xxxx", "cache.x.xxxx" ], "ScaleDownModifications": [ "cache.x.xxxx", "cache.x.xxxx", "cache.x.xxxx" ] }
를 사용한 Memcached의 수직 조정 AWS Management Console
기존 Memcached 자체 설계된 캐시를 https://console.aws.amazon.com/elasticache/
에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/elasticache/
ElastiCache 콘솔을 엽니다. 변환할 Memcached 캐시를 선택합니다.
수정 탭을 선택합니다.
캐시 설정 섹션으로 이동하여 원하는 노드 유형을 선택합니다.
변경 사항 미리 보기를 선택하고 변경 사항을 검토합니다.
[Modify]를 선택합니다.
Memcached의 자동 수평 조정
이제 ElastiCache는 AWS Application Auto Scaling(AAS) 서비스와 통합되어 Memcached 클러스터에 대한 자동 수평 조정을 포함합니다. AWS Application Auto Scaling 서비스를 통해 조정 정책을 정의하고 사전 정의된 지표 또는 일정에 따라 필요에 따라 Memcached 클러스터의 노드 수를 자동으로 조정할 수 있습니다.
참고
현재 베이징 및 닝샤 리전에서는 자동 수평 조정을 사용할 수 없습니다.
다음은 자체 설계된 캐시를 자동으로 수평적으로 조정하는 데 사용할 수 있는 방법입니다.
예약된 조정: 일정을 기반으로 조정하면 예측 가능한 로드 변경을 위해 자체 조정 일정을 설정할 수 있습니다. 예를 들어, 매주 수요일에 웹 애플리케이션에 대한 트래픽이 증가하고 목요일까지 높은 상태로 유지되다가 금요일이 줄어들기 시작합니다. 수요일에 용량을 늘리고 금요일에 용량을 줄이도록 Auto Scaling을 구성할 수 있습니다.
대상 추적: 대상 추적 조정 정책을 사용하여 조정 지표를 선택하고 대상 값을 설정합니다. Application Auto Scaling은 조정 정책을 트리거하는 CloudWatch 경보를 생성 및 관리하고 지표와 대상 값을 기준으로 조정 조절을 계산합니다. 조정 정책은 필요에 따라 용량을 추가하거나 제거하여 지표를 지정한 목푯값으로, 혹은 목표 값에 가깝게 유지합니다.
CLI를 통해 ElastiCache for Memcached 자체 설계된 캐시에 대한 수평 조정을 설정하는 방법
ElastiCache Memcached를 사용한 수평 조정의 경우 대상 추적 정책, 예약된 정책 또는 둘 다를 사용할 수 있습니다.
리소스를 확장 가능 대상으로 등록
AWS Application Auto Scaling에서
RegisterScalableTarget
API를 호출하여 확장 가능한 차원에 대한 대상을 등록합니다elasticache:cache-cluster:Nodes
.API: ApplicationAutoScaling.RegisterScalableTarget
입력:
{ "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "MinCapacity": 20, "MaxCapacity": 50 }
대상 추적 조정 정책 생성
다음으로 put scaling 정책 API를 호출하여 리소스에 대한 대상 추적 조정 정책을 생성할 수 있습니다.
미리 정의된 지표
다음은 캐시 클러스터 test-cluster-1에 대해 50으로
ElastiCacheCPUUtilization
설정된 사전 정의된 지표를 사용하여 캐시 노드의 차원에 따라 확장되는 정책입니다. 스케일 인을 위해 노드를 삭제하면 마지막 n개의 노드가 제거됩니다.API: ApplicationAutoScaling.PutScalingPolicy
입력:
{ "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 50, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCacheCPUUtilization" }, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }
출력:
{ "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/elasticache/cache-cluster/test-cluster-1:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }
사용자 지정 지표
Cloudwatch 지표를 기반으로 하는 사용자 지정 백분율을 사용하여 차원에 대한 조정 정책을 설정할 수도 있습니다.
입력:
{ "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "CustomizedMetricSpecification": { "Dimensions": [ { "Name": "MyMetricDimension", "Value": "DimensionValue" } ], "MetricName": "MyCustomMetric", "Namespace": "MyNamespace", "Statistic": "Average", "Unit": "Percent" }, "TargetValue": 40, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }
예약된 작업
특정 이벤트에 대해 스케일 아웃한 다음 이벤트 후에 스케일 인해야 하는 경우
PutScheduledAction
API를 호출하여 두 개의 예약된 작업을 생성할 수 있습니다.정책 1: 스케일 아웃
의
at
명령은 향후 지정된 날짜 및 시간에 작업을 한 번 실행하도록--schedule
예약합니다. 일정 필드는 rate(분, 시간, 일 등) 및 cron(cron 표현식의 경우)도 지원합니다.지정된 날짜 및 시간이 되면 Application Auto Scaling이
MinCapacity
및MaxCapacity
값을 업데이트합니다. Application Auto Scaling은 캐시 노드를 70으로 설정하기 위해 MinCapacity로 확장합니다.API: ApplicationAutoScaling.PutScheduledAction
입력:
{ "ResourceId": "elasticache:ache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 100, "MinCapacity": 70 }, "Schedule": "at(2020-05-20T17:05:00)", "ScheduledActionName": "ScalingOutScheduledAction", "ServiceNamespace": "elasticache", }
정책 2:의 조정
지정된 날짜 및 시간에 Application Auto Scaling은 테이블의
MinCapacity
및를 업데이트MaxCapacity
하고 로 스케일 인MaxCapacity
하여 캐시 노드를 60으로 반환합니다.API: ApplicationAutoScaling.PutScheduledAction
입력:
{ "ResourceId": "elasticache:cache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 60, "MinCapacity": 40 }, "Schedule": "at(2020-05-21T17:05:00)", "ScheduledActionName": "ScalingInScheduledAction", "ServiceNamespace": "elasticache", }
조정 활동 보기
DescribeScalingActivities
API를 사용하여 조정 활동을 볼 수 있습니다.API: ApplicationAutoScaling.DescribeScalingActivities
출력:
{ "ScalingActivities": [ { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 30.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "4d759079-a31f-4d0c-8468-504c56e2eecf", "StartTime": 1462574194.658, "elasticacheNamespace": "elasticache", "EndTime": 1462574276.686, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Failed to set desired count to 30", "StatusCode": "Failed" }, { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 25.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "90aff0eb-dd6a-443c-889b-b809e78061c1", "StartTime": 1462574254.223, "elasticacheNamespace": "elasticache", "EndTime": 1462574333.492, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Successfully set desired count to 25. Change successfully fulfilled by elasticache.", "StatusCode": "Successful" } ] }
조정 정책 편집/삭제
PutScalingPolicy
API를 다시 호출하거나 또는DeleteScalingPolicy
DeleteScheduled
작업을 호출하여 정책을 편집하거나 삭제할 수 있습니다.확장 가능 대상 등록 취소
DeregisterScalableTarget
API를 통해 확장 가능 대상의 등록을 취소할 수 있습니다. 확장 가능 대상을 등록 취소하면 조정 정책과 이와 연결된 예약된 작업이 삭제됩니다.API: ApplicationAutoScaling.DeregisterScalableTarget
입력:
{ "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes" }
조정 정책 정리
다중 조정 정책
여러 조정 정책을 생성할 수 있습니다. 다음은 Auto Scaling 대상 추적의 동작에 대한 주요 콜아웃입니다.
각각 다른 지표를 사용한다는 전제하에 확장 가능한 대상에 대해 다수의 대상 추적 조정 정책을 보유할 수 있습니다.
Application Auto Scaling은 항상 가용성을 우선시하므로, 대상 추적 정책이 확장 또는 축소를 허용하는지에 따라 그 동작이 달라집니다. 대상 추적 정책 중 하나라도 확장을 허용할 경우 확장 가능한 대상을 확장하지만 모든 대상 추적 정책(축소 부분이 활성화됨)이 축소를 허용하는 경우에만 대상을 축소합니다.
여러 정책이 확장 가능한 대상에 확장 또는 축소를 동시에 지시하는 경우 Application Auto Scaling은 축소와 확장 모두에 대해 가장 큰 용량을 제공하는 정책에 따라 조정합니다. 이로써 다양한 시나리오를 수용할 만큼 폭넓은 유연성을 발휘할 뿐만 아니라 애플리케이션 워크로드를 처리하는 데 필요한 용량을 항상 충분히 확보할 수 있습니다.
참고
AWS Application Auto Scaling은 조정 정책을 대기열에 추가하지 않습니다. Application Auto Scaling은 첫 번째 조정이 완료될 때까지 기다린 다음 휴지 상태로 전환한 다음 위의 알고리즘을 반복합니다.
를 통해 Memcached 캐시를 자동으로 수평으로 조정 AWS Management Console
기존 Memcached 자체 설계된 캐시를 https://console.aws.amazon.com/elasticache/
에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/elasticache/
ElastiCache 콘솔을 엽니다. 변환할 Memcached 캐시를 선택합니다.
Autoscaling 탭으로 이동합니다.
동적 조정 추가 또는 예약된 조정 추가를 선택하여 적용할 조정 정책을 선택합니다.
필요에 따라 선택한 정책의 세부 정보를 입력합니다.
생성을 클릭합니다.