Infra/AWS
AWS EC2 auto scaling 이해하기
민돌v
2024. 2. 28. 18:23
AWS 단일 EC2 서버에 Auto Scaling 을 적용하기전 공식문서를 읽고 정리한 글 입니다.
AWS 생태계에서 EC2 Auto Scaling 은 작은단위의 서비스로써, AWS의 다양한 서비스에 거의대부분 적용되는 서비스 같다.
모듈식으로 서로서로 연계되는 AWS에서 Auto Scaling 알아보자!
[목차]
- Auto Scaling 을 사용하고자 하는 이유
- Scale up 과 Scale Out
- Blue Green 배포
- Auto Scaling 이란
- Auto Scaling 특징 및 장단점
- AWS EC2 Auto Scalig Group 적용 하기
1. Auto Scaling 을 사용하고자 하는 이유
Scale up 과 Scale Out
인프라를 확장하는 2가지 개념
- scale up : 인프라 자체의 성능을 끌어올린다. (용량 증가, cpu 성능증가 등 → 간편하지만 비용이 많이들고 비효율적이다.)
- scale out : 인프라를 확장한다. (1개의 서버 → 2개의 서버, 이런식으로 분산처리할 수 있도록 확장한다.)
Blue Green 배포
- AWS Code Deploy 의 Blue/Grean 배포 방식을 사용하여 무중단 서비스 배포 인프라 환경을 구축하기 위해서는
AWS EC2 Auto Scaling 이 적용되어야 합니다.
그렇기 때문에 적용하기전 개념을 알아보고자 합니다.
2. Auto Scaling 이란
- AWS 공식문서에 의하면, Auto Scaling 이란 AWS 에서 지원하는 EC2의 가용 인스턴스 수를 조절하는 기능이며,
- 이를 Auto Scaling group으로 설정할 수 있습니다.
- EC2 Auto Scaling Group에서는 최소 인스턴스와 최대 인스턴스 수를 정할 수 있으면 EC2의 가용 범위는 이를 넘지 않도록 조절한다고 합니다.
- 즉 AWS Load Balancing과 함께 사용한다면 들어오는 트래픽에 따라서, 트래픽을 받아줄 EC2의 물리서버 자원을 줄이거나, 늘려서 가용성을 확보할 수 있도록 하는 서비스입니다.
3. Auto Scaling 특징 및 장단점
특징
- AWS EC2 Auto Scaling Group을 사용하여 인스턴스환경을 구성한다면, EC2 인스턴스가 Auto Scaling 그룹으로 묶여 관리되어, 1개의 물리서버(인스턴스)를 논리적 단위로 취급할 수 있습니다.
- 이에 대한 장점은 아래와 같습니다.
장점
- 비용 무료
- Auto Scaling 자체의 비용은 무료이며, 사용한 EC2 인스턴스 물리서버의 비용만 지불하면 됩니다.
- 실행중인 인스턴스의 상태 모니터링
- auto scaling group을 설정하면 EC2 상태와 가용성을 자동으로 모니터링하여 사용자가 설정한 적정한 양의 정상적인 인스턴스 수를 유지하도록 조절한다고 합니다.
- 가용영역 간 균형 조정
- AWS 는 각 지역(Region) 간 독립된 가용영역을 가지고 있습니다.
- Auto Scaling Group으로 어떠어떠한 가용영역들을 사용할 것인지 선택하면 각 가용영역을 고르게 사용할 수 있도록 조정한다고 합니다.
- 로드 밸런싱 및 확장성
- Elastic Load Balancing 또는 VPC Lattice 로드 밸런싱 및 상태 확인을 사용하여 애플리케이션 트래픽을 정상 인스턴스에 고르게 분배할 수 있습니다.
- 또한 이에 맞춰 필요한 용량을 줄였다가 늘렸다를 할 수 있습니다.
- 인스턴스 새로 고침
- AMI 또는 시작 템플릿을 업데이트할 때 순차적으로 인스턴스를 업데이트하는 메커니즘을 제공합니다.
단점
- 비용 오버슈팅의 가능성
- Auto Scaling을 사용하여 효과적으로 확장성과 가용성을 확보할 수 있지만, 예상밖의 이슈로 갑작스러운 오토스케일링이 촉발될 수 있는 경우가 있고 이로인한 폭발적인 요금증가가 생길 수도 있다고 합니다.
- 이를 방지하기 위해서는 지속적으로 리소스를 관리하고 트래픽이 들어오는 패턴을 분석하여 어느 시점에 어디까지 서버를 확장할 것인지에 대한 세밀한 관리가 요구됩니다.
- 성능 저하
- 스케일링 작업을 하는 동안 Ratency(지연 시간)이 늘어나고 장애가 발생할 확률이 존재한다고 합니다.
- 이로인해 동적으로 리소스를 할당하기에 발생되는 기본적인 성능저하가 있을 수 있습니다.
참고