Auto-Scaling.
자동 스케일링이죠 말 그대로.
무엇을 자동 스케일링 한다는걸까요?
바로 EC2입니다.
1. Auto-Scaling이 뭐지?
바로 전 글에서 설명했던 EC2를 Auto-Scaling 합니다.
EC2의 "용량"과 "성능"을 Scaling 하는 게 아닙니다.
EC2 인스턴스의 수를 Scaling 합니다.
일종의 "병렬 처리"에요.
우리가 키오스크로 주문하는 식당에 갔다고 합시다.
그런데 키오스크가 하나라고 하면,
앞서 주문하는 사람이 주문이 느린 경우 우린 계속 기다려야 합니다.
심지어 주문을 해야 들어갈 수 있는 가게라면? 서 있어야 하죠.
이런 상황을 타파하려면
키오스크를 하나 더 설치하는 방법이 있을겁니다.
그런데 점심 피크 때만 그렇게 사람이 모이고,
다른 시간에는 사람이 뜸 하면, 키오스크가 여러 대가 있을 때 비용이 아깝죠,
의미 없이 나가는 유지비용이 드는 겁니다.
이때 사장님은 이런 생각을 할 수 있겠죠,
"사람이 많이 모여서 키오스크 하나로 감당하기 힘들면, 감당할 수 있을 정도로 장비를 설치하자"
"사람이 적어져서 키오스크 하나로 감당이 충분하면, 다른 장비를 꺼버리자"
"트래픽이 많아서 인스턴스 하나로 감당하기 힘들면, 감당할 수 있을 정도로 인스턴스를 추가하자"
"트래픽이 적어져서 인스턴스 하나로 충분히 감당하면, 사용하지 않는 인스턴스는 반환하자"
이해가 되나요?
이 작업을 자동으로 수행해 주는 게
"Auto-Scaling"입니다.
2. ALB?
자, 그런데
키오스크가 많이 설치되었다고 한들
우리 가게 키오스크입니다~ 하고 알려줘야 사람들이 사용할 수 있겠죠?
사람들은 심리학적으로, 사람이 없는 키오스크는 고장 났나? 생각하고
긴 줄을 기다리는 경우도 있다고 해요.
이때, 가게에 들어왔을 때 누군가가 2번 키오스크로 가세요라며
길을 알려주는 안내원이 있다면, 너무 괜찮지 않을까요?
줄이 긴 것도 포함해서, 키오스크가 고장이 난 것을 안내원이 확인하고,
그 키오스크를 제외한 다른 장비로 안내를 해 주기도 하는 거죠.
어떤가요? 엄청 편하지 않나요?
"문제가 없고 가장 빠르게 반환할 수 있는 키오스크로 안내해 주는 사람."
"문제가 없고 가장 빠르게 반환할 수 있는 인스턴스로 전송하는 ALB."
바로 이해가 되죠?
ELB에는 여러가지 종류가 있어요,
Network Load Balancer,
Classic Load Balancer,
Application Load Balancer 등...
본 글에서는 일단 ALB(Application LoadBalancer를 기준으로 쓰려 합니다.
전송 방법은 여러 가지가 있어요.
그냥 키오스크 순서대로 사람을 보내는 방식,
키오스크의 부하 상태를 보고 사람을 보내는 방식 등 여러가지가 있죠.
지금은 넘어갑시다.
3. ALB와 Scaling의 연계?
Auto-Scaling은
Auto-Scaling "그룹"을 지정합니다.
인스턴스를 최소 몇 개를 만들지, 최대 몇 개까지 허용할지 설정하죠.
그리고 ALB에선 Auto-Scaling 그룹으로 데이터를 전송합니다.
그러면 AWS단에서 자동으로 트래픽의 상태를 보고,
Auto-Scaling 내에서는 서버 상태를 체크하고 인스턴스를 늘리고, 줄이고를 반복합니다.
ALB에서는 Health Check 시스템이 있어서, EC2 인스턴스 내 서버가 정상적으로 켜져 있는지 주기적으로 검사합니다.
Health Check가 실패하면 ELB에선 트래픽을 해당 인스턴스로 더 이상 전달하지 않아요.
서비스의 자동화가, 너무나 편하고 즐겁게 되지요.
우리는 이제 서비스 개발만을 열심히 하면 됩니다.
불붙어서 바로 더 써봤네요,
다음 글에서는 SQS와 SNS에 대해서, 알아보도록 할게요 !
'👀 개발 방법 > AWS' 카테고리의 다른 글
[AWS] 3. EC2와 인스턴스 패밀리, 요금제에 대하여 (2) | 2024.09.14 |
---|---|
[AWS] 2. AWS 클라우드 컴퓨팅의 이점? (4) | 2024.09.13 |
[AWS] 1. 온디맨드 서비스, 클라우드 컴퓨팅에 대하여 (2) | 2024.09.11 |