> For the complete documentation index, see [llms.txt](https://ia-cloud.gitbook.io/cloudia-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ia-cloud.gitbook.io/cloudia-manual/user-guide/examples-and-labs/09-distribute-traffic-with-load-balancer.md).

# 로드 밸런서를 활용한 트래픽 분산하기

이 문서는 타겟 그룹을 먼저 만들고 로드 밸런서를 연결한 뒤 트래픽 분산 결과를 확인하는 실습입니다.

## 사전 준비

* Cloud:iA 웹콘솔 접근 가능
* 프로젝트 계정(`project-owner`)으로 로그인 가능
* VM 2대(`example-vm-01`, `example-vm-02`)와 클라이언트 VM 1대(`example-vm-client`) 실행 중
* [오토 스케일링 그룹을 통한 인스턴스 관리](/cloudia-manual/user-guide/examples-and-labs/08-manage-instances-with-auto-scaling-group.md) 또는 수동 타겟 그룹 생성 준비
* 인스턴스 보안그룹에서 `8080/tcp` 인바운드 허용

## 개요

1. [타겟 그룹 생성](#step-1)
2. [로드 밸런서 생성 및 리스너 연결](#step-2)
3. [트래픽 분산 확인](#step-3)

## 1단계: 타겟 그룹 생성

**수행 계정/화면:** `프로젝트 계정` / `프로젝트 페이지`

### 절차

1. `네트워크 > 타겟 그룹`에서 `생성`을 클릭합니다.
2. 이름, VPC, 프로토콜, 포트를 입력합니다.
3. 타겟 유형 `인스턴스`를 선택합니다.
4. `example-vm-01`, `example-vm-02`를 타겟으로 추가합니다.
5. `생성`을 클릭합니다.

### 입력 예시

| 항목       | 값                                              |
| -------- | ---------------------------------------------- |
| 타겟 그룹 이름 | `example-tg-001`                               |
| VPC      | `example-vpc`                                  |
| 프로토콜     | `TCP`                                          |
| 포트 번호    | `8080`                                         |
| 타겟1      | `example-vm-01 / 10.0.1.11 / 8080 / weight 10` |
| 타겟2      | `example-vm-02 / 10.0.1.12 / 8080 / weight 10` |

### 확인

* 타겟 그룹이 생성됩니다.
* 타겟 목록에 VM 2개가 표시됩니다.

## 2단계: 로드 밸런서 생성 및 리스너 연결

**수행 계정/화면:** `프로젝트 계정` / `프로젝트 페이지`

### 절차

1. `네트워크 > 로드 밸런서`에서 `생성`을 클릭합니다.
2. 이름/VPC/서브넷/타입을 입력합니다.
3. 리스너에서 프로토콜/포트/알고리즘/타겟 그룹을 설정합니다.
4. `생성`을 클릭합니다.

### 입력 예시

| 항목  | 값                                                  |
| --- | -------------------------------------------------- |
| 이름  | `example-lb-internal-001`                          |
| 타입  | `내부`                                               |
| 서브넷 | `example-public-subnet-001`                        |
| 리스너 | `TCP / 80 / 라운드 로빈 (Round Robin) / example-tg-001` |

### 확인

* 로드 밸런서 상세에 리스너 1개가 표시됩니다.
* 타겟 그룹 `LB 적용 여부`가 `적용`으로 변경됩니다.

## 3단계: 트래픽 분산 확인

**수행 계정/화면:** `프로젝트 계정` / `프로젝트 페이지 + VM 콘솔`

### 절차

1. `example-vm-01`, `example-vm-02`에서 동일 포트(8080) 서비스 리슨을 준비합니다.
2. `example-vm-client`에서 LB 내부 IP로 여러 번 요청을 보냅니다.
3. 두 타겟 VM 콘솔에서 수신 로그를 확인합니다.
4. LB 리스너 `모니터링 정보`에서 패킷/바이트 카운터를 확인합니다.

### 입력 예시

| 항목           | 값                                                                     |
| ------------ | --------------------------------------------------------------------- |
| 타겟 VM 리슨 명령  | `nc -l -p 8080 -k &`                                                  |
| 클라이언트 테스트 명령 | `for i in $(seq 1 40); do echo "lb-test-$i" \| nc 10.0.1.50 80; done` |
| 확인 항목        | `리스너 모니터링(패킷 수, 바이트 수)`                                               |

### 확인

* 두 타겟 VM에 요청이 분산되어 도달합니다.
* 리스너 모니터링 수치가 증가합니다.
