CAB TA 4기 25일차의 기록

Urban Jungle·2025년 4월 15일

CAB TA 4기

목록 보기
25/28


네트워킹이란

네트워킹 정의

네트워킹은 '서로 연결한다'는 뜻으로, 서로 간에 의사소통을 하는 환경이다.

네트워킹 요소

국제표준화기구(ISO)에서 개발한 OSI 7계층 모델로, 네트워킹 통신 구조를 계층 일곱 개로 분류하는 방식이다.

IP 주소와 서브넷

IP 주소

IP(Internet Protocol) 주소는 인터넷상에서 IT 자원을 식별하는 고유한 주소이다. IP 버전에는 IPv4와 IPv6 두 가지가 있으며, 일반적으로 IPv4를 더 많이 사용한다.

퍼블릭 IP 주소와 프라이빗 IP 주소

퍼블릭 IP 주소는 실제 인터넷에서 사용하려고 인터넷 서비스 공급자(ISP)에서 제공하는 유일한 공인 IP 주소이다. 반면 프라이빗 IP 주소는 인터넷이 아닌 독립된 네트워크 내부에서만 사용하려고 네트워크 관리자가 제공하는 사설 IP 주소이다.

[프라이빗 IP 주소]

  • 클래스 A: 10.0.0.0 ~ 10.255.255.255
  • 클래스 B: 172.16.0.0 ~ 172.31.255.255
  • 클래스 C: 192.168.0.0 ~ 192.168.255.255

고정 IP 주소와 유동 IP 주소

IP 주소는 할당하는 방식에 따라 고정 IP 주소와 유동 IP 주소로 분류된다. 고정 IP 주소는 네트워크 관리자가 수동으로 할당하는 방식이며, 유동 IP 주소는 특정 서버가 IP 주소 범위에 따라 동적으로 할당하는 방식이다.

유동 IP 주소는 DHCP(Dynamic Host Configuration Protocol) 프로토콜을 통해 주소를 제공하는 서버와 주소를 할당받는 클라이언트로 구성되며, IP 주소를 임대(lease)하는 형태를 취한다.

[DHCP 프로토콜 메세지]

  • DHCP Discover: DHCP 클라이언트에서 DHCP 서버를 찾는 메시지
  • DHCP Offer: DHCP 서버에서 할당할 IP 주소와 임대 시간을 알리는 메시지
  • DHCP Request: DHCP 클라이언트에서 DHCP 서버로 할당받을 IP 주소를 요청하는 메시지
  • DHCP Ack: DHCP 서버에서 최종적으로 할당할 IP 주소 승인을 알리는 메시지

서브넷과 서브넷 마스크

모든 네트워크는 하나의 네트워크로만 구성되어 있지 않다. 주체와 목적에 따라 부분 네트워크로 나뉘고, 서로 연결하여 거대한 네트워크 환경을 이루고 있다. 여기에서 서브넷(subnet)은 부분 네트워크를 의미하며, 다양한 서브넷이 연결되어 거대한 네트워크 환경을 이루고 있다고 이해하면된다. 서브넷을 구분하고 식별할 때 사용하는 것이 서브넷 마스크(subnet mask)이다.

라우팅과 라우터

TCP와 UDP

TCP
송수신 대상 간 연결을 맺고 데이터 전송 여부를 하나씩 확인하며 전송하는 연결형 프로토콜로, 신뢰성 있는 데이터 전송을 보장한다.

UDP
TCP와 반대로 송수신 대상 간 연결 없이 전달하는 비연결형 프로토콜이다.

포트 번호
TCP와 UDP를 사용하는 응용서비스는 서로 구분할 수 있도록 포트 번호를 사용한다. 이런 포트 번호는 IANA(Internet Assigned Numbers Authority)라는 인터넷 할당 번호 관리 기관에서 정의한다.

  • 잘 알려진 포트 번호(well-known port): 0~1023
  • 등록된 포트 번호(registered port): 1024~49151
  • 동적 포트(dynamic port): 49152~65535

AWS 네트워킹 소개

AWS 네트워킹 서비스는 AWS 글로벌 인프라에서 생성된 다양한 자원의 워크로드를 수행하는 네트워킹 서비스이다.

AWS 리전 네트워킹 디자인

