Notice
Recent Posts
Recent Comments
관리 메뉴

즐겁게, 코드

서비스의 유연성을 위한 Auto Scaling Group 알아보기 본문

☁️ 클라우드/AWS

서비스의 유연성을 위한 Auto Scaling Group 알아보기

Chamming2 2022. 4. 9. 20:11
 

LINE의 2022년 신년 대응: 리모트 환경에서 트래픽 폭증에 대비하기 - LINE ENGINEERING

안녕하세요. 저는 LINE Plus 서비스 엔지니어링 팀의 권용찬이라고 합니다. 올해로 LINE에 입사한 지 4년 차입니다. 모르는 것도 없지만 다 알지도 못하는 애매한 연차라고 할 수 있겠습니다. 우리는

engineering.linecorp.com

카카오, 라인 등의 대규모 서비스 운영기를 읽어보면 연말에 몰리는 신년 인사 트래픽을 대비해 엄청난 준비를 하는 것을 알 수 있습니다.

 

AWS에서는 이처럼 특정 상황에서 트래픽이 너무 몰리는 것을 대비해 Auto Scaling Group(ASG)를 통해 인스턴스를 유연하게 구성할 수 있는데요, 예를 들어 연말에는 신년 인사 트래픽이 몰리니 서버 인스턴스를 자동으로 추가로 기동할 수 있고, 연말 시즌이 지나 어느 정도 여유가 생겼을 때는 인스턴스를 자동으로 중지(또는 제거)할 수 있습니다.

Auto Scaling Group

Auto Scaling Group(ASG)의 원리는 현재 ASG에 속한 인스턴스의 상태를 모니터링하다가, *사용자가 지정한 지표에 도달하면 자동으로 인스턴스의 스케일 아웃(Scale-out, 인스턴스 확장) 또는 스케일 인(Scale-in, 인스턴스 축소)을 수행합니다.

✅ 스케일링 지표는 트래픽 외에도 평균 CPU 사용량, 평균 네트워크 전송량 등 다양한 사전 규칙을 설정할 수 있으며, CloudWatch의 맞춤형 지표 를 활용해 현재 접속중인 유저 수 등 다양한 지표를 활용할 수 있습니다.

또한 ASG는 인스턴스의 스케일링뿐만 아니라, 쿠버네티스가 지향 상태(Desired State)를 유지하려 하듯 인스턴스의 개수를 일정하게 유지하는 역할도 수행합니다.

ASG를 처음 구성할 시, 실행중인 인스턴스가 없으면 Desired Capacity에 따라 새 인스턴스를 생성하는 모습입니다.

ASG 구성 요소

ASG를 구성할 때는 다음 요소들의 정보가 필요합니다.

  • 어떤 인스턴스를 생성할 것인가? - 인스턴스 시작 템플릿 또는 시작 구성
  • 생성할 인스턴스의 네트워크 및 서브넷 설정 
  • 로드밸런서 여부 및 설정
  • Scale-out (인스턴스 확장), Scale-in (인스턴스 축소) 조건

동적 스케일링 규칙

인스턴스 스케일링 규칙에는 몇 가지 유형이 존재하는데요, 먼저 동적 스케일링 규칙을 알아보도록 하겠습니다.

대상 추적 조정 정책 (Target Tracking Policy)

특정 지표의 목표값을 설정하고, 인스턴스가 해당 목표값을 유지하도록 합니다.

  • 예시
    • ASG 인스턴스의 총 CPU 사용량을 40%로 유지하고자 하는 경우
    • ASG 인스턴스에 들어오는 요청을 인스턴스당 1,000건 / 초당 이내로 유지하고자 하는 경우

단계 조정 및 단순 조정 정책 (Simple / Step Policy)

특정 지표가 설정한 임계치를 넘어설 경우, 인스턴스가 스케일링을 시도하도록 합니다.

  • 예시
    • ASG 인스턴스의 총 CPU 사용량이 70%를 초과하는 경우, 인스턴스 하나를 추가하도록 설정
    • ASG 인스턴스에 들어오는 요청이 인스턴스당 1,000건 / 초당을 초과할 경우, 인스턴스 하나를 추가하도록 설정
✅ TIP - 두 정책간 차이

단계 조정 정책과 단순 조정 정책은 동작 방법에 약간의 차이가 있는데요, AWS에서는 단순 조정 정책보다 단계 조정 정책을 사용할 것을 권장하고 있습니다.

예약된 조정 정책(Scheduled Actions)

특정 시간 또는 패턴에 따라 인스턴스 스케일링을 설정합니다.

  • 예시
    • 새벽 1시 ~ 새벽 5시 동안은 인스턴스 하나를 제거하도록 설정

예측 스케일링 규칙

예측 스케일링 규칙 은 CloudWatch의 기록 데이터를 머신러닝을 통해 학습한 후, 데이터를 기반으로 조정을 수행하는 규칙입니다.

주로 동적 스케일링 규칙을 적용하기 애매하거나, 반복적인 트래픽 또는 패턴이 발견될 때 유용하게 사용될 수 있습니다.

스케일링 쿨다운

마지막으로 ASG에는 쿨다운(Cooldown)이라는 요소가 존재합니다.

 

RPG 게임에서 스킬을 사용할 때 쿨다운이 있는 것처럼 ASG에서도 스케일링을 수행한 후 일정 시간(기본 5분) 동안은 조건을 만족해도 스케일링을 수행하지 않는데요, 이는 스케일링을 수행한 이후 지표가 안정화되었는지 관측하기 위한 시간이 필요하기 때문입니다.

반응형
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