고해상도 지표를 사용한 더 빠른 오토 스케일링
기본적으로 Amazon ECS는 60초 해상도로 CPUUtilization 및 MemoryUtilization 지표를 게시합니다. 더 빠른 서비스 오토 스케일링을 구동하도록 20초 해상도를 구성할 수 있습니다.
다음과 같은 사전 정의된 고해상도 지표를 대상 추적 조정 정책을 생성할 때 사용할 수 있습니다.
| PredefinedMetricType | 설명 |
|---|---|
ECSServiceAverageCPUUtilizationHighResolution |
20초 해상도의 평균 CPU 사용률 |
ECSServiceAverageMemoryUtilizationHighResolution |
20초 해상도에서의 평균 메모리 사용률 |
더 빠른 오토 스케일링을 위한 고해상도 지표를 사용하여 새 서비스 생성
-
클러스터 페이지에서 서비스를 생성하려는 클러스터를 선택하세요.
-
서비스 섹션에서 생성을 선택합니다.
-
서비스 생성 양식의 모니터링 구성 섹션에서 지표 구성 추가를 선택합니다.
-
지표 이름에서 고해상도로 수집하려는 지표를 선택합니다.
CPUUtilization또는MemoryUtilization를 선택합니다. -
해상도(초)에서 20을 선택합니다.
-
(선택 사항) 두 지표를 모두 고해상도로 추가하려면 지표 구성 추가를 다시 선택하고 다른 지표에 대해 이전 두 단계를 반복합니다.
-
서비스 오토 스케일링 섹션에서 서비스 오토 스케일링 사용을 선택합니다.
-
작업의 최소 개수에 서비스 Auto Scaling에서 사용할 작업 수의 하한을 입력합니다. 바람직한 수는 이 숫자 이내여야 합니다.
-
작업의 최대 개수에 서비스 Auto Scaling에서 사용할 작업 수의 상한을 입력합니다. 바람직한 수는 이 숫자 이내여야 합니다.
-
조정 정책 유형(Scaling policy type)에서 대상 추적(Target tracking)을 선택합니다.
-
지표 유형에서 해당하는 고해상도 지표를 선택합니다. 예를 들어 20초 해상도로
CPUUtilization를 구성한 경우ECSServiceAverageCPUUtilizationHighResolution을 선택하고 20초 해상도로MemoryUtilization를 구성한 경우ECSServiceAverageMemoryUtilizationHighResolution을 선택합니다. -
목표 값에 목표 사용률을 입력합니다. 서비스 오토 스케일링에서는 평균 사용률이 목표 값에 도달하거나 사용자가 지정한 최대 태스크 수에 도달할 때까지 용량이 스케일 아웃됩니다.
-
추가 설정에서 다음을 구성합니다.
-
스케일 아웃 휴지 기간에는 이전 스케일 아웃 활동이 적용될 때까지 대기하는 시간(초)을 입력합니다.
-
스케일 인 휴지 기간에는 스케일 인 활동 완료 후 다른 스케일 인 활동이 시작될 수 있는 시간(초)을 입력합니다.
-
-
생성을 선택하여 스택을 생성합니다.
-
create-service 명령을 사용하여 모니터링 구성으로 서비스를 생성합니다.
aws ecs create-service --regionus-east-1\ --clustermy-cluster\ --service-namemy-service\ --task-definitionmy-app:1\ --desired-count 2 \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]" -
register-scalable-target 명령을 사용하여 서비스를 확장 가능 대상으로 등록합니다.
aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --min-capacity1\ --max-capacity10\ --regionus-east-1 -
put-scaling-policy 명령을 사용하여 사전 정의된 고해상도 지표로 대상 추적 조정 정책을 생성합니다.
aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --policy-namemy-highres-cpu-policy\ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue":50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --regionus-east-1 -
describe-scaling-policies 명령을 사용하여 정책이 생성되었는지 확인합니다.
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1
더 빠른 오토 스케일링을 위해 고해상도 지표를 사용하도록 기존 서비스 업데이트
더 빠른 서비스 오토 스케일링을 위해 고해상도 지표를 사용하도록 기존 서비스를 업데이트하는 것은 2단계 프로세스입니다. 먼저 서비스 배포를 트리거하는 모니터링 해상도를 업데이트해야 합니다. 배포가 성공적으로 완료되고 모든 작업이 20초 해상도로 지표를 내보내고 나면 고해상도 조정 정책을 구성할 수 있습니다.
중요
서비스가 이전에 60초 지표 해상도를 사용한 경우 20초 지표 해상도를 사용하도록 서비스를 업데이트하고 서비스 배포가 완료된 후에만 Amazon ECS 콘솔에서 조정 정책에 대한 고해상도 지표를 사용할 수 있습니다.
1단계: 모니터링 해상도 업데이트
-
클러스터 페이지에서 업데이트하려는 서비스가 포함된 클러스터를 선택하세요.
-
서비스 섹션에서 서비스를 선택하고 업데이트를 선택합니다.
-
서비스 업데이트 양식의 모니터링 구성 섹션에서 지표 구성 추가를 선택합니다.
-
지표 이름에서 고해상도로 수집하려는 지표를 선택합니다.
CPUUtilization또는MemoryUtilization를 선택합니다. -
해상도(초)에서 20을 선택합니다.
-
(선택 사항) 두 지표를 모두 고해상도로 추가하려면 지표 구성 추가를 다시 선택하고 다른 지표에 대해 이전 두 단계를 반복합니다.
-
업데이트를 선택하여 변경 사항을 제출합니다. 이렇게 하면 서비스 배포가 트리거됩니다.
-
배포가 완료될 때까지 기다립니다. 배포 탭의 서비스 세부 정보 페이지에서 진행 상황을 모니터링할 수 있습니다.
참고
배포가 성공하고 모든 작업이 20초 해상도로 방출될 때까지 서비스 오토 스케일링 섹션에서 고해상도 조정 지표 옵션이 회색으로 표시됩니다.
2단계: 고해상도 조정 정책 구성
배포가 완료되면 다음 방법 중 하나를 사용하여 조정 정책을 구성합니다.
- 옵션 A: 서비스 세부 정보 페이지
-
-
서비스 세부 정보 페이지에서 서비스 오토 스케일링 탭을 선택합니다.
-
조정 정책 생성을 선택합니다(또는 기존 정책 편집).
-
조정 정책 유형(Scaling policy type)에서 대상 추적(Target tracking)을 선택합니다.
-
지표 유형에서 고해상도 지표를 선택합니다. 예:
ECSServiceAverageCPUUtilizationHighResolution또는ECSServiceAverageMemoryUtilizationHighResolution. -
목표 값에 목표 사용률을 입력합니다.
-
추가 설정에서 다음을 구성합니다.
-
스케일 아웃 휴지 기간에는 이전 스케일 아웃 활동이 적용될 때까지 대기하는 시간(초)을 입력합니다.
-
스케일 인 휴지 기간에는 스케일 인 활동 완료 후 다른 스케일 인 활동이 시작될 수 있는 시간(초)을 입력합니다.
-
-
규모 조정 정책 생성을 선택합니다.
-
- 옵션 B: 서비스 양식 업데이트
-
-
서비스 세부 정보 페이지에서 업데이트를 선택합니다.
-
서비스 오토 스케일링 섹션에서 서비스 오토 스케일링 사용을 선택합니다(아직 활성화되지 않은 경우).
-
최소 작업 수에 하한을 입력합니다.
-
최대 작업 수에 상한을 입력합니다.
-
조정 정책 유형(Scaling policy type)에서 대상 추적(Target tracking)을 선택합니다.
-
지표 유형에서 고해상도 지표를 선택합니다(배포 완료 후 활성화됨).
-
목표 값에 목표 사용률을 입력합니다.
-
추가 설정에서 스케일 아웃 휴지 기간과 스케일 인 휴지 기간을 설정합니다.
-
업데이트를 선택하여 변경 사항을 제출합니다.
-
1단계: 모니터링 해상도 업데이트
-
update-service 명령을 사용하여 모니터링 구성으로 서비스를 업데이트합니다.
aws ecs update-service --regionus-east-1\ --clustermy-cluster\ --servicemy-service\ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]" -
배포가 완료될 때까지 기다립니다. describe-services 명령을 사용하고 배포 상태를 확인하여 진행 상황을 모니터링할 수 있습니다.
aws ecs describe-services --regionus-east-1\ --clustermy-cluster\ --servicesmy-service -
배포가 완료되면 서비스 개정을 설명하여 모니터링 구성이 활성 상태인지 확인합니다.
describe-services출력에서 활성 서비스 개정 ARN을 가져온 후 다음을 실행합니다.aws ecs describe-service-revisions --regionus-east-1\ --service-revision-arnsarn:aws:ecs:us-east-1:012345678910:service-revision/my-cluster/my-service/1234567890123456789응답에 모니터링 구성이 나타나는지 확인합니다.
{ "serviceRevisions": [ { ... "monitoring": { "metricConfigurations": [ { "metricNames": ["CPUUtilization", "MemoryUtilization"], "resolutionSeconds": 20 } ] } } ] }
2단계: 고해상도 조정 정책 구성
-
등록되지 않은 경우 register-scalable-target 명령을 사용하여 서비스를 확장 가능 대상으로 등록합니다.
aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --min-capacity1\ --max-capacity10\ --regionus-east-1 -
put-scaling-policy 명령을 사용하여 사전 정의된 고해상도 지표로 대상 추적 조정 정책을 생성합니다. 다음 예제에서는 CPU 사용률의 50%를 목표로 합니다.
aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --policy-namemy-highres-cpu-policy\ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue":50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --regionus-east-1 -
정책이 생성되었는지 확인합니다.
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1
더 빠른 서비스 오토 스케일링 확인
1부: 고해상도 지표가 게시 중인지 확인
-
CloudWatch 콘솔로 이동합니다.
-
탐색 창에서 지표를 선택한 다음, 모든 지표를 선택합니다.
-
AWS/ECS 네임스페이스를 선택합니다.
-
ClusterName, ServiceName을 선택합니다.
-
서비스에 대한
CPUUtilization및MemoryUtilization지표를 찾습니다. -
기간을 20초로 설정합니다. 20초 간격으로 데이터 포인트가 표시되어야 고해상도 지표가 활성 상태임을 확인할 수 있습니다.
2부: 고해상도 지표를 사용하여 조정 정책이 있는지 확인
-
서비스 세부 정보 페이지에서 서비스 오토 스케일링 탭을 선택합니다.
-
기존 조정 정책을 보고 지표가 고해상도 변형(
ECSServiceAverageCPUUtilizationHighResolution또는ECSServiceAverageMemoryUtilizationHighResolution)으로 설정되어 있는지 확인합니다. -
또는 CLI를 사용하여 확인합니다.
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1응답의
PredefinedMetricType이 고해상도 지표로 설정되어 있는지 확인합니다.
고려 사항
-
구성 변경을 모니터링하면 새 서비스 개정이 생성되고 서비스 배포가 필요합니다. 배포가 완료되고 모든 작업이 20초 해상도로 방출될 때까지 고해상도 조정 지표를 사용할 수 없습니다.
-
Application Load Balancer 및 Network Load Balancer를 사용하는 서비스에 대해 고해상도 지표가 지원됩니다. 대상 그룹 없이 Classic Load Balancer를 사용하는 서비스는 지원되지 않습니다.
-
CODE_DEPLOY또는EXTERNAL배포 컨트롤러 유형을 사용하는 서비스에서는 고해상도 지표가 지원되지 않습니다. -
DescribeServiceRevisions을 사용하여 서비스에 대한 모니터링 구성을 볼 수 있습니다. 모니터링 구성은CreateService또는UpdateService응답에 반환되지 않습니다.