리전은 전 세계 주요 도시의 데이터 센터를 군집화(clustering)하는 물리적인 위치를 의미한다. AWS 리전 내부에는 트랜짓 센터(transit center)와 가용 영역이 서로 연결되어 네트워크 환경을 이루고 있으며, 네트워킹 측면으로 어떤 대상과 연결되었는지에 따라 다음과 같이 분류할 수 있다.

Intra-AZ 연결

리전 내부에는 논리적인 데이터 센터의 집합인 가용 영역이 여럿 존재한다. 가용 영역에 존재하는 데이터 센터들은 고밀도 광섬유 케이블을 사용하여 100GE 또는 400GE(Gigabit Ethernet)로 상호 연결되어 네트워킹 환경을 구성한다. 이런 데이터 센터 간 연결을 Intra-AZ 연결(connection)이라고 한다.

Inter-AZ 연결

리전 내부에 위치하는 가용 영역은 실제 100km(서로 60마일 간격) 이내로 떨어져 있다. 이렇게 물리적으로 거리를 두는 이유는 정전이나 자연재해 같은 문제에 가용성을 유지하기 위함이다. 또한 AWS 클라우드 자원을 다수의 가용 영역에서 실행하도록 설계하여 내결함성을 강화할 수 있다. 지리적으로 떨어져 있는 가용 영역끼리 연결되어 네트워킹 환경을 구성하고 있으며, 이런 가용 영역 간 연결을 Inter-AZ 연결(connection)이라고 한다.

트랜짓 센터

리전에서 외부 인터넷 구간과 통신이 필요할 때는 트랜짓 센터를 통해 통신한다. 내부에 있는 가용 영역들은 외부 인터넷 통신을 위해 트랜짓 센터와 연결되어 네트워킹 환경을 구성하며, 이런 가용 영역 간 연결을 트랜짓 센터 연결(transit center connection)이라고 한다.

AWS 글로벌 네트워크와 엣지 POP

엣지 POP(edge Point Of Presence)는 AWS 글로벌 네트워크라는 전용망을 활용하여 안정적으로 고성능 서비스를 제공하는 센터이다. 엣지 POP을 통해 사용자에게 글로벌 서비스 콘텐츠를 빠르게 제공할 수 있다.
엣지 POP은 엣지 로케이션(edge location)과 리전별 엣지 캐시(regional edge cache)로 구성되며, 전 세계 300개 이상의 엣지 로케이션과 13개의 리전별 엣지 캐시가 서로 연결된 AWS 글로벌 네트워크를 구성하고 있다.

엣지 POP이 속해 있는 AWS 백본 네트워크는 AWS 글로벌 네트워크와 연결되어 있으며, 모든 리전(중국 리전 제외)은 백본 네트워크를 중심으로 서로 연결되어 있다.

AWS 네트워킹 서비스

AWS의 다양한 자원이 서로 원활하게 통신할 수 있도록 도와주는 것이 바로 AWS 네트워킹 서비스이다.

대표적인 AWS 네트워킹 서비스를 정리해보면 다음과 같다.

  • VPC: 사용자 전용 가상의 프라이빗 클라우드 네트워크로, 네트워크 자원을 탄력적으로 활용하는 서비스를 제공한다.
  • Transit Gateway: 중앙 허브 개념처럼 VPC와 온프레미스 네트워크를 연결하는 게이트웨이 역할의 서비스를 제공한다.
  • Route 53: AWS에서 제공하는 관리형 DNS 서비스로 도메인 등록, 라우팅, 상태 확인 등 서비스를 제공한다.
  • Global Accelerator: AWS 글로벌 네트워크를 통해 애플리케이션을 빠르고 안정적으로 사용할 수 있도록 가용성 및 성능을 보장하는 서비스를 제공한다.
  • Direct Connect: 온프레미스 환경에서 AWS의 전용 네트워크 연결 서비스를 제공한다.
  • Site-to-Site VPN: IPsec VPN 연결을 생성하여 암호화된 네트워크를 구성하는 서비스를 제공한다.

Amazon VPC

Amazon VPC 기본 구성 요소

리전과 VPC

Amazon VPC는 리전마다 독립적으로 구성되어 있다. 예를 들어 서울 리전에 VPC를 생성했다면 생성한 VPC는 서울 리전에만 있으며, 다른 리전에는 없다. 또한 리전 내에는 다수의 VPC를 생성할 수 있으며, 각 VPC는 서로 독립적으로 분리된다. 이런 측면에서 사용자는 어느 리전에 VPC를 생성할지 미리 계획해야 한다.

