규칙 기반 정책을 사용한 Auto Scaling - 아마존 GameLift

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

규칙 기반 정책을 사용한 Auto Scaling

Amazon GameLift의 규칙 기반의 조정 정책을 사용하면 플레이어의 활동에 맞춰 플릿 용량의 Auto Scaling을 세부적으로 제어할 수 있습니다. 각 정책에서 여러 플릿 지표 중 하나와 조정을 연결시키고, 트리거 지점을 식별하고, 응답할 스케일 업 또는 스케일 다운 이벤트를 사용자 지정할 수 있습니다. 규칙 기반의 정책은 특정 상황을 처리하기 위해 대상 기반 조정 방식을 보완하는 데 유용합니다.

규칙 기반 정책은 “플릿 지표가 일정 시간 동안 임계 값에 도달하거나 이를 초과하면 플릿 용량을 일정 수치만큼 변경합니다.”로 명시할 수 있습니다. 이번 주제에서는 정책 설명을 만들기 위해 사용하는 구문을 설명하고, 규칙 기반 정책 생성 및 관리에 도움을 주는 정보를 제공합니다.

규칙 기반 정책 관리

Amazon GameLift 서비스 API의 AWS SDK 또는 AWS Command Line Interface(AWS CLI)을 사용하여 규칙 기반 정책을 생성, 업데이트 또는 삭제합니다. Amazon GameLift 콘솔에서 모든 활성 정책을 확인할 수 있습니다.

특정 플릿에 대한 모든 조정 정책을 일시적으로 중지하려면 AWS CLI 명령인 stop-fleet-actions를 사용합니다.

규칙 기반 조정 정책(AWS CLI)을 생성 또는 업데이트하려면
  1. 용량 제한을 설정합니다. update-fleet-capacity 명령을 사용하여 두 제한 값 중 하나 또는 둘 모두를 설정합니다. 자세한 내용은 Amazon GameLift의 용량 제한 설정 섹션을 참조하세요.

  2. 새 정책 생성. 명령줄 창을 열고 put-scaling-policy 명령과 함께 사용자의 정책 파라미터 설정을 사용합니다. 기존 정책을 업데이트하려면 정책 이름을 지정하고, 완전히 업데이트한 정책 버전을 제공합니다.

    --fleet-id <unique fleet identifier> --name "<unique policy name>" --policy-type <target- or rule-based policy> --metric-name <name of metric> --comparison-operator <comparison operator> --threshold <threshold integer value> --evaluation-periods <number of minutes> --scaling-adjustment-type <adjustment type> --scaling-adjustment <adjustment amount>

    예제:

    aws gamelift put-scaling-policy \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --name "Scale up when AGS<50" \ --policy-type RuleBased \ --metric-name AvailableGameSessions \ --comparison-operator LessThanThreshold \ --threshold 50 \ --evaluation-periods 10 \ --scaling-adjustment-type ChangeInCapacity \ --scaling-adjustment 1
AWS CLI를 사용하여 규칙 기반 조정 정책을 삭제하려면
  • 명령줄 창을 열고 delete-scaling-policy 명령과 함께 플릿 ID와 정책 이름을 사용합니다.

    예제:

    aws gamelift delete-scaling-policy \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --name "Scale up when AGS<50"

Auto Scaling 규칙 구문

규칙 기반 조정 정책 설명을 구성하려면 다음과 같이 여섯 가지 주요 변수를 지정합니다.

<metric name><comparison operator> 동안 <threshold value>로 유지되면 <evaluation period>을 이용하여 플릿 용량을 <adjustment type>로/만큼 <adjustment value> 변경합니다.

예를 들어, 이 정책 설명은 플릿의 추가 용량이 50개의 새 게임 세션 처리에 필요한 용량보다 적을 때마다 스케일 업 이벤트를 시작합니다.

AvailableGameSessionsless than 50 동안 10 minutes로 유지되면 ChangeInCapacity를 이용하여 플릿 용량을 1 instances만큼 변경합니다.

지표 이름

조정 이벤트를 시작하려면 플릿에 특정적인 다음 지표 중 하나에 Auto Scaling 정책을 연결합니다. 지표에 대한 자세한 설명은 Amazon GameLift 플릿 지표 섹션을 참조하세요.

  • 게임 세션 활성화

  • 활성 게임 세션

  • 사용 가능한 게임 세션

  • 사용 가능한 게임 세션 백분율

  • 활성 인스턴스

  • 사용 가능한 플레이어 세션

  • 현재 플레이어 세션

  • 유휴 인스턴스

  • 유휴 인스턴스 백분율

플릿이 게임 세션 대기열에 있는 경우 다음 지표를 사용할 수 있습니다.

  • 대기열 깊이 - 이 플릿이 사용 가능한 최상의 호스팅 위치인 대기 중인 게임 세션 요청의 수.

  • 대기 시간 - 플릿별 대기 시간. 충족해야 할 가장 오래 대기 중인 게임 세션 요청의 대기 시간입니다. 플릿의 대기 시간은 가장 오래된 현재 요청의 대기열 체류 시간과 동일합니다.

