오토 스케일링 개요 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

오토 스케일링 개요

다음 개요는 Auto Scaling에 사용되는 사전 요구 사항 및 구성 요소에 대한 세부 정보를 제공합니다.

필수 조건

Auto Scaling을 사용하려면 먼저 Amazon SageMaker 모델 엔드포인트를 이미 생성해야 합니다. 동일한 엔드포인트에 대해 여러 모델 버전을 보유할 수 있습니다. 각 모델을 프로덕션 (모델) 변형이라고 합니다. 모델 엔드포인트 배포에 대한 자세한 정보는 모델을 호스팅 서비스에 배포하십시오. SageMaker 섹션을 참조하세요.

모델의 자동 크기 조정을 활성화하려면 Application Auto Scaling API를 통해 SageMaker 콘솔, AWS Command Line Interface (AWS CLI) 또는 AWS SDK를 사용할 수 있습니다.

  • 모델에 대한 스케일링을 처음 구성하는 경우 사용하는 것이 좋습니다. 콘솔을 사용하여 모델 오토 스케일링 구성

  • AWS CLI 또는 Application Auto Scaling API를 사용하는 경우 흐름은 모델을 확장 가능한 대상으로 등록하고 조정 정책을 정의한 다음 적용하는 것입니다. SageMaker 콘솔의 탐색 창의 추론에서 엔드포인트를 선택합니다. 모델의 엔드포인트 이름을 찾은 다음 해당 이름을 선택하여 변형 이름을 찾습니다. 모델에 대한 Auto Scaling을 활성화하려면 엔드포인트 이름과 변형 이름을 모두 지정해야 합니다.

규모 조정 정책 개요

Auto Scaling을 사용하려면 실제 워크로드에 따라 프로덕션 변형의 인스턴스 수를 추가 및 제거하는 조정 정책을 정의해야 합니다.

워크로드 변동에 따라 자동으로 규모를 조정하려면 대상 추적과 단계별 조정 정책이라는 두 가지 옵션이 있습니다.

대상 추적 조정 정책을 사용하는 것이 좋습니다. 대상 추적을 사용하여 Amazon CloudWatch 지표와 목표 값을 선택합니다. Auto Scaling은 조정 정책에 대한 CloudWatch 경보를 생성 및 관리하고 지표와 목표 값을 기반으로 규모 조정 조정을 계산합니다. 정책은 메트릭을 지정된 목표 값 또는 그 이하로 유지하기 위해 필요에 따라 인스턴스 수를 추가 및 제거합니다. 예를 들어 대상 값이 70인 사전 정의된 InvocationsPerInstance 지표를 사용하는 스케일링 정책은 InvocationsPerInstance를 70에 근접하게 유지할 수 있습니다. 자세한 내용을 알아보려면 Application Auto Scaling 사용 설명서대상 추적 조정 정책을 참조하세요.

어떤 조건 하에서 얼마나 많은 수의 인스턴스를 배포할 것인지 지정하는 등 고급 구성이 필요한 경우 단계 스케일링을 사용할 수 있습니다. 그렇지 않으면 대상 추적 스케일링이 완전히 자동화되므로 사용하는 것이 좋습니다. 단, 단계 조정은 AWS CLI 또는 Application Auto Scaling API에서만 관리할 수 있습니다. 단계별 조정 정책 및 작동 방식에 대한 개요는 Application Auto Scaling 사용 설명서의 단계 조정 정책을 참조하십시오.

대상 추적 조정 정책을 생성하려면 다음을 지정합니다.

  • 지표 — 추적할 CloudWatch 지표 (예: 인스턴스당 평균 호출 수)

  • 목표 값 - 지표의 목표 값 (예: 인스턴스당 분당 70회 호출)

맞춤 또는 사전 정의된 지표를 사용하여 대상 추적 크기 조정 정책을 생성할 수 있습니다. 사전 정의된 지표는 열거형으로 정의되므로 코드에서 이름으로 지정하거나 콘솔에서 사용할 수 있습니다. SageMaker 또는 Application Auto Scaling API를 사용하여 사전 정의된 지표 또는 사용자 지정 지표를 기반으로 대상 추적 조정 정책을 적용할 수 있습니다. AWS CLI

참고로 조정 활동은 용량의 급격한 변동을 방지하기 위해 활동 사이에 휴지 기간을 두고 수행됩니다. 선택적으로 조정 정책에 대한 휴지 기간을 구성할 수 있습니다.

일정에 근거하여 조정

또한 스케줄링된 작업을 생성하여 특정 시간에 조정 활동을 수행할 수 있습니다. 규모를 한 번만 조정하거나 반복되는 일정으로 조정하도록 예약된 작업을 생성할 수 있습니다. 예약된 작업이 실행된 후에도 규모 조정 정책은 워크로드 변화에 따라 동적으로 확장할지 여부에 대한 결정을 계속 내릴 수 있습니다. 스케줄 조정은 AWS CLI 또는 Application Auto Scaling API에서만 관리할 수 있습니다. 자세한 내용은 Application Auto Scaling 사용 설명서예약된 조정을 참조하세요.