서브넷과 가용 영역

Amazon VPC라는 하나의 독립된 클라우드 네트워크에도 서브넷을 이용하여 분리된 네트워크로 구성할 수 있다. 서브넷은 VPC 내 별도로 나누어진 네트워크라고 생각하면 된다. 또한, 서브넷은 반드시 하나의 가용 영역에 종속적으로 위치한다.

서브넷은 VPC 네트워크 환경 구성에 따라 퍼블릭 서브넷프라이빗 서브넷으로 분리할 수 있다. 퍼블릭 서브넷은 인터넷 구간과 연결되어 있어 외부 인터넷 통신이 가능한 네트워크 영역이고, 프라이빗 서브넷은 인터넷 구간과 연결되지 않은 폐쇄적인 네트워크 영역이다.

IP CIDR

IP CIDR은 네트워크에 할당할 수 있는 IP 주소 범위를 표현하는 방법이다. Amazon VPC는 내부에 생성할 서브넷의 IP 주소 범위를 할당하기 위해 IP CIDR을 가지고 있으며, VPC 내 생성된 서브넷도 VPC의 IP CDIDR에서 분할된 IP CIDR을 가지고 있다. 즉, VPC라는 큰 네트워크의 IP CIDR에서 서브넷이라는 작은 네트워크의 IP CIDR이 분할되어 있다. 결론적으로, 서브넷에 생성되는 자원은 IP CIDR 범위 안에 있는 IP 주소를 할당받을 수 있다.

가상 라우터와 라우팅 테이블

Amazon VPC를 생성하면 기본적으로 네트워크 경로를 확인하여 트래픽을 전달하는 목적의 가상 라우터가 생성된다. 이렇게 생성된 가상 라우터는 기본 라우팅 테이블을 보유하고 있으며, 라우팅 테이블을 통해 네트워크 경로를 식별할 수 있다. 물론 기본 라우팅 테이블 외에 별도의 라우팅 테이블을 생성할 수 있고, 생성된 라우팅 테이블은 서브넷과 연결(attach)하여 서브넷마다 라우팅 테이블을 가질 수도 있다.

라우팅 테이블은 목적지 대상의 IP CIDR 블록과 타깃 대상으로 구성되어 있다. 참고로 타깃 대상에서 로컬은 VPC 내부 간 통신을 의미하며, 특수한 목적을 수행하는 인터넷 게이트웨이나 NAT 게이트웨이 등을 타깃 대상으로 지정할 수 있다.

보안 그룹과 네트워크 ACL

Amazon VPC는 보안 그룹(security group)과 네트워크 ACL(Access Control List) 같은 가상의 방화벽(firewall) 기능을 제공하여 서브넷과 생성된 자원에 대한 트래픽을 보호한다. 트래픽 접근을 통제하는 것이 주된 목적이며 IP CIDR 블록, 프로토콜, 포트 번호 등을 정의하여 허용(allow)과 거부(deny)를 결정하는 보안 규칙을 만든다. 가상의 방화벽을 기준으로 들어오는 인바운드(inbound) 규칙과 빠져나가는 아웃바운드(outbound) 규칙이 있기 때문에 트래픽 흐름을 고려한 보안 규칙을 세워야 한다.

보안 그룹과 네트워크 ACL은 송수신 트래픽의 접근을 통제한다는 점에서 서로 같지만, 차이점이 있다. 차이점은 크게 3가지로 나뉜다.

트래픽 접근 제어 대상

보안 그룹과 네트워크 ACL의 가장 큰 차이점은 접근 제어 대상이 서로 다르다는 것이다. 보안 그룹은 인스턴스와 같은 자원 접근을 제어하며, 네트워크 ACL은 서브넷 접근을 제어한다.

스테이트풀과 스테이트리스

보안 그룹은 이전 상태 정보를 기억하고 다음에 그 상태를 활용하는 스테이트풀(stateful) 접근 통제를 수행하며, 네트워크 ACL은 이전 상태 정보를 기억하지 않아 다음에 그 상태를 활용하지 않는 스테이트리스(stateless) 접근 통제를 수행한다.

