Amazon Auto Scaling

khm_studylog·2023년 1월 24일
0

cloud

목록 보기
12/14

가용성

가용성이란, 해당 시스템이나 서비스가 가동 및 실행되는 시간의 비율을 말합니다.

매우 중요한 업무 시스템이나 평상시 서비스 중지 및 다운타임을 가져갈 수 없는 시스템을 설계해야 하는 경우 인프라의 가용성을 극대화 할 수 있는 아키텍처로 인프라를 구성합니다.

확장성

확장성이란, 서비스나 응용프로그램이 증가하는 성능 요구에 맞게 향상될 수 있는 정도를 말합니다.

동시 접속자가 100명인 시스템이 있다고 가정할 때 특정 시즌이나 이벤트로 인해 동시 접속자가 10배에서 100배 이상 많이 접속하는 경우 확장성이 높은 시스템은 사용자 증가에 따라 시스템의 자원이나 리소스를 손쉽게 추가/삭제할 수 있습니다.

이러한 확장성은 물리적 하드웨어 환경에서 Scale upScale out 이라는 2가지 확장성 전략을 이용하여 구현할 수 있습니다.

Scale Up

단일 하드웨어에 대해 시스템 리소스(프로세서, 메모리, 디스크, 네트워크 어뎁터)를 추가하거나 기존 하드웨어를 더욱 강력한 것으로 교체하는 작업

Scale Out

서버를 여러 대 추가하여 처리 능력을 향상시키는 방법

Amazon Auto Scaling

Amazon Auto Scaling은 Amazon Web Services에서 제공하는 서비스 중 가장 클라우드답다고 할 수 있습니다.

전세계 게이머를 대상으로 신규 모바일 게임을 오픈하는 경우 이벤트와 홍보를 통해 많은 사용자가 동시에 접속하게 됩니다.

클라우드가 아닌 일반 H/W로 시스템을 구성한다면 사용자의 접속 예상 최대치를 산정하여 H/W를 구매해야 합니다.

비용적인 측면에서 보면 많은 초기 투자가 필요하며, 사용자가 줄어 들어 더 이상 많은 시스템이 필요하지 않더라도 구매했던 H/W를 다시 처분할 수 없습니다.

Amazon Web Services의 Auto Scaling을 사용한다면 초기 H/W 구매나 투자는 필요하지 않습니다.

서비스 오픈 초기 서버의 사용자가 급증하면 Auto Scaling을 사용하여 인스턴스를 늘려 성능을 유지하고, 이용자가 줄어 평상시 상황이 유지되면 인스턴스를 자동으로 줄여 비용을 줄이는 효과를 볼 수 있습니다.

Amazon Web Services Auto Scaling은 서버나 애플리케이션을 모니터링하고 리소스를 자동으로 조정(Scale In/Scale Out)하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지할 수 있습니다.

  • 사용자가 정의한 조건에 따라 EC2 용량이 자동으로 확장/축소
  • 실행 중인 EC2 인스턴스의 수를 원하는 수준으로 유지 가능
  • 수요가 급증할 경우 인스턴스의 수를 자동으로 증가(Scale In)
  • 수요가 적을 경우 자동으로 용량을 감소시켜 비용 낭비를 최소화(Scale Out)
  • 수요 변화가 맞지 않은 애플리케이션과 사용량이 시, 일, 주 단위로 변하는 애플리케이션 모두에 알맞은 상품

Amazon Auto Scaling 구성 요소

Amazon Auto Scaling 그룹

Amazon Auto Scaling 그룹은 인스턴스의 조정 및 관리 목적으로 구성된 논리적 그룹으로 Auto Scaling을 수행하는 인스턴스의 모음입니다.

예를 들어, B2B용 웹 사이트를 여러 인스턴스에서 서비스한다면 애플리케이션의 성능을 향상시키기 위해 Auto Scaling 그룹을 사용하여 지정된 조건에 따라 자동으로 인스턴스 수를 늘리거나, 비정상적으로 동작하는 경우 고정된 수의 인스턴스를 유지하거나, 비용 절감을 위해 인스턴스의 수를 자동으로 조정할 수 있습니다.

이러한 Auto Scaling 그룹은 인스턴스의 수를 조건에 따라 자동 조정 및 관리하는 Amazon Auto Scaling의 핵심 기능입니다.

시작 구성

시작 구성은 Auto Scaling 그룹에서 인스턴스를 시작하는 데 사용되는 템플릿입니다.

시작 구성을 생성하는 경우 Amazon Machine Image(AMI), 인스턴스 유형, 키 페어, 하나 이상의 보안 그룹, EBS 등 인스턴스에 대한 정보를 지정합니다.

