반응형

Auto Scaling

Auto Scaling은 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지합니다. 이를 사용하여 몇 분 만에 여러 서비스 전체에서 여러 리소스에 대한 애플리케이션 크기 조정을 설정할 수 있습니다.

 

이 서비스에서 제공하는 간편하면서도 유용한 사용자 인터페이스를 사용하면 리소스용 크기 조정 계획을 작성할 수있습니다. 이러한 리소스의 예로는 EC2 인스턴스, 스팟 플릿 및 기타 컴퓨팅/데이터베이스 서비스 등이 있습니다. Auto Scaling을 사용하면 성능과 비용을 최적화하거나 둘 사이의 적절한 균형을 유지하기 위한 권장 사항을 활용해 간단하게 스케일링할 수 있습니다.

 

Auto Scaling은 EC2, DynamoDB, Aurora 등 여러 서비스에 걸쳐 짧은 간격으로 리소스에 대한 애플리케이션 크기 조정을 제공합니다.

 

EC2 Auto Scaling

EC2 Auto Scaling을 통해 서로 다른 EC2 리소스 그룹이 수요 변화에 대응하는 방법을 자동화하는 크기 조정 계획을 수립할 수 있습니다. 가용성 또는 비용을 최적화하거나 둘 사이의 균형을 적절하게 유지할 수 있습니다.

 

크기 조정 정책을 지정하면, EC2 Auto Scaling이 애플리케이션의 늘어나거나 줄어드는 수요에 따라 인스턴스를 시작하거나 종료할 수 있습니다. EC2 Auto Scaling은 ELB와 통합되므로 하나 이상의 로드 밸런서를 기존 EC2 Auto Scaling 그룹에 연결할 수 있습니다. 로드 밸런서를 연결하면 그룹에 인스턴스가 자동으로 등록되고 수신 트랲기이 인스턴스 전체에 분산됩니다.

 

탄력성

클라우드 컴퓨팅이 리소스의 높거나 낮은 사용률 문제를 해결하는 방식은 크기 조정이라는 개념입니다. 그러면 크기 조정 개념이 실제 기업에 적용되는 방식을 살펴 보겠습니다.

 

출처 : https://aws.amazon.com/ko/blogs/korea/cost-estimation-and-optimization-before-and-after-the-game-launch/

 

[Predicted Demand, 예측 수요]

사업 규모가 확대되어 애플리케이션 수요가 늘어나면 인프라 비용도 장기적으로 증가합니다. 탄력적인 인프라는 용량 요구 사항이 변화함에 따라 지능적으로 확장 및 축소될 수 있습니다. 이러한 예시는 다음과 같습니다.

  • 트래픽 급증 시 웹 서버 수 확장
  • 트래픽이 감소 시 데이터베이스 쓰기 용량 축소
  • 아키텍처 전반에 걸친 일상적인 수요 변동 처리

[Traditional hardware, 기존 하드웨어]

종래의 IT 조달 모델에서는 기업이 수요 증가를 처리하기 위해 대규모 인프라 구매에 정기적으로 투자해야 합니다. 기업은 더 많은 용량이 필요하여 또 다른 대규모 투자가 이루어질 때까지 이 인프라를 계속 사용할 것입니다.

 

[Actual Demand, 실제 수요]

그러나 수요가 일정하게 늘어나거나 예측 가능한 경우는 거의 없습니다. 워크로드는 급격히 증감하고 가변적인 경우가 훨씬 많습니다.

 

[Opportunity cost, 기회비용]

기업이 투자한 대규모 인프라가 낮은 수요 때문에 활용되지 않는다면 이는 상당한 기회 비용인 것입니다. 따라서 수요 패턴을 확인할 수 있다면 이러한 선행 비용을 어떻게 재할당할 수 있었을지를 고려해야 합니다.

 

[Lost opportunity, 기화 상실]

대안은 기업이 비용을 절감하기 위해 또는 수요 급증을 예측하지 못했기 때문에 인프라를 언더프로비저닝하는 것입니다. 만약 수요가 가용 환경을 벗어나 증가한다면 기업은 기회를 상실할 것입니다. 이 상황에서는 부정적인 사용자 경험이 생성될 수 있습니다. 인기 있는 콘서트를 에매하려고 하는데 갑자기 웹 사이트가 중단되었을 때의 기분을 생각할 수 있습니다.

 

[AWS, 탄력적인 클라우드 리소스]