비교 연산자

임계값을 기준으로 지표 데이터를 비교하는 방법을 Amazon GameLift에 제공합니다. 유효한 비교 연산자로는 초과(>), 미만(<), 이상(>=) 및 이하(<=) 등이 있습니다.

임계값

지정 지표값이 임계값에 도달하거나 초과할 때 조정 이벤트를 시작합니다. 이 값은 항상 양의 정수입니다.

평가 기간

지표가 전체 평가 기간의 임계값에 도달하거나 이를 초과해야 조정 이벤트가 시작됩니다. 평가 기간은 연속적입니다. 지표가 임계값보다 작아지면 평가 기간이 처음부터 다시 시작됩니다.

조정 유형 및 값

이 변수 세트는 조정 이벤트가 시작될 때 Amazon GameLift가 플릿 용량을 조정하는 방식을 지정합니다. 다음 세 가지 조정 유형 중에서 선택할 수 있습니다.

  • 용량 변경 - 현재 용량을 지정된 인스턴스 수만큼 늘리거나 줄입니다. 플릿에 추가하거나 플릿에서 제거할 인스턴스 수로 조정 값을 설정합니다. 양수 값은 인스턴스를 추가하고, 음수 값은 인스턴스를 제거합니다. 예를 들어, “-10”은 플릿의 총 크기에 상관 없이 플릿을 10개 인스턴스씩 축소시킵니다.

  • 용량의 백분율 변경 - 현재 용량을 지정된 백분율만큼 늘리거나 줄입니다. 플릿 용량에 늘리거나 줄이기를 원하는 만큼의 백분율로 조정 값을 설정합니다. 양수 값은 인스턴스를 추가하고, 음수 값은 인스턴스를 제거합니다. 예를 들어, 50개 인스턴스의 플릿에서 백분율 변경 값이 “20”이면 플릿에 10개 인스턴스가 추가됩니다.

  • 정확한 용량 - 현재 용량을 특정 값으로 늘리거나 줄입니다. 플릿에 유지할 정확한 인스턴스 수로 조정 값을 설정합니다.

규칙 기반 Auto Scaling에 대한 팁

다음 제안은 규칙 기반 정책을 사용한 Auto Scaling을 최대한 활용하는 데 도움이 됩니다.

다수의 정책 적용

한 플릿에 여러 Auto Scaling 정책을 동시에 적용할 수 있습니다. 가장 일반적인 시나리오는 대상 기반 정책으로 대부분의 조정 필요 사항을 관리하고, 규칙 기반 정책으로 엣지 사례를 처리하는 것입니다. 여러 정책을 사용할 수도 있습니다.

여러 정책이 있는 경우에는 각 정책이 독립적으로 작동합니다. 조정 이벤트의 순서를 제어하는 방법은 없습니다. 예를 들어 확장을 관리하는 정책이 여럿인 경우, 플레이어 활동으로 인해 여러 조정 이벤트가 동시에 시작될 수 있습니다. 서로 동시에 시작하는 정책을 피하세요. 예를 들어, 서로의 임계값을 넘어선 용량을 설정하는 스케일 업 및 스케일 다운 정책을 생성한 경우, 무한 루프가 발생할 수 있습니다.

최대 및 최소 용량 설정

각 플릿의 최대 및 최소 용량에 제한이 있습니다. 이 기능은 Auto Scaling을 사용할 때 중요합니다. Auto Scaling은 이 범위에서 벗어나는 값으로 용량을 설정하지 않습니다. 기본적으로 새롭게 생성된 플릿의 최소 용량은 0, 최대 용량은 1입니다. Auto Scaling 정책이 의도한 대로 용량에 적용되도록 하려면 최대 값을 늘립니다.

플릿 용량은 플릿의 인스턴스 유형 및 AWS 계정의 Service Quotas에 의해서도 제한됩니다. 이러한 제한 사항 및 계정 할당량에서 벗어나는 최소 및 최대 용량을 설정할 수 없습니다.

용량 변경 후 측정치 추적

Amazon GameLift는 Auto Scaling 정책에 따라 용량을 변경하고 10분을 대기한 후 동일한 정책의 트리거에 반응합니다. 이렇게 대기하면서 Amazon GameLift는 새 인스턴스 추가, 게임 서버 시작, 플레이어 연결, 새 인스턴스로부터 데이터 수집 시작 등을 수행합니다. 그 동안 Amazon GameLift는 지표를 기준으로 정책을 평가하고 정책 평가 기간을 추적합니다. 정책 평가 기간은 조정 이벤트가 발생하면 다시 시작됩니다. 즉, 대기 시간이 끝난 직후 조정 정책이 다른 조정 이벤트를 시작할 수 있습니다.

서로 다른 Auto Scaling 정책에서 시작한 조정 이벤트 사이에는 대기 시간이 없습니다.