AWS에는 ELB(Elastic Load Balancer)라는 로드밸런서 서비스를 제공하고 있습니다.
ELB의 종류로 GWLB(Gateway Load Balancer), ALB(Application Load Balancer), NLB(Network Load Balancer)으로 크게 3가지로 분류 되지만, 그 중 오늘은 NLB(Network Load Balancer)을 실습해보도록 하겠습니다.
Network Load Balancer 실습
NLB란?
네트워크 로드밸런서는 OSI 7계층 중 4계층(네트워크 계층)에서 동작합니다.
초당 수백만 개의 요청을 처리할 수 있다는 특징을 가지고 있으며, 로드 밸런서가 연결 요청을 바드면 기본 규칙의 대상 그룹에서 대상을 선택하여 지정된 포트에 있는 대상에 대한 TCP 연결을 시도합니다.
즉, 전송 계층을 다루는 로드밸런서로 TCP, UDP, TLS의 트래픽을 처리할 수 있습니다.
NLB 실습
실습하기 앞서, 준비해야 할 부분들
- EC2 2개 ( 80번 포트 연결을 위해, SG에서 80번,443번,22번 포트 열어 줄 것 )
- SG (NLB에 대한 SG 80번 포트 오픈)
필자는 EC2 환경을 우분투로 잡았으며, 인스턴스 생성 후 설정해줄 부분은 다음과 같습니다.
sudo passwd root #루트 계정 비밀번호 설정
su - # 루트 계정 접속
apt update
apt install apache2 -y
cd /var/www/html # 해당 경로에서 index.html 파일 수정
로드밸런서 작동을 파악하기 위해 각각의 인스턴스 1,2로 구분지어 공인 IP를 나타내는 html 코드를 작성하였습니다.
AWS 로드밸런서 서비스에서 네트워크 로드밸런서를 생성해 줍니다.
ALB를 쓸 수 있는 환경임에도 불구하고 NLB를 사용하는 이유로는, ALB는 Layer 4 뿐만 아니라, Layer 7(HTTP,HTTPS 등) 까지 처리할 수 있기 때문에 더 많은 리소스를 소모해야 합니다.
하지만 NLB는 TCP, UDP 만을 이해하고 처리하기 때문에, 리소스가 적을 뿐더러 더 많은 트래픽을 처리 가능합니다.
또한, ALB에서는 사용할 수 없는 고정IP를 사용할 수 있기 때문에 큰 장점으로 가져갈 수 있습니다.
VPC 와 가용 영역은 인스턴스에 따라 다르므로, 인스턴스와 동일한 환경을 선택해주면 됩니다.
보안 그룹은 사전에 만들어 두었던 SG를 이용하고, 웹 사이트에 대한 로드밸런서를 테스트 할 예정이니 리스너에 80번 포트를 기입한 대상 그룹을 설정해줍니다.
(필자는 일전에 대상 그룹을 미리 만들어줬으며, Instance, TCP-80번포트, IPv4, VPC, 상태검사 - HTTP 순으로 설정해준 뒤, 다음을 누르면 사전 작업으로 만들어둔 Instance들을 묶어줄 수 있습니다.)
로드밸런서를 만든 뒤, 대상 그룹으로 들어가 세부정보를 보게 되면 상태 확인으로 Intial 이 뜨게 되는데, 이는 초기 생성 중이라 발생하는 현상이며 기다리면 Healthy 상태로 변경 됩니다.
이제 모든 준비를 마쳤다면, 로드밸런서 화면으로 돌아가, DNS 이름을 복사해 주소창에 검색해보도록 하겠습니다.
사진을 보면 알 수 있듯, 로드밸런서로부터 트래픽을 받을 경우, 부하가 분산되어 서버가 각각 동작하는 것을 볼 수 있습니다. 이는 오토스케일링과 접목 시킬 수 있으며, 해당 실습은 다음 포스팅에서 진행해보도록 하겠습니다.
감사합니다.
'Cloud' 카테고리의 다른 글
[AWS]EBS 이론과 EC2에 마운트/언마운트 실습 (0) | 2025.02.05 |
---|---|
[AWS] Auto Scaling 이론과 NLB와 결합 및 부하 테스트 실습 (0) | 2025.01.25 |
[AWS] 로드밸런서(Load Balancer) 완벽하게 이해하기 (0) | 2025.01.18 |
[VPC] 3. A-Z까지 Bastion Host NAT GateWay 설정 (0) | 2023.07.31 |
[VPC] 2. A-Z까지 커스텀 VPC 생성해보기 (0) | 2023.07.30 |