보안 그룹의 스테이트풀 동작을 보면 인바운드 규칙에 따라 트래픽을 허용한 경우 정보를 기억하고 아웃바운드 규칙에 상관없이 자동으로 접근이 허용된다. 반대로 네트워크 ACL의 스테이트리스 동작을 보면 인바운드 규칙에 따라 트래픽을 허용했어도 아웃바운드 규칙으로 트래픽 허용 여부를 판단한다.

허용 및 거부 정책

보안 그룹의 정책 테이블은 허용 규칙만 나열하며 허용 규칙에 해당하지 않으면 자동 거부된다. 반면 네트워크 ACL의 정책 테이블은 허용 규칙과 거부 규칙이 모두 존재하여 규칙을 순차적으로 확인하고 허용과 거부를 판단한다. 네트워크 ACL에도 모든 규칙이 매칭되지 않으면 거부하는 규칙이 기본적으로 있다.


Amazon VPC와 다른 네트워크 연결

인터넷 게이트웨이

Amazon VPC는 프라이빗 클라우드 네트워크 환경으로, 외부 인터넷 구간과 연결되지 않은 독립적인 네트워크이다. 인터넷 게이트웨이는 VPC와 인터넷 구간의 논리적인 연결이자 인터넷으로 나가는 관문이 되는 네트워킹 자원이다.

퍼블릭 서브넷은 외부 인터넷 통신이 가능한 네트워크이다. 서브넷의 라우팅 테이블에서 외부 인터넷으로 나가는 타깃 대상을 인터넷 게이트웨이로 지정하여 퍼블릭 서브넷 환경을 만든다.

NAT 게이트웨이

NAT 게이트웨이(Network Address Translation gateway)는 프라이빗 서브넷에서 외부 인터넷으로 통신하는 관문 역할을 한다. NAT는 IP 주소를 변환하는 기능을 제공하며, 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하여 외부 인터넷 구간 통신 환경을 만든다.
프라이빗 서브넷은 외부 인터넷 구간과 단절된 독립된 네트워크이지만 외부 인터넷 구간과 통신이 필요할 때는 NAT 게이트웨이를 통해 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하여 외부 인터넷 구간과 통신할 수 있다.

VPC 피어링

VPC 피어링은 서로 다른 VPC를 연결하는 기능이다. 동일 리전뿐만 아니라 다른 리전에 위치한 VPC와 연결할 수도 있고, 다른 계정에 위치한 VPC까지 연결할 수 있다.
VPC 피어링으로 연결할 경우 IP CIDR 블록이 중복되면 연결이 불가능한 제약이 있어 VPC 피어링으로 클라우드 네트워크를 확장할 때는 IP 주소 대역을 반드시 점검해야 한다.

전송 게이트웨이

전송 게이트웨이(transit gateway)는 다수의 VPC나 온프레미스를 단일 지점으로 연결하는 중앙 집중형 라우터이다. 단일 지점 연결이라 네트워크 구성이 간소화되고 비용도 절감되는 효과가 있다.

가상 프라이빗 게이트웨이

가상 프라이빗 게이트웨이(virtual private gateway)는 관리형 AWS Site-to-Site VPN을 연결하거나 AWS Direct Connect로 온프레미스 환경을 연결한다.

Amazon VPC 요금

기본적으로 Amazon VPC를 사용하면서 요금은 발생하지 않지만, VPC 기능 중 일부는 요금이 발생할 수 있다.
NAT 게이트웨이는 최초 프로비저닝한 후 시간에 따른 요금이 부과되며, 기가바이트 단위로 데이터 처리 요금도 부과된다. 실습을 진행할 때는 기가바이트 단위의 데이터가 발생하지 않아 문제가 되지는 않지만, 시간에 따른 요금이 발생하는 것은 불가피하다.


Amazon ELB 기능

부하분산이란

부하분산은 서버-클라이언트 환경에서 서버가 클라이언트 요청을 받아 처리하는 과정에서 발생하는 부하(연산 작업)에 대해 동일한 목적을 수행하는 다수의 서버에 분산 처리하는 기능이다. 이런 부하분산을 로드 밸런싱(load balancing)이라고 하며, 부하분산을 수행하는 대상을 로드 밸런서(load balancer)라고 한다.

Amazon ELB 기능

