일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kubernetes
- 리액트
- 파이썬
- node.js
- AWS
- 솔리디티
- HTML
- 클라우드
- 이더리움
- 쿠버네티스
- 백준
- 알고리즘
- 웹
- TypeScript
- 가상화
- 타입스크립트
- k8s
- es6
- docker
- 이슈
- 블록체인
- 백엔드
- react
- 컴퓨터공학
- JavaScript
- BFS
- 프론트엔드
- CSS
- 자바스크립트
- next.js
- Today
- Total
즐겁게, 코드
서비스의 유연성을 위한 Auto Scaling Group 알아보기 본문
카카오, 라인 등의 대규모 서비스 운영기를 읽어보면 연말에 몰리는 신년 인사 트래픽을 대비해 엄청난 준비를 하는 것을 알 수 있습니다.
AWS에서는 이처럼 특정 상황에서 트래픽이 너무 몰리는 것을 대비해 Auto Scaling Group(ASG)를 통해 인스턴스를 유연하게 구성할 수 있는데요, 예를 들어 연말에는 신년 인사 트래픽이 몰리니 서버 인스턴스를 자동으로 추가로 기동할 수 있고, 연말 시즌이 지나 어느 정도 여유가 생겼을 때는 인스턴스를 자동으로 중지(또는 제거)할 수 있습니다.
Auto Scaling Group
Auto Scaling Group(ASG)의 원리는 현재 ASG에 속한 인스턴스의 상태를 모니터링하다가, *사용자가 지정한 지표에 도달하면 자동으로 인스턴스의 스케일 아웃(Scale-out, 인스턴스 확장) 또는 스케일 인(Scale-in, 인스턴스 축소)을 수행합니다.
✅ 스케일링 지표는 트래픽 외에도 평균 CPU 사용량, 평균 네트워크 전송량 등 다양한 사전 규칙을 설정할 수 있으며, CloudWatch의 맞춤형 지표 를 활용해 현재 접속중인 유저 수 등 다양한 지표를 활용할 수 있습니다.
또한 ASG는 인스턴스의 스케일링뿐만 아니라, 쿠버네티스가 지향 상태(Desired State)를 유지하려 하듯 인스턴스의 개수를 일정하게 유지하는 역할도 수행합니다.
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분) 동안은 조건을 만족해도 스케일링을 수행하지 않는데요, 이는 스케일링을 수행한 이후 지표가 안정화되었는지 관측하기 위한 시간이 필요하기 때문입니다.
'☁️ 클라우드 > AWS' 카테고리의 다른 글
예약 인스턴스와 스팟 인스턴스로 EC2 비용 절감하기 (0) | 2022.04.17 |
---|---|
S3 버킷 데이터 암호화 방법 (0) | 2022.04.10 |
프라이빗 클라우드 구축하기 - VPC란 무엇인가 (0) | 2022.04.06 |
EC2 배치 그룹 알아보기 (0) | 2022.04.03 |
AWS S3를 활용해 이미지 서버 구축하기 - 클라이언트 편 (0) | 2021.05.18 |