IT/Cloud Architect

[NCP] Auto Scaling Group(Classic platform) - 생성

송시 2022. 8. 25. 16:20
728x90

2022.08.24 - [IT/Cloud Architect] - [NCP] Auto Scaling Group(Classic platform - Launch Configration)

 

[NCP] Auto Scaling Group(Classic platform - Launch Configration)

영어와 IT 용어의 조합인 것 같다. 장비의 스펙을 위 아래로(scale up/down) 올리거나 줄이고 좌우로 확장하거나 줄이는(scale out/in) scale 이란 IT 용어와 자동이라는 의미를 뜻하는 auto 이것을 묶어서

songsiaix.tistory.com

 

ASG 를 위해서는 앞선 글 처럼 Launch Configration 을 생성해야 한다.

 

ASG 를 한다는 것은 고객의 원하는 바에 따라 자동으로 VM이 생성되고 곧 바로 서비스가 가능한 상태를 의미하기에

 

init script,  ACG, LB 등 필요에 따라 미리 만들어 두어야 한다.

 

ASG를 구성하는데에는 NAS와 같은 공유 파일시스템을 이용하는 경우에 적합하며, 개별 서버에서 관리되는 파일시스템 서비스라면 절대 적합하지 않다.

 

클래식 플랫폼에서 ASG 는

- 최대 30대의 VM을 생성할 수 있다.

- 기 생성한 LB는 최대 10개 까지 사용 할 수 있다.

- ASG 그룹 설정에서 최초 기대용량을 기입하지 않으면 최소용량으로 VM이 생성한다.

예: 최소용량이 0이고 기대용량을 기입하지 않으면, ASG 생성 후 아무런 VM도 생성되지 않는다.

예: 최소용량이 0이고 기대 용량이 2라면, ASG 생성 후 2개의 VM 이 생성 된다.

- ASG 를 통해 생성된 VM의 외부 통신이 가능하도록 돕는 NAT gateway 기능을 선택할 수 있다.

- 2가지의 방법으로 scaling 을 지원한다. 1. 스케쥴링(일정 시간에) 2. 이벤트(VM의 이벤트가 발생할때)

이벤트 방식은 VPC 환경과 설정 방법이 다름

 

ASG 구성하는 순서는 다음과 같다.

1. Launch Configration 선택

2. 그룹 설정

3. 정책/일정 설정

4. 통보 설정

5. 최종 확인

 

1 에서 앞서 만들었던 Launch Configration 을 선택한다

2 에서 ASG 의 이름을 정하고 서버가 기동될때 사용할 이름을 정하고, 최소/최대/기대 및 쿨다운 헬스 체크등을 선택한다

3 에서는 지금 바로 정하지 않아도 되며, 일정이나 정책을 넣는 부분이다. 

이미 정해져있다면 정책에 맞게 넣으면되고, 없다면 일단 넘어갈 수 있다.

4 에서 ASG 가 수행될때 메시지를 보낼 알람 수신인을 설정한다.

 

ASG를 만드는 것은 어려운일이 아니지만 이것을 잘 활용하는데에는 몇 가지 이해해야 하는 사항이 있다.

 

먼저 최소/최대/기대 용량에 대해서 알아보자

 

최대는 NCP내에서 30대로 이미 정해져 있지만 30대 까지 필요 없다면 불필요한 비용이 발생하지 않도록 최대 갯수를 정확하게 지정해야 한다.

 

최소는 이벤트 또는 일정에 감소 설정을 넣어두었다면, 최소를 0으로 했을 때 ASG를 통해 운영할 VM이 모두 없어지게 된다.

 

물론 그렇게 된다면 일정에 의한 증가라면 문제되지 않지만, 이벤트에 의한 증가를 해야 한다면 이벤트가 발생시킬 VM이 없기에 ASG를 통한 VM은 더 이상 생성되지 않게 된다.(이런 경우 수동으로 ASG에서 실행시켜주면 된다)

 

쿨다운이란 서버가 기동되어 NCP의 헬스체크를 통해 정상이라고 판단되더라도, 실제로 서버에서 동작하는 초기화 스크립트나, 서비스 기동을 위해 필요한 시간등이 있을 수 있다.

예를 들어 WAS 서비스를 기동하였을 때 ps 명령어 상에서는 프로세스 명이 확인이 되지만, 실제로 약 10여분간의 시간 동안 데이터를 읽어오거나, 모듈을 올리는 등의 시간이 필요하여 WAS 서비스를 10분 후에 해야하는 경우가 있다.

이와 비슷한 이유로 스케일 아웃에 의해서 서버가 방금 생성되었을 때 이벤트 알람이 발생했다 하더라도, 쿨다운 시간 동안에는 알람을 무시하는 설정이기도 하다.

 

정책설정에서 scaling 설정에는 3개의 설정 값이 있다.

1. 증감변경

2. 비율변경

3. 고정값

 

고정 값은 단순하게 특정 이벤트가 발생했을 때 그 숫자만큼 VM을 운영하는 것이다.

서비스를 제공하는데 있어서 정확하게 몇대의 서버를 필요로 하는지 정확하게 알때 효율적이다.

 

증감변경은 특정 이벤트가 발생했을 때 정해진 숫자 만큼 증가/감소를 하는 방식이다.

이벤트의 상태에 따라 몇개가 증가/감소 할 것인지를 파악하기 쉽다.

 

비율변경은 현재 그룹의 비율로 증가/감소 한다.

현재 그룹에 생성되어있는 VM 이 기준이기에 현재 0개의 VM이 있다면 비율이 몇 % 던 상관없이 증가하지 않는다.

(앞서 설명했던 것 처럼 현재 서버가 0개고, 최소 용량가 0 인 경우에는 이벤트가 발생할 서버가 없기 때문에 어차피 실행안된다, 위의 예는 수동으로 비율변경 정책을 실행했을 때를 통해 알 수 있다)

 

비율변경은 현재 서버 갯수 대비 %로 증가/감소를 하는데, 그룹내에 1대인 서버가 추가로 1대가 되기 위해서는 100%로 설정되어 있어야 한다.

추가된 1대로 인해 총 2대인 상황에서 100% 설정되어 있다면 이번에 증가할때에는 2대가 증가하여 총 4대가 된다.

총 4대의 서버에서 49%로(1.96) 설정되어 증가한다면 소수점 뒷자리는 절사되어 1개만 증가하게 된다.(반올림 없음을 의미)

2배수로 증가를 원한다면 100% 로 설정을 하고 한번에 모두 삭제하고자 할때에 100%로 설정하면 된다.

0.5배수로 증가를 원한다면 50%로 설정을 하면된다.

 

이처럼 비율 변경은 현재 그룹의 숫자에 비례하여 배수로 늘릴 수 있다.

 

728x90