AWS에서는 ELB(Elastic Load Balancing)라는 로드 밸런싱 기술을 제공한다. ELB는 Amazon EC2 인스턴스에서 운영 중인 애플리케이션, 마이크로서비스 또는 컨테이너 서비스로 유입되는 트래픽을 자동 분산처리하는 기술이다. EBLB는 애플리케이션 가용성을 향상시키고 HTTP, HTTPS, TCP, SSL 등 다양한 프로토콜을 지원하며 사용자가 같은 인스턴스에서 세션을 유지할 수 있도록 지원한다. 또한 AWS의 CloudWatch 기능을 이용하여 로그와 메트릭을 모니터링할 수 있으며, AWS의 오토 스케일링 기능과 결합해서 트래픽이 증가할 때 자동으로 인스턴스를 추가하거나 제거하면서 애플리케이션 가용성을 유지한다.

Amazon ELB 구성 요소

  • 로드 밸런서: 여러 대의 EC2 인스턴스, IP 주소, 람다 등을 사용하여 트래픽을 대상 그룹에 있는 인스턴스로 분산시켜 애플리케이션의 가용성을 유지하는 역할을 한다. 로드 밸런서는 사용자 요청을 받아 애플리케이션 서버로 전달하고, 애플리케이션 서버의 응답을 사용자에게 반환한다.

  • 대상 그룹: 로드 밸런서에서 분산할 대상의 집합을 정의하는 구성요소이다. 대상 그룹의 인스턴스에 대해 정적 또는 동적으로 구성할 수 있으며, 라우팅 규칙에 따라 요청을 받아들일 대상 그룹을 선택한다. 로드 밸런서는 대상 그룹에 포함된 대상들의 상태를 정기적으로 확인하여 장애 발생 대상을 자동으로 제외하고, 정상적으로 동작하는 대상에만 요청을 전달한다.

  • 리스너: 로드 밸런서에서 사용할 포트와 프로토콜을 설정하는 구성 요소이다. 리스너는 로드 밸런서에서 클라이언트 요청을 수신하고, 해당 요청을 처리할 대상 그룹을 선택하는 역할을 한다. 리스너는 로드 밸런서에 연결된 프로토콜과 포트를 사용하여 클라이언트 요청을 수신하고, 해당 요청을 대상 그룹으로 라우팅한다.

Amazon ELB 동작 방식

Amazon ELB를 생성하면 설정한 가용 영역별로 로드 밸런서 노드가 생성되고 앞단에 리스너를 실행한다. 이런 리스너는 다양한 프로토콜을 지원하며, 요청에 대한 대상 그룹의 라우팅을 정의한다. 이에 따라 로드 밸런서는 가용 영역에 속한 대상 그룹의 인스턴스로 트래픽을 전달한다.

  1. 클라이언트 요청 수신: 로드 밸런서에서 클라이언트 요청을 수신한다. 로드 밸런서는 클라이언트와 연결을 유지하며, 요청을 수신하려고 리스너를 등록한다.

  2. 대상 그룹 선택: 수신한 클라이언트 요청을 처리할 대상 그룹을 선택한다. 대상 그룹은 인스턴스, IP 주소, 람다 함수, ALB 등 여러 유형의 대상으로 구성된다.

  3. 트래픽 분산: 선택된 대상 그룹에서 요청을 처리할 대상을 선택하고 해당 대상으로 요청을 분산한다. 이때 로드 밸런서는 각 대상의 가용성 상태를 모니터링하고 가용하지 않은 대상을 제외한다.

  4. 응답 반환: 분산된 요청을 대상에서 처리하고 클라이언트에 응답을 반환한다. 이때 응답은 로드 밸런서에서 수신한 것으로 반환되므로, 클라이언트는 로드 밸런서가 대상 그룹에서 선택한 대상에게서 마치 응답을 받는 것처럼 느낄 수 있다.

[ELB 생성 시 로드 밸런서와 통신하는 방식]

  • 인터넷 경계 로드 밸런서: 외부에서 직접 로드 밸런서에 접근하는 방식

  • 내부 로드 밸런서: 외부의 접근이 차단된 격리된 네트워크(내부 서버 전용)에서 로드 밸런서를 사용하는 방식

Amazon ELB 교차 영역 로드 밸런싱

