Amazon EC2 Auto Scaling을 위한 동적 스케일링 - Amazon EC2 Auto Scaling

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

Amazon EC2 Auto Scaling을 위한 동적 스케일링

동적 조정은 트래픽의 변화에 따라 Auto Scaling 그룹의 용량을 조정합니다.

Amazon EC2 Auto Scaling은 다음과 같은 유형의 동적 조정 정책을 지원합니다.

  • 목표 추적 조정 —Amazon CloudWatch 지표와 목표 값을 기반으로 그룹의 현재 용량을 늘리거나 줄입니다. 이는 온도 조절기가 집안 온도를 유지하는 방식과 비슷하게 작동합니다. 사용자가 온도만 선택하면 나머지는 온도 조절기가 알아서 합니다.

  • 단계별 조정(Step scaling) - 그룹의 현재 용량을 일련의 조정 조절에 따라 늘리고 줄이며 경보 위반의 크기에 따라 달라지는 단계 조절이라고 합니다.

  • 단순 조정(Simple scaling) - 단일 조정 설정에 따라 그룹의 현재 용량을 늘리고 줄입니다. 각 조정 작업 간에는 냉각 기간이 발생합니다.

대상 추적 조정 정책을 사용하고 Auto Scaling 그룹의 용량 변화에 반비례하여 변경되는 지표를 선택하는 것이 좋습니다. 따라서 Auto Scaling 그룹 크기를 두 배로 늘리면 지표가 50% 감소합니다. 이렇게 하면 지표 데이터가 비례적 조정 이벤트를 정확하게 트리거할 수 있습니다. 평균 CPU 사용률 또는 대상당 평균 요청 수와 같은 지표도 포함됩니다.

대상 추적을 사용하면 Auto Scaling 그룹이 애플리케이션의 실제 부하에 정비례하여 조정됩니다. 즉, 대상 추적 정책은 로드 변화에 대응하여 즉각적인 용량 요건을 충족하는 것 외에도, 계절적 변동 등으로 인해 시간 경과에 따라 발생하는 로드 변화에도 맞추어 조정할 수 있습니다.

또한 대상 추적 정책을 사용하면 CloudWatch 경보와 규모 조정을 수동으로 정의할 필요가 없습니다. Amazon EC2 Auto Scaling은 사용자가 설정한 목표에 따라 이를 자동으로 처리합니다.

동적 조정 정책 작동 방식

