스팟 플릿의 자동 크기 조정 - Amazon Elastic Compute Cloud

스팟 플릿의 자동 크기 조정

자동 크기 조정은 수요에 따라 스팟 플릿의 목표 용량을 자동으로 늘리거나 줄이는 기능입니다. 스팟 플릿은 선택 범위 내에서 하나 이상의 크기 조정 정책에 대한 응답으로 인스턴스 시작(확장) 또는 인스턴스 종료(축소)를 수행할 수 있습니다.

스팟 플릿은 다음과 같은 유형의 자동 크기 조정을 지원합니다.

  • 대상 추적 크기 조정 - 특정 지표의 목표 값을 기준으로 플릿의 현재 용량을 늘리거나 줄입니다. 이 작업은 온도 조절기가 집안 온도를 유지하는 방식과 비슷합니다. — 사용자가 온도만 선택하면 나머지는 온도 조절기가 알아서 합니다.

  • 단계 크기 조정 - 일련의 크기 조정 조절값(즉, 경보 위반의 크기에 따라 달라지는 단계 조절값)에 따라 플릿의 현재 용량을 늘리거나 줄입니다.

  • 예약 크기 조정 - 날짜 및 시간을 기준으로 플릿의 현재 용량을 늘리거나 줄입니다.

인스턴스 가중치를 사용하는 경우 스팟 플릿에서 필요에 따라 목표 용량을 초과할 수 있다는 점에 주의하세요. 이행된 용량은 부동 소수점 숫자일 수 있으나 목표 용량은 정수여야 하므로 스팟 플릿은 결과를 다음 정수로 올립니다. 경보가 트리거되면 조정 정책의 결과를 확인할 때 이러한 동작을 고려해야 합니다. 예를 들어 목표 용량이 30, 이행된 용량이 30.1이고 조정 정책이 1을 뺀다고 가정하세요. 경보가 트리거되면 자동 조정 프로세스가 30.1에서 1을 빼 29.1을 도출한 후 30으로 올리므로 조정 작업이 수행되지 않습니다. 또 다른 예로, 선택한 인스턴스의 가중치가 2, 4, 8이고 목표 용량이 10이지만 가중치 2인 인스턴스를 사용할 수 없었기 때문에 스팟 플릿이 가중치 4와 8인 인스턴스를 프로비저닝하여 이행된 용량이 12가 되었다고 가정합니다. 조정 정책이 목표 용량을 20% 줄이고 경보가 트리거되면 자동 조정 프로세스가 12에서 12*0.2를 빼 9.6을 도출한 후 10으로 올리므로 조정 작업이 수행되지 않습니다.

스팟 플릿에 대해 생성된 크기 조정 정책은 휴지 기간을 지원합니다. 이 기간은 이전 트리거 관련 조정 활동이 향후 조정 이벤트에 영향을 줄 수 있는 경우 조정 활동이 완료된 후의 시간(초)입니다. 확장 정책의 경우, 휴지 기간이 진행되는 동안 휴지하기 시작한 이전 확장 이벤트에 의해 추가된 용량은 다음 확장에 대해 원하는 용량의 일부로 계산됩니다. 지속적이지만 과도하지는 않게 확장하기 위한 목적입니다. 축소 정책의 경우, 휴지 기간은 만료될 때까지 후속 축소 요청을 차단하기 위해 사용됩니다. 보수적으로 축소하여 애플리케이션의 가용성을 보호하기 위한 목적입니다. 그러나 축소 후 휴지 기간 동안 다른 경보가 확장 정책을 트리거하면 자동 조정은 확장 가능한 대상을 즉시 확장합니다.

인스턴스 측정치를 1분 주기로 조정하는 것이 좋습니다. 이렇게 하면 사용량 변동에 따른 응답 속도를 더욱 높일 수 있기 때문입니다. 주기를 5분으로 하면 응답 시간이 느려질 뿐만 아니라 오랜 시간이 지난 측정치 데이터를 기준으로 조정하게 됩니다. 인스턴스에 대한 측정치 데이터를 CloudWatch에 1분 동안 전송하려면 특히 세부 모니터링을 활성화해야 합니다. 자세한 내용은 인스턴스에 대한 세부 모니터링 활성화 또는 비활성화정의된 파라미터를 사용하여 스팟 플릿 요청 생성(콘솔) 섹션을 참조하세요.

스팟 플릿 크기 조정 구성에 대한 자세한 내용은 다음 리소스를 참조하세요.

스팟 플릿 자동 크기 조정에 필요한 IAM 권한

스팟 플릿의 자동 크기 조정은 Amazon EC2, Amazon CloudWatch 및 Application Auto Scaling API의 조합을 통해 수행됩니다. 스팟 플릿은 Amazon EC2를 통해 생성됩니다. CloudWatch는 경보를 생성합니다. 크기 조정 정책은 Application Auto Scaling을 통해 생성됩니다.

플릿 크기 조정 설정에 액세스하는 사용자에게는 스팟 플릿 및 Amazon EC2에 대한 IAM 권한에 더해 동적 크기 조정을 지원하는 서비스에 대한 적절한 권한이 있어야 합니다. 사용자에게는 다음 예제 정책에 나온 태스크를 수행할 수 있는 권한이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "ec2:DescribeSpotFleetRequests", "ec2:ModifySpotFleetRequest", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": "*" } ] }

Application Auto Scaling API 호출에 대한 보다 세분화된 권한을 허용하는 고유한 IAM 정책을 만들 수도 있습니다. 자세한 정보는 Application Auto Scaling 사용 설명서인증 및 액세스 제어를 참조하십시오.

Application Auto Scaling 서비스에는 스팟 플릿 및 CloudWatch 경보를 설명할 수 있는 권한과 사용자 대신 스팟 플릿 목표 용량을 수정할 수 있는 권한도 필요합니다. 스팟 플릿에 자동 크기 조정을 사용하면 AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest라는 서비스 연결 역할이 생성됩니다. 이 서비스 연결 역할은 정책에 대한 경보를 설명하고, 플릿의 현재 용량을 모니터링하고, 플릿의 용량을 수정할 수 있는Application Auto Scaling 권한을 부여합니다. Application Auto Scaling의 관리형 스팟 플릿 역할은 원래 aws-ec2-spot-fleet-autoscale-role이었지만 더 이상 필요하지 않습니다. 서비스 연결 역할은 Application Auto Scaling의 기본 역할입니다. 자세한 내용은 Application Auto Scaling 사용 설명서서비스 연결 역할을 참조하십시오.