Amazon ELB는 여러 가용 영역에서 로드 밸런서 노드를 실행하며, 각 노드는 가용 영역 내 대상 그룹으로 요청을 분산한다. 이때 대상 그룹에 등록된 대상이 여러 가용 영역에 걸쳐 있다면 기본적으로 로드 밸런서는 동일한 비중으로 가용 영역 내에 있는 대상으로 트래픽을 분산한다. 이는 대상 그룹의 가용성을 높이는 방법이라 유용하지만, 가용 영역 내 인스턴스 수량이 불균형할 때는 일부 인스턴스로 트래픽이 몰리고 다른 인스턴스는 유휴 상태가 되는 불균형 처리 문제가 발생할 수 있다.

교차 영역 로드 밸런싱 비활성화

그림에서 가용 영역별로 로드 밸런서가 배치되고 다수의 인스턴스가 구성되어 있다. 이때 대상 인스턴스 수량이 첫 번째 가용 영역은 두 대, 두 번째 가용 영역은 여덟 대로 영역별로 불균형하게 구성되어 있다. 사용자 PC에서 ELB 도메인 주소로 트래픽을 전송하면, 도메인을 해석하여 50:50 비중으로 각 가용 영역에 위치한 로드 밸런서로 전달할 것이다. 그러면 첫 번째 로드 밸런서는 총 50이라는 비중에서 두 대의 대상 인스턴스에 25의 비중으로 트래픽을 로드 밸런싱할 것이다. 따라서 첫 번째 가용 영역에 위치한 대상 인스턴스에 트래픽 부하도가 높아지게 되며, 전체적으로 로드 밸런싱이 불균형해지는 것을 확인할 수 있다.

이런 불균형 로드 밸런싱을 해결하는 데 Amazon ELB에서 제공하는 교차 영역 로드 밸런싱 기능을 사용할 수 있는데, ELB 교차 영역 로드 밸런싱(cross-zone load balancing)은 여러 가용 영역에 걸쳐 있는 EC2 인스턴스나 컨테이너 등 대상을 더 효과적으로 로드 밸런싱하는 기능이다. 이런 교차 영역 로드 밸런싱은 가용 영역별로 인스턴스 수량이 불균형하게 위치할 때 트래픽 비중을 보정할 수 있으며, 트래픽을 분산하는 기준이 가용 영역이 아닌 대상 그룹에 속한 자원을 기준으로 균일한 비중의 로드 밸런싱을 수행할 수 있다.

교차 영역 로드 밸런싱 활성화

앞의 상황과 동일하게 가용 영역별 인스턴스 수량이 불균형한 환경에서 가용 영역별로 50:50 비중으로 트래픽을 전달한다고 하자. 대상 자원의 비율에 따라 가용 영역을 교차하기 때문에 각 10의 비중을 맞추어 균일하게 열 대의 인스턴스 대상에 로드 밸런싱하는 것을 확인할 수 있다. 이렇게 교차 영역 로드 밸런싱을 활성화하면 가용 영역과 무관하게 대상 자원의 비율을 고려하여 가용 영역을 교차할 수 있어 좀 더 효율적으로 로드 밸런싱을 할 수 있다. 교차 영역 로드 밸런싱은 ALB를 사용할 때 기본적으로 활성화되어 있으나, NLB는 비활성화되어 있다. 또한 교차 영역 로드 밸런싱은 대상 그룹 수준에서 구성할 수 있으므로 필요에 따라 각 대상 그룹별로 별도로 구성할 수 있다. 단 사용할 때 가용 영역 간에 통신 비용이 발생할 수 있다.

Amazon ELB 종류

CLB

CLB(Classic Load Balancer)는 Amazon ELB의 가장 초기에 출시된 로드 밸런서로, 4계층과 7계층 프로토콜을 모두 지원한다. HTTP/HTTPS 요청에 따른 최신 HTTPv1.2 프로토콜과 TCP의 SSL/TLS 암호화 프로토콜도 지원하며, SSL 인증서를 사용한다. 고정 IP 주소를 사용하여 로드 밸런서를 생성하고, 로드 밸런서에 대한 DNS 이름으로 액세스할 수 있다. 그러나 CLB는 서버의 기본 주소가 변경되면 로드 밸런서를 새로 생성해야 하며, 기능적인 한계 때문에 포트나 헤더 같은 데이터를 수정하거나 변경할 수 없는 등 제약 사항이 있다. 현재는 NLB와 ALB 같은 새로운 로드 밸런서 서비스가 출시되어 CLB를 대체해서 사용하는 추세이다.

