AWS Auto Scaling 간단 정리

K PizzaCola·2021년 6월 7일
4

Cloud

목록 보기
1/3
post-thumbnail

개요

클라우드 서비스를 이용하는 이유 중의 하나는 필요한 만큼만의 자원에 대한 비용을 지불할 수 있는 것이다. 초기에 서비스가 시작했을 때부터 10만명 이상의 사용자를 위한 서버를 구입하는 것은 비용 낭비이다.

또한 클라우드 서비스가 제공하는 확장성도 중요할 것이다. 초기에 100명이 사용하던 서비스가 이후 성장하면서 1만명, 10만명이 되었을 때 쉽게 확장할 수 있으면 좋을 것이다. 마찬가지로 주중에는 사용량이 적었다가 주말에 되서 사용량이 많아졌을 때에도 서버 자원을 낭비없이 줄였다 키웠다 할 수 있다면 인프라에 사용하는 비용을 크게 줄일 수 있을 것이다.

AWS는 이러한 확장성을 자동으로 해주는 AWS Auto Scaling 서비스를 제공한다.

확장의 형태

확장(Scaling)의 형태는 다음 두가지가 있다.

  • 수직 확장 (Vertical Scaling)
  • 수평 확장 (Horizontal Scaling)

수직 확장은 기기의 성능을 높이는 것 이다. 인텔 i3 CPU에서 i5로 교체하거나, 디스크 용량을 큰 것을 사용하거나이다. 수직 확장의 장점은 프로그램에서 굳이 크게 고려할 필요 없다는 것이지만, 단점은 어느 이상이 되면 비용이 기하 급수적으로 늘어나며, 동시에 그 효과는 점점 작아지는 것이다.

수평 확장은 기기를 여러개 사용하는 것이다. 같은 컴퓨터를 한대 더 구입하는 것이 그 예가 된다. 수평 확장의 장점은 수직 확장보다 비용이 저렴할 수 있으며, 확장 자체가 편리하다는 것이다. 단점은 시스템 전체가 수평 확장이 용이하도록 설계되어야 한다는 것이다.

Auto Scaling 구성 요소와 원리

AWS의 Auto Scaling은 Elastic Load BalancingAmazon CloudWatch로 구성된다.

Auto Scaling은 다음과 같은 사이클을 가진다.

  • Auto Scaling Group
  • Scale Out Event (Amazon CloudWatch, Schedule-based Event)
  • Instance 생성 (Launched)
  • Auto Scaling Group에 Instance 추가
  • Scale In Event
  • Auto Scaling Group에서 Instance 제거
  • Instance 종료 (Terminated)

Amazon CloudWatch

  • AWS 리소스를 모니터링하는 서비스
  • 기본으로 제공하는 메트릭 (EC2 CPU 사용량, EBS 용량 사용량, RDS...)
  • 직접 생성할 수 있는 Custom metric (EC2 메모리 사용량...)

ELB

  • 트래픽을 분산하는 용도로 사용한다.
  • L4 / L7 Load Balancer 두 종류

Auto Scaling 요금

AWS Auto Scaling은 따로 요금을 지불하지 않는다. 다만 Amazon CloudWatch + Instance / ELB 요금을 지불한다.

Auto Scaling 설정 방법

  • Auto Scaling Launch Configuration을 생성한다.
  • Auto Scaling Group을 생성한다.
  • Auto Scaling Group 확인

Auto Scaling 시작 구성

Launch Configuration은 Auto Scaling할 때, 어떤 인스턴스를 생성할 지에 대해 설정할 수 있다. 이는 EC2 Instance 생성과 거의 유사하다.

  • 이름
  • AMI
  • 인스턴스 유형
  • User data
  • 보안 그룹
  • 기타 등등

시작 구성은 생성 후 수정이 불가하다. 원래 있던 시작 구성에서 새로 생성하는 것은 가능하다.

Auto Scaling Group 구성

Auto Scaling Group은 반드시 하나의 시작 구성을 가지고 있어야 한다. 그리고 ASG가 작동하는 동안 시작 구성을 교체할 수 있다.

  • 이름
  • 사용할 시작 구성
  • min / max instance 수
  • VPC와 AZ
  • ELB 사용 여부
  • Scaling Policy (CPU 사용량, 네트워크 사용량 등등)

ASG 인스턴스 숫자 조정

  • 동적으로 조정
    • Scaling Policy
  • 수동으로 조정
    • Desired Capacity
  • 일정에 따라 조정
    • Scheduled Action

참고자료

profile
공부하는 개발자입니다.

1개의 댓글

comment-user-thumbnail
2021년 6월 7일

오왕...k 정리 잘하셨네요👍👍

답글 달기