애플리케이션 아키텍처에 대한 Auto Scaling의 이점 - Amazon EC2 Auto Scaling

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

애플리케이션 아키텍처에 대한 Auto Scaling의 이점

Amazon EC2 Auto Scaling을 애플리케이션 아키텍처에 추가하는 것은 AWS 클라우드의 이점을 극대화하는 한 가지 방법입니다. Amazon EC2 Auto Scaling을 사용하면 애플리케이션에서 다음과 같은 이점을 얻을 수 있습니다.

  • 향상된 내결함성. Amazon EC2 Auto Scaling은 인스턴스가 비정상일 때를 감지하여 종료하고 인스턴스를 시작하여 이를 대체할 수 있습니다. 또한 여러 가용 영역을 사용하도록 Amazon EC2 Auto Scaling을 구성할 수 있습니다. 한 가용 영역을 사용할 수 없게 되면 Amazon EC2 Auto Scaling은 이를 보완하기 위해 다른 가용 영역에서 인스턴스를 시작할 수 있습니다.

  • 가용성 향상. Amazon EC2 Auto Scaling은 애플리케이션이 현재의 트래픽 수요를 처리할 수 있는 적절한 용량을 항상 확보할 수 있도록 지원합니다.

  • 비용 관리 향상. Amazon EC2 Auto Scaling은 필요에 따라 용량을 동적으로 늘리거나 줄일 수 있습니다. 사용한 EC2 인스턴스에 대해 비용을 지불하므로 필요할 때 인스턴스를 시작하고 필요하지 않을 때 종료하여 비용을 절약할 수 있습니다.

예: 가변적인 수요에 대응

Amazon EC2 Auto Scaling의 몇 가지 이점을 설명하기 위해 에서 실행되는 기본 웹 애플리케이션을 고려해 보십시오 AWS. 이 애플리케이션을 사용하여 직원들은 회의에 사용하려는 회의실을 찾을 수 있습니다. 한 주의 시작과 끝에는 이 애플리케이션의 사용량이 최소 수준입니다. 주 중반쯤에는 더 많은 직원이 회의 일정을 잡고 있으며, 따라서 애플리케이션에 대한 수요가 눈에 띄게 증가합니다.

다음 그래프는 일주일 동안 애플리케이션의 용량이 얼마나 사용되었는지를 나타냅니다.

애플리케이션에 대한 용량 수요 예.

일반적으로 이러한 용량 변동을 계획하는 방법에는 두 가지가 있습니다. 첫 번째 옵션은 충분한 서버를 추가하여 애플리케이션에 항상 수요를 충족할 만큼의 충분한 용량이 확보되도록 하는 것입니다. 하지만 이 옵션의 단점은 애플리케이션에 이만큼의 용량이 필요 없는 날들도 있다는 것입니다. 여분의 용량이 미사용으로 남아 있다는 것은 결국 애플리케이션 실행 유지 비용의 상승을 의미합니다.

필요한 것 이상의 용량을 구입하는 것이 비용 측면에서 얼마나 비효율적인지를 보여주는 예.

두 번째 옵션은 애플리케이션에 대한 평균 수요를 처리할 수 있는 충분한 용량이 확보되도록 하는 것입니다. 이 옵션을 선택하면 가끔 사용되는 장비를 구매하지 않아도 되므로 비용이 절감됩니다. 그러나 애플리케이션에 대한 수요가 용량을 초과할 경우, 부정적인 고객 경험을 초래할 위험이 있습니다.

필요한 것보다 적게 용량을 구입함으로써 부정적인 고객 경험을 초래할 수 있음을 보여주는 예.

Amazon EC2 Auto Scaling을 이 애플리케이션에 추가하면 세 번째 옵션을 사용할 수 있습니다. 즉, 필요 시에만 애플리케이션에 새 인스턴스를 추가하고 더 이상 필요 없을 때 이를 해지할 수 있습니다. Amazon EC2 Auto Scaling은 EC2 인스턴스를 사용하기 때문에 사용자는 해당 인스턴스를 사용할 때 사용한 인스턴스에 대한 비용만 지불하면 됩니다. 이제 여러분은 비용을 최소화하면서도 최상의 고객 경험을 제공하는 비용 효율적인 아키텍처를 갖게 되었습니다.

