로드 밸런싱![]() |
오토 스케일링 (AGC)![]() |
|
역할 | 많은 요청이 들어오면, 트래픽을 여러 인스턴스에 분산 |
과부화/유휴에 따라 리소스를 관리 인스턴스 수를 자동으로 늘리거나 줄임 |
대상 | 이미 실행 중인 인스턴스 | 인스턴스 그 자체 |
기준 | 들어오는 트래픽 | CPU, RAM, 네트워크 등의 사용량 |
주로 쓰는 서비스 | ALB(application) NLB(network) CLB(classic) |
auto scaling group (ASG) |
keeplive를 통해 그룹한 리소스들이 살아있는 지 주기적으로 체크 | 가용성 유지 |
Auto scaling과 load-balancer을 통한 서비스 구축
1. 초기 설정
■ 인스턴스 자동 스케일링 이미지(AMI) 생성
자동 확장 그룹을 위한 사용자 지정 머신 이미지 생성
→자동 확장 그룹에서 서버 부하에 따라 여러 인스턴스를 스핀업하는 데 사용할 웹 호스트 이미지 템플릿 생성
이때, 복제할 EC2가 중지된 상태에서 '이미지 및 템플릿- 이미지생성'을 통해 생성한다.
2. Auto scaling을 위한 구성
auto scaling은 다음의 3요소로 구성된다.
■ 시작 템플릿
- 인스턴스를 시작할 때 사용할 설정 묶음 (AMI, 인스턴스 타입, 키페어, SG, 네트워킹 설정 등)
■ Auto scaling group
- 부하에 따라 인스턴스를 자동으로 늘리거나 줄이는 그룹
- 몇 개의 인스턴스를 어떤 서브넷에서 시작할 지 설정
(보통 로드밸런서 뒤에 위치하고, 외부의 접속을 막기 위해 private subnet에서 돌린다)
■ 확장 정책
- 자동 확장에 언제, 어떻게 확장할지 설정
- 수동 / 일정 / 특정 수 인스턴스 유지 등을 설정 가능
3. 로드밸런서 보안그룹 구성
■ 로드밸런서의 SG 생성
로드밸런서용 SG는 Port 80(HTTP)을 인바운드로 열어야 외부에서 접속 가능하며,
아웃바운드는 auto scaling group의 인스턴스를 통해 트래픽 전달 가능하도록 설정해야한다.
■ 로드밸런서에 SG 연결
로드밸런서 설정에서 새로 만든 SG를 연결하고,
웹 서버 인스턴스 보안 그룹의 인바운드에 로드밸런서 그룹을 소스로 허용
4. test
구축된 웹 서버에 접속 후,
sudo stress --cpu 1 --timeout 60을 통해 인위적으로 CPU 사용률을 높이면
새로운 인스턴스가 자동으로 생성되는 것을 확인할 수 있다.
이에 따라, 구현된 네트워크 흐름은 다음과 같다.
1. 사용자 요청 증가
2. ALB가 요청을 타겟 그룹에 전달
3. EC2들의 CPU에 설정 n%이상 부하
4. ASG 감지 → 인스턴스 자동 1개 추가
5. 새 인스턴스도 ALB 타겟 그룹에 자동 등록
6. 요청 분산 효율 up~!
7. 트래픽이 줄어들면 다시 EC2 줄임
'Cloud' 카테고리의 다른 글
CloudFormation (0) | 2025.04.10 |
---|---|
S3 & Cloudfront (0) | 2025.03.26 |
VPC와 Route 53 (0) | 2025.03.19 |