카테고리 없음

EC2 Classic Load Balancer(CLASSIC ELB)에서 Application Load Balancer(ALB)로 마이그레이션 시 주의할 점

idea9329 2025. 2. 25. 16:48
반응형

1. 개요

Amazon EC2 환경에서 기존 Classic Load Balancer(CLASSIC ELB, CLB) 를 사용하다가 Application Load Balancer(ALB)로 전환할 때 주의해야 할 사항을 정리했습니다.

📌 Classic ELB vs ALB 비교
| 항목 | Classic Load Balancer (CLB) | Application Load Balancer (ALB) |
|------|----------------------------|--------------------------------|
| Layer | L4 (TCP/SSL) | L7 (HTTP/HTTPS) |
| 로드 밸런싱 방식 | IP 기반 | Hostname, Path 기반 (도메인별 라우팅 가능) |
| SSL Termination | 가능 | 가능 (더 세분화된 설정 지원) |
| Target Type | 인스턴스 기반 | 인스턴스 또는 IP 기반 |
| WebSockets | 지원 안함 | 지원 |
| 요금 구조 | 인스턴스 수 기반 | 처리 요청 수 및 LCU(Load Capacity Unit) 기반 |

ALB는 더 세분화된 트래픽 관리 및 HTTP/HTTPS 기반 로드 밸런싱 기능을 제공하며, 비용 절감 효과도 기대할 수 있습니다.


2. ALB로 마이그레이션 시 고려해야 할 사항

🔹 1) Target Group(Target Type) 변경 필요

Classic Load Balancer는 EC2 인스턴스 기반으로 동작하지만, ALB는 Target Group을 사용하여 트래픽을 분배합니다.

✅ 기존 Classic ELB → EC2 인스턴스를 직접 연결
✅ ALB → Target Group을 생성하여 EC2 인스턴스를 등록

Target Group 생성 및 설정

aws elbv2 create-target-group \
  --name my-target-group \
  --protocol HTTP \
  --port 80 \
  --vpc-id <VPC_ID>

이후 aws elbv2 register-targets 명령어를 사용하여 EC2 인스턴스를 Target Group에 등록해야 합니다.

 ALB는 IP 기반 라우팅 지원 → 기존 CLB와 다르게 IP 주소를 직접 등록 가능
 Multi-AZ 배포 가능 → EC2 인스턴스를 여러 가용 영역(AZ)에서 로드 밸런싱


🔹 2) Security Group 및 IAM 역할 변경 필요

ALB는 보안 그룹(Security Group)  IAM 역할 설정이 기존 CLB와 다름

 ALB Security Group 설정 예시

aws ec2 authorize-security-group-ingress \
  --group-id <ALB_SG_ID> \
  --protocol tcp --port 80 --source 0.0.0.0/0

 EC2 인스턴스 Security Group에서 ALB의 Security Group 허용

aws ec2 authorize-security-group-ingress \
  --group-id <EC2_SG_ID> \
  --protocol tcp --port 80 --source <ALB_SG_ID>

ALB의 보안 그룹을 EC2 인스턴스 보안 그룹에서 허용해야 정상적인 트래픽 전달이 가능함


🔹 3) 기존 Classic ELB의 Listener 및 리디렉션 설정 변경 필요

 Classic ELB → 기본적으로 HTTP/HTTPS 포트에서 동작
 ALB  Listener Rules를 통해 호스트 기반, 경로 기반 트래픽 라우팅 가능

ALB Listener 생성 및 HTTP → HTTPS 리디렉션 적용 예시

aws elbv2 create-listener \
  --load-balancer-arn <ALB_ARN> \
  --protocol HTTPS --port 443 \
  --certificates CertificateArn=<ACM_CERTIFICATE_ARN> \
  --default-actions Type=forward,TargetGroupArn=<TARGET_GROUP_ARN>

--certificates 옵션을 사용하여 AWS Certificate Manager(ACM)에서 제공하는 SSL/TLS 인증서를 적용할 수 있음.

 Classic ELB는 단순한 L4 기반 트래픽 라우팅
 ALB는 Hostname 기반 또는 Path 기반으로 정교한 트래픽 분배 가능
 HTTPS 리디렉션 및 WebSockets 지원 강화됨


🔹 4) 기존 Classic Load Balancer 제거 전에 충분한 테스트 필요

ALB로 변경하기 전에 기존 Classic ELB를 즉시 제거하면 서비스 장애가 발생할 수 있습니다.

✅ 마이그레이션 테스트 절차
1️⃣ ALB 생성 후 기존 Classic ELB와 병행 운영
2️⃣ ALB를 통해 특정 트래픽을 라우팅하여 정상 동작 확인
3️⃣ 기존 Classic ELB의 Target을 제거하면서 점진적으로 ALB로 전환
4️⃣ 최종적으로 Classic ELB를 삭제

aws elb delete-load-balancer --load-balancer-name <CLASSIC_ELB_NAME>

 무중단 마이그레이션을 위해 두 개의 로드 밸런서를 병행 운영하는 것이 권장됨
 CloudWatch Logs를 활용하여 트래픽 패턴 및 에러 발생 여부 모니터링


🔹 5) 비용 최적화 고려

ALB의 비용 구조는 Classic ELB와 다릅니다.

 Classic ELB → 인스턴스 수 기반 요금
 ALB  요청 수 및 LCU(Load Capacity Unit) 기반 요금 부과

비용을 절감하려면?

  • 불필요한 Listener 및 Target Group 제거
  • LCU 사용량을 줄이기 위해 요청 수를 최적화
  • ALB의 Idle Timeout 설정 최적화 (기본 60초 → 필요 시 조정)

Idle Timeout 조정 예시

aws elbv2 modify-load-balancer-attributes \
  --load-balancer-arn <ALB_ARN> \
  --attributes Key=idle_timeout.timeout_seconds,Value=30

짧은 연결을 많이 사용하는 경우 Idle Timeout을 줄이면 비용 절감 가능


3. 결론

 Classic ELB → ALB 마이그레이션 시 체크리스트

🔹 ALB는 Target Group을 사용하므로 기존 Classic ELB와 방식이 다름
🔹 ALB 보안 그룹 및 IAM 권한을 적절하게 설정해야 함
🔹 기존 Classic ELB의 Listener 및 리디렉션 설정을 ALB에 맞게 조정 필요
🔹 기존 Classic ELB를 즉시 제거하지 말고 충분한 테스트 진행 후 전환
🔹 ALB의 요청당 과금 구조를 고려하여 비용 최적화 필요

ALB는 Classic ELB보다 더 정교한 트래픽 관리 기능을 제공하지만, 마이그레이션 시 Target Group 및 Listener 설정 변경, 보안 그룹 구성, 비용 최적화 등을 신중히 고려해야 합니다. 🚀


4. 연관 검색어

  • EC2 Classic Load Balancer에서 ALB로 마이그레이션 방법
  • AWS ALB Target Group 설정 가이드
  • Classic ELB vs ALB 차이점
  • AWS ALB 보안 그룹 설정
  • EC2 ALB HTTPS 적용 방법
  • ALB 비용 최적화 전략

이 글은 "EC2 Classic Load Balancer", "AWS ALB 마이그레이션", "AWS Load Balancer Target Group", "ALB 보안 설정", "EC2 ALB HTTPS 적용" 등의 키워드를 포함하여 검색 최적화(SEO) 에 맞춰 작성되었습니다. 🚀

반응형