🌦 Cloud

[AWS/SAA-03] 오토 스케일링 그룹 (Auto Scaling Group)

핑크빛연어 2023. 4. 24. 22:40

 

💝  EC2 오토 스케일링

✅ 오토 스케일링 그룹 (Auto Scaling Group)

✅ CloudWatch Alarm

✅ 스케일링 정책 / 동적 스케일링 정책

✅ 스케일링 지표

✅ 스케일링 휴지

 

 

 

🚨 오토 스케일링 그룹 (Auto Scaling Group)

✤ 클라우드에서 EC2 인스턴스를 자동으로 확장하고 축소하도록 조절하는 서비스

✤ ASG 목표

  • 증가한 서버의 로드에 맞춰 확장 (EC2 인스턴스를 추가) - 스케일 아웃 (Scale Out)

  • 감소한 서버의 로드에 맞게 축소 (EC2 인스턴스를 제거) - 스케일 인 (Scale In)

  • 최소 및 최대 수의 EC2 인스턴스가 실행 중인지 확인한다

  • 새 인스턴스를 로드 밸런서에 자동으로 등록

  • 이전 인스턴스가 종료된 경우 EC2 인스턴스 재생성

  • ASG 크기는 시간에 따라 변한다

  • LB 와 페어링하는 경우 ASG 에 속한 모든 EC2 인스턴스가 LB 에 연결된다

  • 한 인스턴스가 비정상이면 종료하고 이를 대체할 새 EC2 인스턴스를 생성한다

 ASG 는 무료. EC2 인스턴스에 대한 비용만 지불하면 된다

 AWS 에서의 ASG 동작 : 최소 용량, 희망 용량, 최대 용량 설정

 LB 와 함께 동작 → 좋은 조합이다

 

오토 스케일링 그룹 속성 (Auto Scaling Group Attributes)

  • 인스턴스 속성을 기반으로 ASG 를 생성하려면 시작 템플릿을 생성해야 함

  • 시작 템플릿 (A Launch Template)

     - EC2 인스턴스를 시작하는 방법에 대한 정보 포함

     - AMI + 인스턴스 타입

     - EC2 사용자 데이터

     - EBS 볼륨

     - 보안 그룹

     - SSH 키 쌍

     - EC2 인스턴스에 대한 IAM 역할

     - 네트워크 + 서브넷 정보

     - 로드 밸런서 정보

  • 최소 크기 / 최대 크기 / 초기 용량

  • 스케일링 정책 (Scaling Policies)

 

 

 

🚨 CloudWatch Alarms & Scaling

CloudWatch 경보를 기반으로 ASG 스케일 인/스케일 아웃 할 수 있다

지표(평균 CPU 또는 사용자 지정 지표)를 수집하고 모니터링한다

 지표는 전체 ASG 인스턴스에 대해 계산된다

 

CloudWatch

  • AWS 클라우드 리소스와 AWS 에서 실행되는 애플리케이션을 위한 모니터링 서비스

  • 지표를 수집 및 추적하고 로그 파일을 수집 및 모니터링하고 경보 설정

 

 

 

🚨 ASG 스케일링 정책 (Scaling Policies)

✤ 오토 스케일링을 실행하기 위한 조건

✤ 항상 현재 인스턴스 수준 유지 관리

  • 지정된 수의 실행 인스턴스를 항상 유지하도록 ASG 구성

 수동 스케일링(조정)

  • 최대, 최소 또는 원하는 용량의 변경 사항만 지정하는 경우 사용

 일정을 기반으로 스케일링(조정)

  • 확장 작업이 시간 및 날짜에 따라 자동으로 수행

 온디맨드 기반 스케일링(조정)

  • 수요 변화에 맞춰 ASG 크기를 동적으로 조정

 예측 스케일링 (Predictive Scaling)

  • 머신러닝을 사용하여 CloudWatch 의 기록 데이터를 기반으로 필요한 용량을 예측

  • AWS 내 오토 스케일링 서비스를 활용하여 지속적으로 에측을 생성 가능

  • 로드를 보고 다음 스케일링을 예측

 

 

 

🚨 ASG 동적 스케일링 정책 (Dynamic Scaling Policies)

✤ 동적 스케일 정책 3가지 유형

  • 대상 추적 스케일링 (Target Tracking Scaling)

  • 단순/단계 스케일링 (Simple/Step Scaling)

  • 예약된 작업 (Scheduled Actions)

 

대상 추적 스케일링 (Target Tracking Scaling)

  • 기본 기준선을 세우고 상시 가용이 가능하도록 ASG 를 확장하는 방식

  • ex) 평균 ASG CPU 를 약 40% 로 유지하도록 설정하고, ASG 가 목표값을 초과하면 EC2 인스턴스 증가

 

단순/단계 스케일링 (Simple/Step Scaling)

  • CloudWatch Alarm 의 지표를 기반으로 ASG 를 확장하는 방식

  • ex) CPU 사용률이 70% 초과해서 CloudWatch 경보가 작동되면 EC2 인스턴스 2 단위 추가, CPU 사용률이 30% 미만으로 CloudWatch 경보가 작동되면 EC2 인스턴스 1 단위 감소

 

예약된 작업 (Scheduled Actions)

  • 나와있는 사용패턴을 바탕으로 스케일링을 예상하는 방식

  • ex) 금요일 오후 5시에 최소 용량을 10으로 증가

 

 

 

🚨 스케일링 기반이 되는 지표 (Good Metrics  to Scale on)

✤ CPU 사용률 - 인스턴스 전체의 평균 CPU 사용률

✤ 대상별 요청의 수 - EC2 인스턴스 당 요청 수가 안정적인지 확인하기 위함

 네트워크 입출력량 - 애플리케이션이 네트워크에 연결된 경우

 커스텀 지표 - CloudWatch 에서 직접 지표 설정 가능

 

 

 

🚨 스케일링 휴지 (Scaling Cooldowns)

✤ EC2 인스턴스 증가 또는 감소하는 활동이 발생하면 휴지 기간(Cooldown Period) 을 가진다

✤ 스케일링 작업이 끝날 때마다 인스턴스의 추가 또는 삭제를 막론하고 기본적으로 5분 또는 300초의 휴지 기간을 갖는다

✤ 휴지 기간에는 ASG 가 추가 인스턴스를 실행 및 종료 할 수 없다

지표를 이용하여 새로운 인스턴스가 안정화될 수 있도록 하며 어떤 새로운 지표의 양상을 살펴보기 위함이다

 EC2 인스턴스가 안정적인 서비스 상태가 될 때까지 스케일링을 하지 않도록 차단하는 역할

 기본적으로 설정된 휴지가 있는지 확인

 활성화 시간이 빨라지면 → 휴지기간 단축 → ASG 상에서 더 많으 동적 스케일링 가능

  • 즉시 사용 가능한 AMI 를 이용하여 EC2 인스턴스 구성 시간을 단축하고, 이를 통해 요청을 좀 더 신속히 처리하는 것이 좋다

     - EC2 인스턴스 구성에 할애하는 시간이 적으면 즉시 적용이 가능하기 때문

 

 

 

728x90
반응형