AWS - 7 [ASG(오토스케일링)]

_Block·2022년 9월 8일
0

AWS

목록 보기
8/27
post-thumbnail
post-custom-banner

🔥 ASG 개요

현실에서는 웹사이트와 애플리케이션이 변경이 되기 마련이며, 트래픽이 갑자기 증가하는 현상도 발생하기 마련입니다.

이러한 상황에 맞춰서 스케일 아웃이 필요하며, 부하가 증가되어 더 많은 서버가 필아할수록 거기에 맞춰서 EC2인스턴스를 추가하는 것을 말합니다.

  • 반대로 스케일 인은 EC2인스턴스를 제거하는 것을 말합니다.

오토 스케일링 그룹은 EC2인스턴스가 일정량만큼 증가하거나 줄어들도록 만들 수 있는데 이는 ASG에서 실행되는 머신의 최대 갯수를 설정해야 합니다.

ASG에는 로드밸런서에 자동으로 새 인스턴스를 추가해주는 기능도 있습니다.

이떄까지는 수동으로 로드밸런스에 EC2인스턴스(타겟)을 설정하였지만 자동화 하여 작업을 할 수 있는 툴을 제공합니다.

🐾 시작 구성

AMI와 인스턴스 유형 , EC2 유저정보등을 설정하는 단계이며 수동으로 인스턴스를 생성한 것과 거의 동일합니다.

  • 크기, 용량 및 기대 용량도 설정을 하며 ASG의 네트워크와 서브넷, 로드밸런스 등을 설정하는 단계 입니다.

🐾 알람

쉽게 설명을 하자면 자동으로 트래픽이 너무 몰리면 EC2인스턴스를 추가하라고 알려주고 반대면 줄이라고 알려주는 것을 말 합니다.

ASG는 해당 알람을 기반으로 동작을 하며 평균 CPU같은 메트릭 = 상태를 모니터링 하면서 전반적인 평균으로 계산이 됩니다.

  • 이떄 최소, 최대 이러한 수치는 없고 오로지 평균으로 비교가 됩니다.

이러한 매트릭이라는 상태는 커스텀하게 만들 수 있습니다.

CPU뿐만이 아니라 인스턴스당 요청을 1000개로 설정을 할 수도 있고, 연결된 유저의 숫자도 가능합니다.

🐾 요약

  1. ASG는 스케일링 정책을 만들 수 있다.
  • custom하게 만들어 원하는 대로 EC2인스턴스의 숫자를 조율 가능하다.
  1. ASG는 시작 구성이나 시작 템플릿이 존재한다.
  • 항상 최신 버전으로 구성이 됩니다.
  1. 비용
  • ASG그룹 자체는 무료이지만 그룹에서 실행되는 EC2인스턴스 등은 유료이다.
  1. 자동 인지
  • EC2인스턴스가 종료될 경우 자동으로 다른 EC2로 교체해 준다.
  • 부수적으로는 ASG는 EC2가 교체 되어도 ASG는 재시작 할 필요가 없습니다.

🔥 ASG 실습

EC2 대시보드에 접속하여 Auto Scalling 그룹으로 이동을 합니다.

이동을 한 뒤에 시작 템플릿 생성을 클릭하여 기본적인 EC2인스턴스를 생성해 준뒤에 생성된 EC2템플릿으로 선탁하여 다음 버튼을 클릭합니다.

이후 VPC를 간단하게 default값으로 설정한뒤에 다음을 클릭합니다.

  • VPC에 대해서는 후에 다루어 보도록 하겠습니다.

이후 로드 밸런서를 선택 해야 합니다.

선택을 하지 않을 수도 있으니 이러한 부분은 입맛에 맞게 사용하시면 됩니다.

  • 저 같은 경우에는 기존에 있는 로드 밸런서에 연결을 선택하였습니다.

그다음으로는 상태확인 값을 설정합니다.

상태 확인이라고 하면 EC2가 사용 가능한지, 또는 ELB(로드밸런스)가 해당 EC2에 접근이 가능한지를 검증하는 부분으로 유예기간을 두어 일정 시간을 투자 할지를 선택 가능합니다.

  • 만약 해당 사항에 문제가 있다면 자동으로 ASG에서 다른 EC2로 대체하게 됩니다.

ELB부분까지 체크하여 다음을 클릭합니다.

그다음으로는 그룹의 크기를 설정하는 부분이 나옵니다.

- 원하는 용량 : 실행되는 EC2	인스턴스의 갯수를 말합니다.

- 최소 용량 : 스케일 인 될떄 최소로 유지할 EC2인스턴스의 갯수를 말합니다.

- 최대 용량 : 스케일 아웃될떄 최대로 실행 될 EC2인스턴스의 갯수를 말합니다.

이러한 부분은 정책을 실습할떄 수정할 것이기 떄문에 일단은 그대로 계속 다음 버튼을 클릭하여 ASG생성을 마무리 합니다.

이렇게 만들어진 ASG를 클릭하여 세부정보 및 활동을 확인 가능합니다.

  • 활동 페이지에 가면 작업 기록에서 만들어지는 또는 삭제되는 EC2인스턴스 기록들을 확인 가능합니다.

현재 저의 그룹 크기와 활동 기록입니다.

이것을 이와 같이 수정을 하여 업데이트를 누른 후 일정시간을 기다리게 되면 활동기록에 새로운 EC2인스턴스에 대한 결과가 나오게 될 것입니다.


이처럼 두개의 EC2가 만들어 지는 것을 확인해 볼 수 있습니다.

🔥 ASG 스케일링 정책

🐾 대상 추적 스케일링

가장 단순하고 설정하기도 쉬운 정책입니다.

예를 들면 모든 EC2인스턴스에서 평균 CPU 사용률을 추적하여 이 수치라 40%를 유지 할 수 있게 EC2를 조율합니다.

🐾 단순과 단계 스케일링

비슷하면서도 다릅니다.

예를 들면 ASG의 평균 CPU가 70%를 넘어가면 2개의 인스턴스를 추가하고 30%보다 안되면 인스턴스를 한개 제거하는 것으로 설명 가능합니다.

이 정책은 한번에 추가될 인스턴스와 삭제될 인스턴스를 설정할 필요가 있습니다.

🐾 예약 스케일링

나와 있는 사용 패턴으로 조율하는 것을 말합니다.

예를들면 금요일마다 이벤트를 하기 떄문에 많은 인스턴스가 필요하다면, 금요일마다 인스턴스를 자동으로 늘리는 방식으로 작동합니다.

즉 운영자가 예정되어 있는 이벤트에 따라서 설정값을 바꾸는 겂을 말합니다.

🐾 예측 스케일링

이 방식은 이름에서도 알 수 있듯이 예측하여 자동으로 스케일링을 조율하는 것을 말합니다.

🚀 스케일링 휴지

일종의 쉬는 시간 입니다.

ASG가 스케일링 정책에 따라서 인스턴스를 수정 하였을떄 기본적으로 5분정도의 쉬는 시간을 가지게 됩니다.

  • 이 기간에는 추가로 인스턴스를 생성하거나 삭제 불가능 합니다.

이러한 시간이 필요한 이유는 새로운 인스턴스가 안정화될 수 있또록 하기 위함이기 떄문에

후에 설정된 휴지가 있는지 확인해야 합니다.

profile
Block_Chain 개발자 입니다. 해당 블로그는 네트워크에 관한 내용을 다루고 있습니다.
post-custom-banner

0개의 댓글