AUTO SCALING
쉽게 설명하자면 다양한 네트워크 자원(메트릭)을 모니터링하고 모니터링 결과에 대응하여 서버 사이즈를 자동(scale out, scale in)으로 조절해주는 기술입니다.
ex) 인스턴스에 대한 트래픽이 증가했다고 했을때 자동으로 같은 configuration의 인스턴스를 만들어 부하분산을 할 수 습니다.
장점
1. 규모 조정을 신속하게 설정
2. 좋은 규모 조정 의사 결정
3. 자동으로 성능 유지 : 예측 불가능한 변화에도 최적의 애플리케이션 성능과 가용성을 유지할 수 있음
4. 필요한 만큼만 지불 : 사용되는 리소스, 모니터링에 필요한 CloudWatch에 한해서만 비용 지불
설정값
속성 | 설명 |
LAUNCH TEMPLATE | 오토스케일링 그룹에 대한 서버 사양/설정 정의 |
DESIRED | 오토스케일링시 서버 수 지정 |
MINSIZE | 그룹 최소 유지 서버 수 (1개까지도 가능) |
MAXSIZE | 그룹 최대 유지 서버 수 |
HEALTH CHECK | 서버가 정상적인 활동을 하고 있는지 확인하는 것 → ALB에도 존재함 |
HELATH CHECK GRACE TIME | 신규 생성된 서버가 정상적인 서비스를 실행하기 위해 필요한 초기 준비 시간 |
COOL DOWN TIME | 오토스케일링시 서비스 안정화 까지의 워밍업 시간(모니터링 서비스에 대한 알람이 무시되고 그룹 내 서비스가 부하분산을 할 수 있을 때까지 대기함) |
모니터링 항목
디스크의 사용률이 아닌 실제 디스크가 읽고 쓴 바이트를 검사하기 때문에 정밀한 성능 판단 자료를 제공
모니터링 항목 | 상세 항목 |
CPU | used(%) |
NETWORK | IN/OUT(BYTES), IN/OUT(PACKETS) |
DISK I/O | READ/WRITE, READ/WRITE OPERATIONS |
LOAD AVERAGE | 1,5,15분, 1,6시간 단위 |
동작 방식
1. 특정 주기마다 로드밸런서의 네트워크 정보와 서버의 시스템 리소스 매트릭 정보를 모니터링
2. 지정한 임계치에 벗어나는 것을 감지하면 auto scaling 그룹으로 알림 발송
3. auto scaling은 scale out, scale in 하는 방식으로 이에 자동으로 대응함
I. 등록한 정책에 부합할 시 지정된 서버 수만큼 프로비저닝 작업을 시작함
II. Health check를 통해 서버 상태 확인 후 다른 서버와 동일하게 운용되며 클라이언트의 요구 트래픽을 처리
LAUNCH TEMPLATE
사전에 정의한 환경 설정 정보를 그대로 이용해 인스턴스를 생성하기 위한 템플릿을 만드는 것으로 이를 통해 더욱 간단하게 여러 인스턴스를 생성하는 것도 가능하며 위에서 말했듯이 부하분산을 위한 auto scaling 작업에 사전적으로 필요한 작업
설정법
AWS EC2의 lauch template 또는 시작 템플릿으로 이동합니다.
auto scaling으로 이용하기 위해서 auto scaling 지침을 선택합니다.
여기서부터는 EC2 설정과 같습니다.
네트워크 설정은 일반적으로 인스턴스에 대한 빠른 생성을 위해서 선택할 순 있겠지만 Auto scaling을 위해 사용할땐 Auto scaling group의 네트워크 설정을 따라가기 때문에 네트워크 설정을 구성하지 않아도 됩니다. 보안 그룹을 선택해줘야 하더군요...! 오랜만에 복습 느낌으로 해보는 거였는데 까먹고 있었습니다. 여기에서 보안 그룹은 사용할 서브넷의 보안그룹을 지정해주셔야 합니다. 서브넷 설정은 Auto scaling을 따라가기 때문에 괜찮습니다.
Auto scaling group 용 ALB 구성
대상그룹을 생성해줍니다. 여기서 주의할 점은 대상그룹 생성에서 지정해주는 대상 등록 과정에 있어 인스턴스 등록을 하지 않습니다.
ALB 설정은 기본 설정과 똑같습니다. 밑의 글을 참고하시는 편이 좋을 것 같습니다.
https://404notonc.tistory.com/86
AWS 로드 밸런서 기초 설정
https://404notonc.tistory.com/73 220102 AWS 이론 공부 IAM 대시보드 유저관리 대시보드임 , 서버나 뭐든 당연히 루트 계정으로 파일을 만지는 것은 좋지 않음 따라서 IAM 대시보드를 통해 사용자 계정의 그
404notonc.tistory.com
Auto scaling group
마찬가지로 EC2의 Auto scaling 그룹으로 이동
시작 템플릿에서 앞서 설정했던 시작 템플릿을 선택해 줍니다.
auto scaling에 대한 vpc와 서브넷을 지정해줍니다. ASG가 두개 이상의 서브넷을 사용하게 할 수도 있고 그저 하나의 서브넷을 사용하게 할 수도 있습니다.
앞서 설정해놨던 로드 밸런서를 지정해줍니다. 따라서 ASG에 인스턴스가 생성될때마다 대상 그룹에 인스턴스가 자동으로 등록이 됩니다. ASG는 사실 로드 밸런서 없이도 사용 가능합니다.
상태 확인 유예기간 : 위에서 말했던 HELATH CHECK GRACE TIME 기본값은 5분이고 설정하고 싶은 값으로 설정할 수 있음
원하는 용량(영어론 어떤지 모르겠지만) : 일상 상태에서 사용할 인스턴스의 수
최소 용량 : 최소로 유지할 인스턴스 수
최대 용량 : scale out 시 최대로 증가시킬 수 있는 인스턴스의 수
Name 태그를 설정한 뒤 그룹 생성 하시고 몇 분 후에 생성이 완료됩니다.
Name 태그를 통해 지정해준 인스턴스가 생기는 것을 볼 수 있습니다. Name 태그를 지정해주셔야지 생성될 때마다 이름을 지정해 생성됩니다.
하하 저는 보안 그룹을 설정해주지 않는 멍청한 행동을 해서 로드 밸런서를 통한 접속이 되지 않았지만 여러분은 저같은 실수만 하지 않는다면 문제없이 구축될 것입니다.
'네트워크 > 클라우드 컴퓨팅' 카테고리의 다른 글
Transit Gateway(동일 리전간 VPC 연결, 타리전간 VPC 연결, flow-log) (0) | 2023.02.21 |
---|---|
AWS 내부 ELB 구축 (1) | 2023.01.28 |
인프라 스트럭쳐 자동화 (Cloudformation) (0) | 2023.01.20 |
AWS Route53 (1) | 2023.01.19 |
AWS 로드 밸런서 기초 설정 (1) | 2023.01.13 |