Search

AWS 네트워크 구성 핵심 개념 정리

배경

Confluent Cloud Kafka 토픽 → Redis (ElastiCache)로 집계 데이터를 적재하기 위해 Redis Sink Connector를 구성하려고 했음
사내 시스템은 모두 VPC 내부 전용 자원이라 Confluent Cloud → AWS VPC PrivateLink 경로를 사용하려고 시도하면서 AWS에 설정했던 부분들을 공부할겸 정리

주요 컴포넌트 및 용어

CIDR (Classless Inter-Domain Routing)

CIDR은 IP 주소와 서브넷 마스크를 한 줄로 표기하는 방식
IP 주소의 범위(네트워크 대역)를 표현하기 위해 사용되는 표기법
10.0.0.0/16
Plain Text
복사
10.0.0.0: 네트워크 주소 (시작점)
/16: 앞 16비트는 네트워크를 구분하는 데 사용하고, 나머지 16비트는 호스트에 할당
CIDR
호스트 수 (사용 가능 IP 개수)
IP 범위 예시
/32
1개 (고정 IP 하나)
10.0.0.5/32 → 단일 IP
/24
256개
10.0.1.0 ~ 10.0.1.255
/16
65,536개
10.0.0.0 ~ 10.0.255.255
/8
16,777,216개
10.0.0.0 ~ 10.255.255.255

Target Group (대상 그룹)

로드 밸런서가 실제 트래픽을 전달할 대상 백엔드 서버들의 그룹
역할
로드 밸런서 리스너가 받은 요청을 대상 그룹에 속한 여러 서버에 분산 전달
서버의 헬스체크를 통해 비정상 상태 서버는 자동으로 트래픽에서 제외
유형
IP 타입: 각 인스턴스의 Private IP 주소 직접 지정해 대상 서버 등록
Instance 타입: EC2 인스턴스 ID로 지정여 등록 (인스턴스가 IP 변경 시 자동 반영되며, EC2 인스턴스 관리에 편리)

Load Balancer

여러 대의 서버(혹은 IP) 앞단에 위치하여 클라이언트의 요청을 자동으로 분산 처리하는 서비스
역할
트래픽 분산시켜 특정 서버에 요청이 몰리는 현상을 방지
백엔드 서버의 헬스체크
서버 수를 동적으로 조정해도 로드 밸런서를 통해 동일한 방식으로 접근 가능
여러 서버 중 일부가 장애가 나도 서비스 지속 가능

Network Load Balancer(NLB)

TCP/UDP 기반 네트워크 계층(Layer 4) 에서 동작하는 로드 밸런서
IP 주소, 포트 번호 등 기본적인 네트워크 정보로만 트래픽을 분산
네트워크 계층에서만 작동하기 때문에 지연이 적어 빠른 응답속도가 중요한 서비스에 적합
백엔드 서버에서 클라이언트의 실제 IP를 그대로 볼 수 있음
Redis, Kafka, RDS 등 TCP 기반 서비스에 사용

Application Load Balancer (ALB)

HTTP/HTTPS 기반 애플리케이션 계층(Layer 7) 에서 동작하는 로드 밸런서
경로/호스트 기반 라우팅
TLS 종료 및 인증서 관리 가능
쿠키 기반의 세션 고정 지원
Web 애플리케이션, REST API, 마이크로서비스 아키텍처에 사용
NLB vs ALB
항목
NLB
ALB
작동 계층
L4 (TCP/UDP)
L7 (HTTP/HTTPS)
라우팅 기준
IP, 포트
URL, 헤더, 쿠키 등
성능
매우 빠름 (고성능)
상대적으로 느림 (기능 다양)
클라이언트 IP 유지
기본 유지됨
별도 설정 필요
TLS 종료
선택적
기본 지원
적합한 예
Redis, DB, TCP 기반 시스템
웹 서비스, API 서버 등
로그 분석
거의 없음
상세 요청 로그 가능

Listener (리스너)

로드 밸런서가 외부(Client)로부터 수신할 포트·프로토콜 설정
예시: TCP 6379 리스너 → Target Group으로 포워딩
들어오는 요청을 어떤 프로토콜과 포트로 받을지, 그리고 어떤 동작(포워딩)을 할지 지정

Security Group (보안 그룹)

VPC 내에서 인스턴스(ENI)별로 적용되는 가상 방화벽
인바운드 규칙: 외부에서 이 리소스로 들어오는 트래픽 허용/차단
아웃바운드 규칙: 이 리소스에서 외부로 나가는 트래픽 허용/차단
예시: NLB 앞단 보안그룹 인바운드에 TCP 6379 허용 → PrivateLink Endpoint ENI 또는 VPC CIDR에서 오는 트래픽만 처리

AWS PrivateLink & Endpoint Service

AWS PrivateLink

VPC 내부 간, 또는 VPCAWS 서비스 간의 안전한 연결을 지원해주는 서비스
퍼블릭 IP 없이 AWS 내부망을 통해 다른 VPC나 서비스와 통신 가능하게 만들어줌
구성요소
구성요소
설명
Interface Endpoint (ENI)
PrivateLink의 진입점 역할 서비스 소비자 쪽에서 생성하는 VPC 내 네트워크 인터페이스 (ENI)
Endpoint Service
서비스 제공자 쪽에서 생성 NLB를 바인딩하여 PrivateLink 소비자들이 접근할 수 있는 프라이빗 서비스를 게시
Network Load Balancer (NLB)
서비스 트래픽을 내부 대상(IP/인스턴스)으로 전달

Endpoint Service

VPC에 있는 서비스를 다른 VPC에 PrivateLink를 통해 노출할 수 있게 해주는 구성 요소
즉, 내 VPC 안의 로드밸런서 뒤에 있는 서비스(예: Redis, 웹 서버 등)를 다른 VPC에서 퍼블릭 인터넷 없이 통신 가능
Confluent, Snowflake 같은 SaaS 제공자들도 이 방식을 사용해 VPC 기반 통신 지원
flowchart TB
  subgraph Consumer_VPC["서비스 소비자 VPC"]
    Application["Application"]
    ENI["Interface Endpoint (ENI)"]
    Application --> ENI
  end

  ENI --> PL["PrivateLink (AWS 내부망)"]

  subgraph Provider_VPC["서비스 제공자 VPC"]
    EndpointService["Endpoint Service (with NLB)"]
    TG1["Target Group: private IP 1"]
    TG2["Target Group: private IP 2"]
    EndpointService --> TG1
    EndpointService --> TG2
  end

  PL --> EndpointService
Mermaid
복사