최소 및 최대 규모 조정 한도

Auto Scaling을 구성할 때는 조정 정책을 생성하기 전에 조정 제한을 지정해야 합니다. 최소값과 최대값에 대해 개별적으로 제한을 설정합니다.

최소값은 1 이상이어야 하고 최대값에 지정된 값과 같거나 작아야 합니다.

최대값은 최소값에 지정된 값과 같거나 커야 합니다. SageMaker Auto Scaling은 이 값에 대한 제한을 적용하지 않습니다.

일반적인 트래픽에 필요한 조정 한도를 결정하려면 모델에 대한 예상 트래픽 속도로 Auto Scaling 구성을 테스트하십시오.

변형의 트래픽이 0이 되면 지정된 최소 인스턴스 수로 SageMaker 자동 축소됩니다. 이 경우 SageMaker 는 값이 0인 지표를 내보냅니다.

최소 및 최대 용량을 지정하는 세 가지 옵션이 있습니다.

  1. 콘솔을 사용하여 최소 인스턴스 수 및 최대 인스턴스 수 설정을 업데이트하십시오.

  2. register-scalable-target명령을 실행할 때 를 AWS CLI 사용하고 --min-capacity--max-capacity 옵션을 포함하십시오.

  3. RegisterScalableTargetAPI를 호출하고 MinCapacityMaxCapacity 파라미터를 지정합니다.

작은 정보

최소값을 늘려 수동으로 축소하거나 최대값을 줄여 수동으로 축소할 수 있습니다.

휴지 기간

휴지 기간은 모델이 스케일 인 (용량 감소) 또는 스케일 아웃 (용량 증가) 중일 때 오버스케일링을 방지하는 데 사용됩니다. 이는 기간이 만료될 때까지 후속 조정 활동의 속도를 늦춤으로써 이루어집니다. 특히, 스케일 인 요청에 대한 인스턴스 삭제를 차단하고 스케일 아웃 요청에 대한 인스턴스 생성을 제한합니다. 자세한 내용은 Application Auto Scaling 사용 설명서의 휴지 기간 정의를 참조하십시오.

조정 정책에서 휴지 기간을 구성합니다.

스케일 인 또는 스케일 아웃 휴지 기간을 지정하지 않는 경우 조정 정책은 기본값인 각각 300초를 사용합니다.

조정 구성을 테스트할 때 인스턴스가 너무 빨리 추가 또는 제거되는 경우 이 값을 높이는 것을 고려해 보십시오. 모델에 대한 트래픽에 스파이크가 많거나 변형에 대해 여러 조정 정책이 정의된 경우 이 동작이 나타날 수 있습니다.

증가하는 트래픽을 처리하기에 충분할 정도로 빠르게 인스턴스가 추가되지 않는 경우 이 값을 줄이는 것을 고려하세요.

권한

Amazon SageMaker CloudWatch, Amazon 및 Application Auto Scaling API의 조합을 통해 자동 크기 조정이 가능합니다. 필요한 최소 권한에 대한 자세한 내용은 Application Auto Scaling 사용 설명서의 Application Auto Scaling ID 기반 정책 예제를 참조하십시오.

SagemakerFullAccessPolicyIAM 정책에는 Auto Scaling을 수행하는 데 필요한 모든 IAM 권한이 있습니다. SageMaker IAM 권한에 대한 자세한 내용은 을 참조하십시오. SageMaker 실행 역할 사용 방법

자체 권한 정책을 관리하는 경우 다음 권한을 포함해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:UpdateEndpointWeightsAndCapacities" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "application-autoscaling:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

서비스 연결 역할

Auto Scaling은 AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint 서비스 연결 역할을 사용합니다. 이 서비스 연결 역할은 Application Auto Scaling에 정책에 대한 경보를 설명하고, 현재 용량 수준을 모니터링하고, 대상 리소스를 확장할 수 있는 권한을 부여합니다. 이 역할은 자동으로 생성됩니다. 자동 역할 생성이 성공하려면 해당 iam:CreateServiceLinkedRole 작업에 대한 권한이 있어야 합니다. 자세한 내용은 Application Auto Scaling 사용 설명서의 서비스 연결 역할을 참조하세요.

Auto Scaling 구성에 대한 자세한 내용은 다음 리소스를 참조하십시오.

참고

SageMaker 최근 실시간 추론 엔드포인트를 기반으로 구축된 새로운 추론 기능이 도입되었습니다. SageMaker 엔드포인트의 인스턴스 유형과 초기 인스턴스 수를 정의하는 엔드포인트 구성을 사용하여 엔드포인트를 생성합니다. 그런 다음, 엔드포인트에 모델을 배포하는 데 사용할 수 있는 SageMaker 호스팅 객체인 추론 구성 요소를 생성합니다. 추론 구성 요소 확장에 대한 자세한 내용은 기본 모델 배포 비용 및 지연 시간을 줄이는 데 도움이 되는 새로운 추론 기능 SageMaker 추가 및 블로그의 최신 기능을 사용하여 모델 배포 비용을 평균 50% 줄이기를 참조하십시오. SageMaker AWS