ALB

ALB(Application Load Balancer)는 AWS에서 제공하는 L7 로드 밸런서로, HTTP/HTTPS 같은 웹 애플리케이션 프로토콜을 지원한다. ALB는 대상 그룹 단위로 트래픽을 분산하며, 각 대상 그룹은 ALB가 요청을 전달할 EC2인스턴스, 람다 함수, 컨테이너 및 IP 주소로 라우팅하는 기능을 제공한다.

[ALB의 특징]

  • HTTP 헤더를 확인하여 다양한 라우팅 기능을 제공
    • 경로 기반 라우팅: URL 경로를 기반으로 요청을 분산
    • 호스트 기반 라우팅: 호스트 이름을 기반으로 요청을 분산
    • 쿼리 문자열 기반 라우팅: URL 쿼리 문자열을 기반으로 요청을 분산
  • 오토 스케일링과 함께 사용하여 확장성 있는 애플리케이션 구성 가능
  • 대상 그룹 내 인스턴스에 대해 상태 검사를 수행하고, 문제가 발생하면 자동으로 장애 조치를 취할 수 있음
  • Amazon CloudWatch Logs와 통합되어 로그 및 지표 데이터를 수집하고 모니터링 및 분석 가능

따라서 ALB는 웹 애플리케이션에 특화된 세밀한 라우팅을 제어할 수 있어 웹 애플리케이션을 위한 로드 밸런서로 사용된다.

NLB

NLB(Network Load Balancer)는 AWS에서 제공하는 L4 로드 밸런서로, TCP/UDP/TLS 프로토콜을 지원한다. ALB와 달리, 클라이언트와 로드 밸런서 간 연결을 TCP 레벨에서 유지하므로 대규모 트래픽을 처리할 수 있다. 이를 위해 NLB는 높은 처리량, 초당 연결 수, 대역폭 등 기능을 제공하며 동일한 IP 주소에서 여러 대상 그룹을 지원할 수 있다.

[NLB의 특징]

  • 높은 처리량: 초당 수백만 개의 연결을 처리할 수 있음
  • 빠른 응답 시간: 빠른 응답을 위해 최적화된 L4 로드 밸런싱 알고리즘을 사용
  • 높은 가용성: 여러 가용 영역에서 인스턴스를 실행하고 매우 빠른 인스턴스 검색을 수행하여 신속하게 장애를 복구함
  • IP 주소 보존: 클라이언트 IP 주소를 원래 IP 주소로 보존할 수 있음. 이것은 클라이언트 IP 주소를 유지하면서 로드 밸런싱을 수행할 수 있다는 것을 의미함
  • 모니터링: AWS CloudTrail, Amazon CloudWatch Logs 같은 모니터링 기능을 지원함

따라서 NLB는 대규모 네트워크 트래픽을 처리하고 대상 그룹의 대상이 IP 주소로 식별될 때 유용하다. 또한 AWS에서 제공하는 다른 로드 밸런서보다 높은 처리량과 빠른 응답 시간을 보장하므로 게임 서버, VoIP 서비스, 미디어 스트리밍 등에서 사용된다.

GWLB

GWLB(Gateway Load Balancer)는 네트워크 트래픽을 서드 파티의 방화벽/어플라이언스 장비로 부하분산 처리하는 로드밸런서이다. GWLB를 사용하면 서드 파티의 방화벽/어플라이언스 장비를 쉽게 배포하고 확장 및 관리할 수 있다. 요청에 따라 트래픽을 확장하거나 축소하면서 다수의 서드 파티 장비에 로드 밸런싱을 처리한다. GWLB는 VPC 내에서 실행되는 애플리케이션의 가용성과 확장성을 향상시키는 데 사용되며, TCP 및 UDP 프로토콜을 지원하여 다양한 유형의 애플리케이션에 유연하게 적용할 수 있다.

각 로드밸런서 종류는 고유한 기능을 제공하며, 사용자 요구 사항에 따라 적절한 로드 밸런서를 선택하는 것이 중요하다.


profile
똑똑해지고 싶은 공학도

0개의 댓글