ELB의 구조
AWS의 ELB가 어떻게 동작하는지 알기 위해서는 ELB의 구조를 알고 있어야 합니다, ELB의 경우 Two Tiers 구조로 구성되어 있습니다.
DNS 라운드 로빈과 로드밸런싱으로 부분으로 이루어져 있습니다.
클라이언트가 AWS ELB 도메인으로 접속하게 되면 Route 53이 DNS 라운드 로빈 방식으로 ELB를 배포하게 되면 생성되는 여러 ELB 노드로 트래픽을 분배합니다, 해당 ELB 노드들은 가용 영역내에서 인스턴스들로 트래픽을 분배하여 고가용성을 제공하고 로드밸런싱을 수행하게 됩니다.
ALB와 NLB의 구조 그리고 차이
ELB는 DNS 도메인 기반으로 구성되어 있어 항상 도메인 기반으로 사용하는데 유의할 점은 특히나 ALB의 경우 논리적으로 구성되어 있기 때문에 지속적으로 IP 주소가 변경되며 IP 고정이 불가능합니다.
ALB는 구성된 AZ에 노드를 배포하여 트래픽을 처리하는데, 이 때 각 서브넷에서 ENI를 하나씩 생성하여 연결하게 됩니다,
이러한 노드들은 EC2 인스턴스로 간주할 수 있지만 AWS에서 논리적으로 구성하여 관리되는 노드로 사용자가 직접적으로 확인할 수 없지만 EC2에 바인딩 되어 있는 ENI는 확인할 수 있습니다.
ALB에서 트래픽 부하가 급증할 경우 논리적으로 구성되어 있는 노드는 Scale up/Scale Out을 진행하여 AutoScaling을 하게 됩니다.
ALB는 서브넷 변경, 스케일 in/out 또는 down/up 등 노드에 변화가 발생하여 기존 노드를 종료할 때 graceful shutdown 방식으로 종료하게 되고, 기존 노드로의 요청이 완전히 사라진 다음에서야 해당 노드가 종료되게 됩니다.
ALB는 이러한 구조를 가지기 때문에 예를 들어서 이벤트가 예정되어 있거나 신규 서비스를 런칭하게 되면 기존의 노드 수가 적기 때문에 문제가 발생할 수 있고 사전에 ELB Pre-warming 신청하게 되면 AWS에서 노드를 사전 Scale Out을 진행하여 문제가 발생하지 않을 수 있도록 할 수 있습니다.
NLB의 경우 각 가용 영역에 로드 밸런서의 노드를 생성하지만 물리적인 ENI로 구성되어 있고 ENI를 통해 트래픽을 처리합니다, ENI이기 때문에 고정 IP를 할당하여 사용이 가능합니다.
이러한 차이로 인해 ALB의 경우 고정 IP 할당이 불가능하지만 NLB의 경우 고정 IP 할당이 가능합니다.
ALB를 사용하지만 고정 IP 할당이 필요한 경우가 있는데 예를 들어서 서비스에 접근할 때 화이트리스트로 IP를 제어하기 위해서 필요한 경우 등이 있습니다.
이러한 경우 NLB를 ALB 앞에 고정 IP를 할당한 후 ALB를 타켓으로 하는 타겟그룹으로 지정하여 ALB 앞에 NLB를 배치하거나 Global Accelator 사용하는 방법이 있습니다.
'AWS > Infrastructure' 카테고리의 다른 글
CloudWatch Agent 설치 (3) | 2024.10.13 |
---|---|
RDS Blue/Green 배포 및 전환 (0) | 2024.09.27 |
AWS EC2 keypair 변경 (0) | 2024.06.24 |