[DevOps] VPC 설계와 로드밸런서(ALB) : 고가용성 인프라

이지연·2026년 3월 3일

DevOps

목록 보기
6/24

개요

앞선 글을 통해 개별 EC2 서버를 구축하고 접속하는 법을 익혔다면, 이제는 이 서버들을 체계적인 네트워크 안에 가두고 효율적으로 관리하는 법을 알아볼 차례다. 실제 현업 수준의 아키텍처를 구성하기 위해 AWS 네트워크의 핵심인 VPC와 트래픽 분산 기술을 정리해 본다.


1. AWS VPC(Virtual Private Cloud): 나만의 가상 네트워크 설계

VPC는 AWS라는 거대한 클라우드 공간 안에 나만의 독립적인 네트워크 도시를 만드는 것과 같다. 이 안에서 IP 대역을 설정하고 목적에 따라 방(서브넷)을 나눌 수 있다.

  • VPC CIDR (주소 대역): 예를 들어 172.31.0.0/16으로 설정하면 약 65,000개의 IP를 사용할 수 있는 거대한 네트워크 공간이 생긴다.
  • 서브넷(Subnet) 분할: 보안과 용도에 따라 도시를 다시 동네 단위로 쪼개는 과정이다.
  • Public 서브넷: 인터넷 게이트웨이(IGW)와 연결되어 외부와 직접 통신할 수 있는 구역이다. (예: 로드밸런서 배치)
  • Private 서브넷: 외부 접근은 차단하고 내부 서비스끼리만 통신하는 구역이다. (예: 실제 웹 서버, DB 배치)

2. 트래픽의 길잡이, 라우팅 테이블과 게이트웨이

네트워크 안에서 데이터가 어디로 흘러갈지 결정하는 것이 라우팅 테이블이다.

  • IGW (Internet Gateway): 집의 현관문처럼 외부 인터넷과 VPC를 양방향으로 연결한다.
  • NAT Gateway: 집에서 밖으로만 나갈 수 있는 뒷문과 같다. Private 서브넷의 서버들이 업데이트 등을 위해 외부로 나갈 때만 사용하며, 외부에서 안으로 직접 들어오는 것은 불가능하게 막아 보안을 강화한다.

3. 로드밸런서(ALB)와 대상 그룹(Target Group)

사용자가 늘어나면 서버 한 대(모놀리식)로는 감당하기 어렵다. 이때 트래픽을 여러 대의 서버로 지능적으로 나누어 주는 것이 로드밸런서다.

  • 로드밸런서(ALB): 80번이나 443번 포트로 들어오는 사용자 요청을 받아 미리 설정된 대상 그룹으로 배분한다.
  • 대상 그룹(Target Group): 요청을 처리할 EC2 인스턴스들의 집합이다.
  • 상태 검사(Health Check): 로드밸런서는 주기적으로 서버들에게 /health 같은 경로로 "살아있니?"라고 물어본다. 이때 HTTP 200 OK 응답을 주는 건강한(Healthy) 서버에만 트래픽을 보내 서비스 중단을 막는다.

4. 실습: 로드밸런싱 동작 확인하기

두 대의 EC2 인스턴스(my-ec2, my-ec2-test)를 준비하여 실제 트래픽이 분산되는지 확인해 볼 수 있다.

  1. 화면 차별화: 각 서버의 index.html 파일을 "접속 화면 1", "접속 화면 2"로 다르게 수정한다.
  2. 라운드 로빈: 로드밸런서 주소로 접속한 뒤 새로고침을 반복한다.
  3. 결과 확인: 설정된 알고리즘에 따라 1번 서버와 2번 서버의 화면이 번갈아 출력되는 것을 볼 수 있다. 이는 한 대의 서버에 장애가 나더라도 서비스가 유지될 수 있는 고가용성(HA) 구조가 완성되었음을 의미한다.

5. 최종 트래픽 흐름 정리

전체적인 데이터의 흐름을 요약하자면 다음과 같다.

  1. 사용자가 인터넷을 통해 IGW(현관문)로 진입한다.
  2. Public 서브넷에 위치한 ALB(안내원)가 요청을 받는다.
  3. ALB는 대상 그룹 내 서버들의 건강 상태를 체크한다.
  4. 보안 그룹 설정에 따라 ALB가 보낸 요청만 Private 서브넷의 EC2로 전달된다.

마치며

단순한 IP 주소 이해부터 시작해, 이제 우리는 클라우드 상에서 보안과 성능을 모두 고려한 네트워크 아키텍처를 설계할 수 있게 되었다. 이러한 인프라 구성은 서비스의 규모가 커질수록, 혹은 MSA 아키텍처로 분리될수록 그 중요성이 더욱 커진다.

profile
Eazy하게

0개의 댓글