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는 요청 처리 및 결과 생성, 응답
'Cloud > AWS' 카테고리의 다른 글
[Cloud] AWS EC2 IP 도메인 연결 방법 (0) | 2025.08.20 |
---|