Amazon EC2 Auto Scaling이 필요에 따라 용량을 조정할 수 있는 방법을 보여주는 예제입니다.

예: 웹 앱 아키텍처

일반적인 웹 앱 시나리오에서는 고객 트래픽 볼륨을 처리하기 위해 여러 개의 앱 사본을 동시에 실행합니다. 이러한 여러 애플리케이션 사본은 동일한 EC2 인스턴스 (클라우드 서버) 에서 호스팅되며 각각 고객 요청을 처리합니다.

Amazon EC2 Auto Scaling은 사용자를 대신하여 이러한 EC2 인스턴스의 시작 및 종료를 관리합니다. Auto Scaling 그룹이 EC2 인스턴스를 시작하거나 종료하는 시기를 결정하는 일련의 기준 (예: Amazon CloudWatch 경보) 을 정의합니다. Auto Scaling 그룹을 네트워크 아키텍처에 추가하면 애플리케이션의 가용성과 내결함성을 향상시킬 수 있습니다.

Auto Scaling 그룹이 포함된 기본 3 티어 아키텍처입니다.

필요한 만큼 Auto Scaling 그룹을 생성할 수 있습니다. 예컨대, 각 티어별로 Auto Scaling 그룹을 생성할 수 있습니다.

Auto Scaling 그룹의 인스턴스 간 트래픽을 분산하기 위해 로드 밸런서를 아키텍처에 도입할 수 있습니다. 자세한 설명은 Elastic Load Balancing 섹션을 참조하세요.

예: 가용 영역 전반에 인스턴스 분산

가용 영역은 주어진 AWS 리전내에 있는 격리된 위치입니다. 각 지역에는 지역에 대한 고가용성을 제공하도록 설계된 여러 가용 영역이 있습니다. 가용 영역은 독립적이므로 여러 영역을 사용하도록 애플리케이션을 설계하면 애플리케이션 가용성이 향상됩니다. 자세한 내용은 Amazon EC2 Auto Scaling의 레질리언스 단원을 참조하십시오.

가용 영역은 AWS 리전 코드와 문자 식별자 (예:us-east-1a) 로 식별됩니다. 기본값을 VPC 사용하지 않고 VPC 및 서브넷을 생성하는 경우 각 가용 영역에서 하나 이상의 서브넷을 정의할 수 있습니다. 각 서브넷은 단일 가용 영역 내에서만 존재해야 하며, 여러 영역으로 스케일 아웃할 수 없습니다. 자세한 내용은 Amazon VPC사용 설명서의 Amazon VPC 작동 방식을 참조하십시오.

Auto Scaling 그룹을 생성할 때는 Auto Scaling 그룹을 배포할 VPC 서브넷과 서브넷을 선택해야 합니다. Amazon EC2 Auto Scaling은 선택한 서브넷에서 인스턴스를 생성합니다. 따라서 각 인스턴스는 Amazon EC2 Auto Scaling에서 선택한 특정 가용 영역과 연결됩니다. Amazon EC2 Auto Scaling은 인스턴스가 시작되면 고가용성과 안정성을 위해 영역 간에 인스턴스를 균등하게 분배하려고 합니다.

다음 이미지는 3개의 가용 영역에 배치된 다중 계층 아키텍처의 개요를 보여 줍니다.

3개의 가용 영역을 포괄하는 일반적인 Auto Scaling 그룹.

인스턴스 분산