동적 조정 정책은 Amazon EC2 Auto Scaling에 특정 CloudWatch 지표를 추적하도록 지시하고, 관련 CloudWatch 경보가 켜졌을 때 취해야 할 조치를 정의합니다. ALARM 경보 상태를 호출하는 데 사용되는 지표는 Auto Scaling 그룹의 모든 인스턴스에서 보내는 지표를 집계한 것입니다. (예를 들어 한 인스턴스가 60% 이고 다른 인스턴스가 40% CPU 인 두 개의 인스턴스가 있는 Auto Scaling 그룹이 있다고 가정해 보겠습니다CPU. 평균적으로 50% CPU 입니다. 정책이 시행되면 Amazon EC2 Auto Scaling은 경보 임계값 위반 시 그룹의 원하는 용량을 늘리거나 줄입니다.

동적 조정 정책을 호출할 때 용량 계산 결과 그룹의 최소 및 최대 크기 범위를 벗어나는 숫자가 생성되는 경우 Amazon EC2 Auto Scaling은 새 용량이 최소 및 최대 크기 제한을 초과하지 않도록 합니다. 용량은 두 가지 방법 중 하나로 측정됩니다. 하나는 원하는 용량을 인스턴스 단위로 설정할 때 선택한 것과 동일한 단위를 사용하거나 용량 단위 (인스턴스 가중치가 적용된 경우) 를 사용하는 것입니다.

  • 예 1: Auto Scaling 그룹 최대 용량 3, 현재 용량 2, 인스턴스 3개를 추가하는 조정 정책. Amazon EC2 Auto Scaling은 이 정책을 호출할 때 그룹이 최대 크기를 초과하지 않도록 인스턴스 1개만 그룹에 추가합니다.

  • 예 2: Auto Scaling 그룹 최소 용량 2, 현재 용량 3, 인스턴스 2개를 제거하는 동적 조정 정책. 이 정책을 호출할 때 Amazon EC2 Auto Scaling은 그룹이 최소 크기보다 작아지는 것을 방지하기 위해 그룹에서 인스턴스 1개만 제거합니다.

원하는 용량이 최대 크기 제한에 도달하면 스케일 아웃이 중지됩니다. 수요가 감소하고 용량이 감소하면 Amazon EC2 Auto Scaling은 다시 규모를 확장할 수 있습니다.

단, 인스턴스 가중치를 사용하는 경우는 예외입니다. 이 경우 Amazon EC2 Auto Scaling은 최대 인스턴스 무게까지만 최대 크기 한도 이상으로 확장할 수 있습니다. 그 의도는 최대한 새로운 원하는 용량에 근접하면서도 그룹에 지정된 할당 전략을 고수하는 것입니다. 할당 전략에 따라 시작할 인스턴스 유형이 결정됩니다. 가중치는 인스턴스 유형에 따라 각 인스턴스가 그룹의 원하는 용량에 기여하는 용량 유닛 수를 결정합니다.

  • 예 3: Auto Scaling 그룹 최대 용량 12, 현재 용량 10, 용량 유닛 5를 추가하는 동적 조정 정책. 인스턴스 유형에는 1, 4 또는 6의 세 가지 가중치 중 하나가 할당됩니다. 정책을 호출할 때 Amazon EC2 Auto Scaling은 할당 전략에 따라 가중치가 6인 인스턴스 유형을 시작하도록 선택합니다. 이 스케일 아웃 이벤트의 결과는 원하는 용량이 12이고 현재 용량이 16인 그룹입니다.

여러 동적 조정 정책

대부분의 경우에는 Auto Scaling 그룹이 자동으로 스케일 아웃 및 축소되도록 구성하는 데 대상 추적 조정 정책으로 충분합니다. 대상 추적 조정 정책을 사용하면 원하는 결과를 선택하고, 그러한 결과를 얻기 위해 필요에 따라 Auto Scaling 그룹이 인스턴스를 추가 및 제거하도록 할 수 있습니다.

고급 조정 구성의 경우, Auto Scaling 그룹에 하나 이상의 조정 정책이 있을 수 있습니다. 예컨대, 하나 이상의 대상 추적 조정 정책, 하나 이상의 단계별 조정 정책, 또는 둘 모두를 정의할 수 있습니다. 이로 인해 유연성이 늘어나고 여러 시나리오를 처리할 수 있습니다.

여러 동적 조정 정책이 함께 작동하는 방식을 설명하기 위해 Auto Scaling 그룹과 Amazon SQS 대기열을 사용하여 단일 EC2 인스턴스로 요청을 보내는 애플리케이션을 생각해 보십시오. 애플리케이션에서 최적의 수준으로 작업이 수행되도록 보장하기 위해, Auto Scaling 그룹이 스케일 아웃되어야 하는 시기를 제어하는 두 개의 정책이 마련되어 있습니다. 하나는 사용자 지정 지표를 사용하여 대기열의 SQS 메시지 수에 따라 용량을 추가 및 제거하는 대상 추적 정책입니다. 다른 하나는 지정된 기간 동안 인스턴스 사용률이 90% 를 초과할 경우 Amazon CloudWatch CPUUtilization 지표를 사용하여 용량을 추가하는 단계별 조정 정책입니다.

동시에 여러 정책이 실행되는 경우, 각 정책이 동시에 Auto Scaling 그룹이 스케일 아웃(또는 축소)하도록 지시할 수 있습니다. 예를 들어, 사용자 지정 CPUUtilization 측정치가 급증하여 SQS 사용자 지정 측정치 경보의 임계값을 위반하는 동시에 측정치가 급증하여 CloudWatch 경보 임계값을 위반할 수 있습니다.

이러한 상황이 발생하면 Amazon EC2 Auto Scaling은 스케일 아웃과 스케일 인 모두에 가장 큰 용량을 제공하는 정책을 선택합니다. 예를 들어, 대기열에 대한 정책에서는 인스턴스 하나를 CPUUtilization 시작하고 SQS 대기열에 대한 정책에서는 두 개의 인스턴스를 시작한다고 가정해 보겠습니다. 두 정책의 확장 기준이 동시에 충족되는 경우 Amazon EC2 Auto Scaling은 대기열 정책을 우선시합니다SQS. 이렇게 하면 Auto Scaling 그룹에서 인스턴스 두 개가 시작됩니다.

가장 큰 용량을 제공하는 정책에 우선순위를 부여하는 접근법은 다른 스케일 아웃 기준을 사용하는 정책에도 적용됩니다. 예를 들어, 한 정책에서 인스턴스 3개가 종료되고 다른 정책이 인스턴스 수를 25% 줄이며 확장 시 그룹에 8개의 인스턴스가 있는 경우 Amazon EC2 Auto Scaling은 그룹에 가장 많은 수의 인스턴스를 제공하는 정책을 우선시합니다. 따라서 Auto Scaling 그룹은 인스턴스 두 개를 해지합니다(8의 25% = 2). Amazon EC2 Auto Scaling에서 너무 많은 인스턴스를 제거하는 것을 방지하기 위한 것입니다.

그러나 대상 추적 조정 정책과 단계별 조정 정책을 함께 사용하는 경우, 정책 간 충돌로 인해 바람직하지 않은 동작이 발생할 수 있으므로 주의해야 합니다. 예를 들어, 대상 추적 정책이 규모를 축소할 준비가 되기 전에 단계 조정 정책이 활동 축소를 시작하는 경우 활동 축소가 차단되지 않습니다. 활동 축소가 완료되면 대상 추적 정책이 그룹에 다시 규모를 축소하도록 지시할 수 있습니다.