Auto scaling
오토스케일링은 클라우드 환경의 가장 기본적인 요소들 중에 하나로,
갑작스러운 트래픽 집중에 서버, 스토리지 등의 자원이 자동으로 확장하면서, 안정적인 서비스를 유지하는 것
Amazon EC2 오토 스케일링
- EC2의 확장성을 위한 오토 스케일링
- 오토 스케일링 그룹을 헬스 체크하며 인스턴스 확인
- 특정 이벤트 발생, 스케일링 작업 수행에 의해 시작
- 인스턴스를 늘리는 것 외에 축소(down-scaling or scaling in) 하는 작업도 포함
- 가용성, 비용, 시스템 매트릭 등이 스케일링의 변수
- 4개의 스케일링 옵션
① Maintain: 고정된 수의 인스턴스를 유지
② Manual: MIN, MAX, 특정수 등으로 수동 설정한 수대로 인스턴스 유지
③ Schedule: 일정에 따라 인스턴스 수를 늘리거나 줄임
④ Dynamic: 시스템 매트릭 값에 따라 인스턴스 수를 늘리거나 줄임
EC2외의 Auto Scaling
- EC2 외의 다른 서비스들도 오토 스케일링 가능 e.g.) DynamoDB, ECS, EMR
- 모든 스택에 대한 중앙 집중형 스케일링 관리, Predictive 스케일링 포함
Scale
서비스의 흥행상황은 항상 유동적이다. 접속자가 많을 때도 있고, 적을 때도 있다. 어떤 서비스는 완만하게 성장하는 경우도 있고, 어떤 서비스는 특정 시간에 접속이 집중될수도 있다. 수강신청이나 귀성길 열차예매와 같은 업무를 처리하는 시스템이 그렇다. 예측하지 못한 순간에 시스템에 폭주하는 경우도 있다. 이런 상황은 물론 비즈니스의 관점에서는 행복한 순간이라고 할 수 있겠지만, 이에 대한 준비가 되어 있지 않다면 이것은 비즈니스적인 클라이막스를 두손 놓고 보내버리는 수 밖에 없다. 그렇다고 평소에 충분한 시스템을 준비하기에는 돈이 없다. 이런 상황에서 사용할 수 있는 서비스가 EC2와 ELB이다. EC2로 손쉽게 인스턴스를 생성하고, 이것을 ELB로 묶어서 서비스를 제공한다.
Auto Scaling
Auto scaling이란 정책에 따라서 시스템을 자동으로 늘리고 줄여주는 서비스다. 이를테면 이런식으로 동작한다. 갑자기 트래픽이 폭주하면 서비스에 참여하고 있던 서버들의 CPU 사용률이 점점 높아진다. 그러다 CPU 점유율이 80%를 넘게되면 미리 준비된 이미지(AMIs)를 이용해서 인스턴스를 생성하고, ELB에 연결해서 트래픽을 새로 생성한 EC2 인스턴스에 분산한다. 트래픽이 줄어들면서 CPU 사용률이 20% 아래로 떨어지면 EC2 인스턴스가 순차적으로 제거된다. 비용을 절감할 수 있다.
인스턴스를 만들기위한 이미지가 AMI(Amazon Machine Image : .iso 같은 파일) 하나가 존재해야한다
scale out : 인스턴스를 이미지 파일에 기반하여 지정된 개수 만큼 생성(늘린)한다
scale in : 생성되어 있는 인스턴스를 내린다
오토 스케일이란 : 유저가 몰릴 경우나 유저들이 빠져나갈때에 대한 기준(ex : CPU 부하 %)을 만들어 놓고 그에 따라 스케일 in ,out 이 자동적으로
이루어지도록 하는 것을 말함 (이 것이 클라우드의 매력이랄까..)
요금은 사용한 만큼 올라가고 사용하지 않은 만큼 내려가긴 하지만 거진 오토스케일링 자체를 사용하지 않을 경우 관련하여 함께 켜진 기능들을
구석 구석 다 꺼주어야 비용절감을 할수 있다