Amazon EC2 Auto Scaling은 활성화된 각 가용 영역에서 동일한 수의 인스턴스를 자동으로 유지하려고 합니다. Amazon EC2 Auto Scaling은 가장 적은 수의 인스턴스로 가용 영역에서 새 인스턴스를 시작하려고 시도하여 이를 수행합니다. 가용 영역에 서브넷을 여러 개 선택한 경우 Amazon EC2 Auto Scaling은 가용 영역에서 무작위로 서브넷을 선택합니다. 그러나 시도가 실패할 경우 Amazon EC2 Auto Scaling은 성공할 때까지 다른 가용 영역에서 인스턴스를 시작하려고 시도합니다.

가용 영역이 비정상이거나 사용할 수 없는 상황에서는 인스턴스가 가용 영역 전체에 고르지 않게 배치될 수 있습니다. 가용 영역이 복구되면 Amazon EC2 Auto Scaling은 Auto Scaling 그룹을 자동으로 재조정합니다. .인스턴스가 가장 적은 활성화된 가용 영역에서 인스턴스를 시작하고 다른 곳에서는 인스턴스를 해지하여 이를 수행합니다.

재조정 활동

재조정 활동은 가용 영역 재조정 및 용량 재조정라는 두 가지 카테고리로 나뉩니다.

가용 영역 재조정

특정 작업이 발생하면 Auto Scaling 그룹의 가용 영역 간에 불균형이 발생할 수 있습니다. Amazon EC2 Auto Scaling은 가용 영역을 재조정하여 이를 보완합니다. 다음 작업으로 인해 재조정 활동이 발생할 수 있습니다.

  • Auto Scaling 그룹과 연결된 가용 영역을 변경합니다.

  • 인스턴스를 명시적으로 해지 또는 분리하거나 인스턴스를 대기 상태로 두면 그룹이 불균형 상태가 됩니다.

  • 이전에 용량이 부족했던 가용 영역이 복구되어 이제 추가적인 용량이 있습니다.

  • 이전에 스팟 가격이 최대 가격보다 높았던 가용 영역이 이제 스팟 가격이 하락하여 최대 가격 아래로 떨어진 경우

재조정 시 Amazon EC2 Auto Scaling은 이전 인스턴스를 종료하기 전에 새 인스턴스를 시작합니다. 이렇게 하면 재조정가 애플리케이션의 성능이나 가용성을 손상시키지 않습니다.

Amazon EC2 Auto Scaling은 이전 인스턴스를 종료하기 전에 새 인스턴스를 시작하려고 시도하기 때문에 지정된 최대 용량에 도달하거나 근처에 있으면 재조정 작업이 방해되거나 완전히 중단될 수 있습니다.

이 문제를 피하기 위해 시스템은 재조정 활동 중에 그룹의 지정된 최대 용량을 일시적으로 초과할 수 있습니다. 기본적으로, 10% 또는 하나의 인스턴스 중 더 큰 차이에 의해 이를 수행할 수 있습니다. 마진은 그룹이 최대 용량이거나 거의 최대 용량에 도달하고 재조정가 필요한 경우에만 스케일 아웃됩니다. 스케일 아웃은 그룹에 재조정가 필요한 동안에만 유지됩니다(대개 몇 분 정도).

또는 인스턴스 유지 관리 정책을 사용하여 Auto Scaling 그룹에 대한 임계값을 설정할 수 있으며, 그룹은 해당 임계값 범위 내에서만 용량을 늘리거나 줄일 수 있습니다. 이렇게 하면 그룹이 자체적으로 재조정되는 속도를 제어할 수 있습니다. 자세한 설명은 인스턴스 유지 관리 정책 섹션을 참조하세요.

용량 재조정

스팟 인스턴스를 사용할 때 Auto Scaling 그룹에 대해 용량 재조정을 켤 수 있습니다. 이를 통해 Amazon EC2 Auto Scaling은 스팟 인스턴스가 중단 위험이 높다고 EC2 보고할 때마다 스팟 인스턴스를 시작하려고 시도할 수 있습니다. 새 인스턴스를 시작한 다음 이전 인스턴스를 해지합니다. 자세한 내용은 용량 재조정을 사용하여 Amazon EC2 스팟 중단 처리 단원을 참조하십시오.