시작 구성은 여러 개의 Auto Scaling 그룹에 지정될 수 있으나, Auto Scaling 그룹은 하나의 시작 구성만을 지정할 수 있습니다.
또한 시작 구성은 한 번 생성한 이후에는 수정/변경할 수 없습니다.
따라서 시작 구성을 변경하여 Auto Scaling 그룹에 적용하고자 한다면, 시작 구성을 새롭게 생성하여 Auto Scaling 그룹을 업데이트 해야 합니다.

Amazon Auto Scaling 그룹 조정

인스턴스의 수를 늘리거나 줄이는 기능입니다.

조정 작업은 이벤트와 함께 시작되거나, Auto Scaling 그룹의 인스턴스를 시작하거나 종료하도록 수행하는 조정 작업과 함께 수행되빈다.

인스턴스의 조정 옵션

  • 현재 인스턴스 수준 유지 관리
    : 최소 또는 항상 지정된 수의 인스턴스를 실행 유지 관리하도록 구성
  • 수동 조정
    : Auto Scaling 그룹에서 최소, 최대 또는 원하는 용량의 변경 사항을 조정 변경
  • 일정을 기반으로 조정
    : 예측 가능한 일정에 따라 수요가 증가하거나 감소하는 경우 일정에 따른 확장 및 축소 작업을 시간 및 날짜 함수를 통해 자동으로 수행되도록 구성
  • 온디맨드 기반 조정
    : 리소스를 조정하는 가장 효과적인 방법으로 인스턴스의 CPU 사용률이 15분 동안 90% 유지될 때마다 인스턴스를 확장하도록 구성하는 정책을 생성할 수 있습니다.
    이는 변화되는 조건에 따라 효과적으로 자원의 조정을 가능하게 합니다.
    CPU, 메모리 사용량, 네트워크의 대역폭이 일정 수준 이상인 경우 새로운 인스턴스를 시작하고, 네트워크 대역폭이 다시 내려가면 인스턴스를 종료하는 정책을 수립하여 적용할 수 있습니다. 이러한 모니터링 기반의 조정은 2개의(확장/축소) 정책을 통해 작업을 수행합니다.

실습 1. ELB(Elastic Load Balancing) 설정하기

Auto Scaling 서비스에 사용될 ELB 사전 구성
[서비스]-[EC2]-[로드 밸런싱]-[로드밸런서]-[로드밸런서 생성]-[Classic Load Balancer 생성]

탄력적 IP주소 할당

VPC 설정

로드밸런서 이름 : tutorial-AutoScaling-ELB
LB 생성할 VPC : tutorial-vpc
서브넷 선택 : [Load Balance 처리할 퍼블릭 서브넷 선택]

보안 그룹 할당에서 Tutorial Security Group 생성 후 선택

EC2 인스턴스 추가 페이지에서 변동사항 없이 다음 단계로 이동하여 로드밸런서를 생성한다.

실습 2. Auto Scaling 설정하기

[Auto Scaling]-[Auto Scaling 그룹]-[Auto Scaling 그룹 생성]

시작 구성 생성 페이지 설정

[EC2]-[Auto Scaling 그룹]-[Auto Scaling 그룹 생성]

그룹 이름 : AutoScaling Group
네트워크 : tutorial-vpc
서브넷 : [기존에 생성된 퍼블릭 서브넷]
로드 밸런싱 : 기존 로드 밸런서에 연결

[Auto Scaling 그룹]으로 이동하여 정책이 정상적으로 생성되었음을 확인

[로드 밸런싱]-[로드밸런서] 페이지에서 ELB 선택 후 [상태 검사]-[상태 검사 편집]-[Ping 경로]를 /(root)로 변경

[로드밸런서]에서 확인한 ELB DNS 정보를 확인 후 페이지가 정상적으로 로드되었음을 확인

안된다....아직 Auto Scaling 그룹 상태가 용량 업데이트 중이어서 그런듯

인스턴스 생성 300초 이후 [Generate Load] 버튼을 눌러 CPU의 부하가 100%로 증가함을 확인

생성된 부하로 인해 Auto Scaling 그룹의 목표 용량이 2로 조정되면서 인스턴스가 생성되었음을 알 수 있다.

원래는 인스턴스가 1에서 2로 조정되면서 Auto Scaling이 반영됨을 확인 가능


출처 : 아마존 웹 서비스 AWS Discovery Book
https://m.blog.naver.com/PostView.naver?blogId=6yujin6&logNo=221716853151&referrerCode=0&searchKeyword=tutorial%20vpc

0개의 댓글