클라우드 기술을 사용하면 탄력적인 클라우드 리소스를 활용함으로써 수요와 공급의 균형을 유지할 수 있습니다. 클라우드에서는 기존 인프라와 달리 리소스를 몇 개월 전에 미리 프로비저닝하지 않아도 됩니다. 사용하지 않는 리소스를 몇 개월 전에 미리 프로비저닝하지 않아도 됩니다. 사용하지 않는 리소스를 유지할 필요도 없고 고객 수요를 예상하지 못할까 걱정할 필요도 없습니다.

 

EC2 Auto Scaling 구성 요소

EC2 Auto Scaling을 사용하면 애플리케이션 로드를 처리할 수 있는 정확한 수의 Amazon EC2 인스턴스를 유지할 수 있습니다. Auto Scaling 그룹이라는 EC2 인스턴스 모음을 생성합니다. 각 Auto Scaling 그룹의 최소 인스턴스 수를 지정할 수 있습니다. EC2 Auto Scaling은 그룹의 크기가 이 값 아래로 내려가지 않도록 관리합니다. 마찬가지로 각 Auto Scaling 그룹의 최대 인스턴스 수를 지정할 수 있습니다. EC2 Auto Scaling은 그룹의 크기가 이 값위로 올라가지 않도록 관리합니다.

 

시작 템플릿

시작 템플릿을 사용하여 Auto Scaling 그룹을 생성하려면 먼저 시작 템플릿을 생성해야 합니다. 이 템플릿에는 Amazon Machine Image(AMI)의 ID와 인스턴스 유형 등 EC2 인스턴스를 시작하는 데 필요한 파라미터가 포함되어 있습니다.

 

시작 템플릿은 EC2 Auto Scaling의 모든 기능은 물론 EC2의 최신 기능도 제공합니다. 이러한 기능으로는 EBS Provisioned IOPS 볼륨(io2), EBS 볼륨 태그 지정, T2 무제한 인스턴스, Elastic Inference, 전용 호스트 등의 최신 세대가 포함될 수 있습니다.

 

EC2 최신 기능을 사용할 수 있도록 시작 템플릿에서 Auto Scaling 그룹을 생성하는 것이 좋습니다. 시작 구성은 Auto Scaling 그룹에서 EC2 인스턴스를 시작하는 데 사용하는 인스턴스 구성 템플릿입니다.

 

시작구성을 생성할 때 시작할 EC2 인스턴스에 대한 정보를 지정합니다. 이러한 정보로는 AMI, 인스턴스 유형, 키 페어, 보안 그룹, 블록 디바이스 매핑이 포함됩니다. 또한 실행 중인 EC2 인스턴스의 속성을 사용하여 시작 구성을 생성할 수도 있습니다.

 

상세

 

그룹 용량

그룹은 자동 크기 조정 및 관리를 위한 논리적 그룹으로 간주되는 EC2 인스턴스의 모음을 포함합니다. 그룹을 통해 상태 확인 대체 및 크기 조정 정책 등 EC2 Auto Scaling기능을 사용할 수도 있습니다. 각 그룹으 최소 인스턴스 수를 지정할 수 있습니다. EC2 AutoScaling은 그룹의 크기가 이 값 아래로 내려가지 않도록 제어합니다.

 

원하는 용량은 그룹을 생성할 때 지정할 수도 있고 그룹 생성 후 원할 때 지정할 수도 있습니다. 그러면 원하는 용량에 해당하는 수의 인스턴스가 포함되도록 EC2 Auto Scaling이 그룹을 관리합니다. 크기 조정 정책을 지정하면 EC2 Auto Scaling에서는 애플리케이션 수요의 증감에 따라 인스턴스를 시작하거나 종료할 수 있습니다.

 

상세

 

EC2 Auto Scaling 호출

다음 도구를 사용하여 그룹에서 크기 조정을 호출할 수 있습니다.

  • 상태 확인
    지정된 수의 실행 인스턴스를 항상 유지하도록 그룹을 구성할 수 있습니다. 인스턴스가 비정상 상태가 되면 그룹에서는 비정상 인스턴스를 종료하고 이를 대체할 다른 인스턴스를 시작합니다.
  • CloudWatch 경보
    크기 조정 정책이 EC2 Atuo Scaling에게 특정 CloudWatch 지표를 추적하도록 명령합니다. 이 정책은 연결된 CloudWatch 경보가 ALARM 상태일 때 수행할 작업을 정의합니다.
  • 일정
    일정에 따라 크기를 조정할 수 있습니다. 그러면 크기 조정 작업이 시간 및 날짜의 함수로 자동으로 수행됩니다. 일정에 따른 크기 조정은 그룹의 인스턴스 수를 늘리거나 줄여야 할 때를 정확히 파악하고 있는 경우에 유용합니다.
  • 수동 크기 조정
    리소스 크기를 조정하는 가장 기본적인 방법입니다. 그룹의 최대 용량, 최소 용량 또는 권장 용량의 변경 사항만 지정합니다. EC2 Auto Scaling은 인스턴스를 생성 또는 종료하는 프로세스를 관리하여 업데이트된 용량을 유지합니다.

 

