Cloud/AWS

[Cloud] AWS 요청-응답 흐름 이해하기 (Client-ELB-Target Group-Security Group-EC2)

SeungyubLee 2025. 9. 18. 00:30

AWS에서 서비스를 운영할 때, 클라이언트가 보낸 요청이 어떻게 처리되고 응답되는지를 이해하는 것은 매우 중요하다.

Client, ELB, Target Group, Security Group, EC2 각각의 역할과 흐름, 관계를 정리해보자


1. Client (클라이언트)

  • 역할 : 사용자가 브라우저나 앱을 통해 요청을 보내는 주체
  • 특징 :
    • 클라이언트는 ELB의 DNS 주소로 요청을 보냄
    • 클라이언트는 실제로 어떤 EC2 인스턴스가 응답하는지 알지 못함

2. ELB (Elastic Load Balancer)

  • 역할 : 들어온 트래픽을 적절한 서버(EC2)로 분산하는 분배기
  • 종류 :
    • ALB (Application Load Balancer) : 7계층(HTTP/HTTPS), URL·Host 기반 라우팅 가능
    • NLB (Network Load Balancer) : 4계층(TCP/UDP), 초고속/고성능 처리
  • 특징 :
    • ELB는 Target Group 단위로 트래픽을 분산
    • Listener 규칙에 따라 여러 Target Group으로 요청을 나눌 수 있음
      • 예 : /api/* → Target Group-A, /admin/* → Target Group-B
    • Health Check를 통해 정상(Healthy)인 EC2만 요청을 받도록 제어

3. Target Group (타겟 그룹)

  • 역할 : ELB가 트래픽을 분산할 대상을 모아둔 그룹
  • 구성 요소 : EC2, Lambda, IP 주소 등 (가장 흔한 건 EC2) 
  • 특징 :
    • Target Group 안의 EC2에만 요청을 분배
    • Health Check로 살아있는 인스턴스만 선택
  • 관계 (EC2와의 매핑) :
    • 하나의 Target Group에 여러 EC2를 포함 가능 (1 : N)
    • 하나의 EC2가 여러 Target Group에 포함될 수도 있음 (N : 1)
    •  N : N 관계 가능, 하지만 일반적으로는 1 : N 구조가 많음

※ Target Group은 ELB가 트래픽을 라우팅할 수 있는 엔드포인트 집합 (S3와 RDS는 Target Group에 직접 들어갈 수 없음)


4. Security Group (보안 그룹)

  • 역할 : EC2 인스턴스(또는 ELB)에 적용되는 가상 방화벽
  • 특징 :
    • Stateful : 요청이 허용되면 응답은 자동으로 허용
    • 인바운드 규칙 : 어떤 요청을 허용할지 제어 (예 : 80/443 포트)
    • 아웃바운드 규칙 : EC2가 외부로 나가는 트래픽 제어 (응답은 자동 허용)
  • 관계 (EC2와의 매핑) :
    • EC2 하나는 여러 보안 그룹을 적용할 수 있음
    • 하나의 보안 그룹을 여러 EC2가 공유할 수도 있음
    • → N : N 관계

※ EC2 인스턴스 단위로 보안 그룹을 붙일 수 있음 (예 : EC2 웹 서버 앞에 SG를 두어 80/443 포트만 허용)

 ELB 중 ALB(Application Load Balancer), CLB(Classic Load Balancer)는 SG 적용 가능, NLB(Network Load Balancer)는 SG 적용 불가능


5. EC2 (Elastic Compute Cloud)

  • 역할 : 실제 애플리케이션(웹 서버, API 서버, DB 서버 등)을 실행하는 가상 서버
  • 특징 :
    • 요청을 처리하고 응답을 생성하는 핵심
    • 보안 그룹 규칙에 따라 접근이 제어
    • Auto Scaling과 함께 사용하면 트래픽에 맞춰 인스턴스 수가 자동 조정

<요청-응답 전체 흐름>

1. 클라이언트(Client) → ELB에 요청 전송
2. ELB → Listener 규칙에 따라 적절한 Target Group으로 요청 전달
3. Target Group → Health Check로 정상 상태인 EC2로만 트래픽 전달
4. EC2 앞단의 Security Group → 인바운드 규칙 확인 후 요청 허용 여부 결정
5. EC2
      · 요청을 처리하는 핵심 서버
      · 필요 시 내부적으로 S3(파일/이미지 저장소)나 RDS(데이터베이스)를 호출해 데이터를 읽거나 저장
      · 이렇게 EC2가 Target Group에 속해 클라이언트 요청을 직접 받고, 내부적으로 S3, RDS와 같은 AWS 서비스와 연동하는 구조가 일반적
6. 응답(Response) → EC2 → ELB → Client 로 전달
      · 이때, 보안 그룹은 stateful이므로 응답은 자동 허용


<관계 요약 (몇 대 몇)>

  • Client(1) ↔ ELB(N) (여러 ELB에 붙을 수 있지만, 보통 1 : 1)
  • ELB(1) ↔ Target Group(N) (Listener 규칙에 따라 여러 Target Group 사용 가능)
  • Target Group(N) ↔ EC2(N) (일반적으로는 1 : N, 특정 경우 N : N 가능)
  • Security Group(N) ↔ EC2(N) (공유 Security Group, 다중 Security Group 가능)

<추가로 중요하게 알아야 할 포인트>

  • 보안 그룹은 반드시 EC2 앞에 둬야 함
    → 보통 "ELB의 보안 그룹만 열고, EC2는 ELB 보안 그룹에서 오는 트래픽만 허용"하는 식으로 설정
  • 응답은 자동 허용 (Stateful)
    → Outbound 규칙을 일일이 지정하지 않아도, Inbound 요청이 허용됐다면 응답은 자동 허용
  • Auto Scaling과 연동
    → 새로운 EC2가 자동으로 Target Group에 등록되고, ELB가 자동으로 분산에 반영
  • NLB에는 보안 그룹이 없음
    → ALB는 보안 그룹 적용 가능, NLB는 VPC(Virtual Private Cloud) 레벨 네트워크 제어만 가능

※ 결론

AWS에서의 요청-응답 구조는 다음과 같이 요약 가능
Client → ELB → Target Group → (Security Group → EC2) → ELB → Client

  • ELB는 요청, 응답 모두를 중계하는 관문
  • Target Group은 EC2 집합 관리
  • Security Group은 보안 제어
  • EC2는 요청 처리 및 결과 생성, 응답