EC2 Auto Scaling을 사용하는 크기 조정 방법

  1. 예약 크기 조정
    알려진 로드 변경 전에 애플리케이션 크기를 조정할 수 있습니다. 예를 들어 매주 수요일에 웹 애플리케이션 트래픽이 증가하고 목요일까지 높은 상태로 유지되다가 금요일에 줄어들기 시작합니다. 웹 애플리케이션의 예측 가능한 트래픽 패턴에 따라 크기 조정 활동을 계획할 수 있습니다.

  2. 동적 크기 조정
    수요 변화에 대응하여 EC2 Auto Scaling 그룹의 용량 크기를 조정하는 방법을 정의합니다 .예를 들어 현재 인스턴스 2개에서 실행되는 웹 애플리케이션이 있다고 가정해 보곘습니다. 애플리케이션의 로드가 변화할 때 그룹의 CPU 사용률을 50% 정도로 유지하려고 합니다. 그러면 과도한 유휴 리소스를 유지하지 않고도 트레픽 급증을 처리할 수 있는 추가 용량을 확보할 수 있습니다.

  3. 예측 크기 조정
    트래픽 흐름의 일별 및 주별 패턴에 앞서 그룹의 EC2 인스턴스 수를 늘립니다. 예측 스케일링은 다음과 같은 상황에 적합합니다.
    • 주기적 트래픽(Ex_ 정규 업무 시간에 리소스 사용량이 높고 저녁, 주말에는 낮음)
    • On/Off가 반복되는 워크로드 패턴(Ex_ 배치 처리, 테스트, 주기적 데이터 분석)
    • 초기화가 오래 걸려서 확장 이벤트 중에 애플리케이션 성능이 저하되어 지연 시간이 현저하게 길어지는 애플리케이션

확장을 진행할 때는 조기에 빠르게 수행하고, 축소는 장기적/점진적으로 진행하는 것이 좋습니다.

 

유휴 리소스 (유효 X 유휴 O)
사용 가능한데 사용되지 않는 자원이나 요소를 말합니다. 이는 시스템이나 조직 내에서 여분의 자원이나 능력이 존재하며 현재 상황에서는 활용되지 않는 경우를 지칭합니다.

[유휴, 遊休 - 쓰지 않고 놀림.]

 

EC2 Auto Scaling을 사용해 비용 최적화

EC2 Auto Scaling은 동일한 그룹 내에서 여러 구매 옵션을 지원합니다. 단일 Auto Scaling 그룹 내에서 온디맨드 인스턴스 및 스팟 인스턴스 플릿을 시작하고 자동으로 크기를 조정할 수 있습니다. 스팟 인스턴스 사용 시에는 할인 혜택을 받을 수 있습니다. 그리고 예약 인스턴스 또한 Savlings Plan을 통해 온디맨드 인스턴스 요금 정가에도 할인 혜택을 받을 수 있습니다. 이러한 모든 요인을 함께 고려하면 EC2 인스턴스의 비용 절약 방식을 최적화하는 동시에 애플리케이션의 크기와 성능을 원하는 대로 조정할 수 있습니다.

 

EC2 플릿을 사용하면 EC2 인스턴스 유형의 조합을 정의하여 그룹의 원하는 용량을 구성할 수 있습니다. 이 용량은 각 구매 옵션 유형의 백분율로 정의됩니다. EC2 Auto Scaling은 그룹이 확장되거나 축소될 때 원하는 비용 최적화를 유지합니다. 혼합 플릿으로 구성된 그룹도 단일 플릿 그룹과 동일한 수명 주기 후크, 인스턴스 상태 확인, 예약 조정을 지원합니다.

 

상세

반응형

'자격증 > AWS SAA' 카테고리의 다른 글

[AWS SAA] 38. CloudFormation  (0) 2023.09.01
[AWS SAA] 37. IaC(Infrastructure as Code)  (0) 2023.09.01
[AWS SAA] 35. Elastic Load Balancing(ELB)  (0) 2023.08.30
[AWS SAA] 34. 경보 및 이벤트  (0) 2023.08.29
[AWS SAA] 33. AWS Log 서비스  (0) 2023.08.28