> 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/network/port-forwarding.md).

# 포트 포워딩

`포트 포워딩`은 외부 IP의 특정 포트를 프로젝트 내부 리소스로 전달하는 기능입니다. 단일 서비스 포트를 외부에 노출하거나, 로드 밸런서까지는 필요하지 않은 경량 외부 진입점을 구성할 때 사용합니다.

## 화면 개요

* `목록 화면`: 포트 포워딩 현황을 조회하고 생성, 편집, 삭제 작업을 시작합니다.
* `상세 화면`: 기본 정보와 규칙 목록을 확인합니다.
* `생성 화면`: 이름, VPC, 외부 IP 주소, 초기 규칙을 함께 설정합니다.
* `편집 화면`: 기본 정보와 일부 네트워크 정보만 수정합니다.
* `규칙 편집 화면`: 상세 화면에서 규칙을 별도로 관리합니다.

## 포트 포워딩 목록

### 주요 작업

* `생성`: 새로운 포트 포워딩을 생성합니다.
* `편집`: 선택한 1개 포트 포워딩의 설정을 편집합니다.
* `삭제`: 선택한 포트 포워딩을 삭제합니다. (삭제 시 하위 규칙들도 함께 삭제됩니다.)

### 테이블 컬럼

| 컬럼           | 설명                                    |
| ------------ | ------------------------------------- |
| **이름**       | 포트 포워딩 이름입니다. **클릭하면 상세 화면으로 이동**합니다. |
| **ID**       | 포트 포워딩 고유 ID입니다.                      |
| **VPC**      | 소속 VPC의 이름입니다.                        |
| **외부 IP 주소** | 포트 포워딩에 할당된 외부 IP 주소입니다.              |
| **규칙 수**     | 현재 등록된 포워딩 규칙 수입니다.                   |
| **설명**       | 포트 포워딩에 대한 설명입니다.                     |
| **생성 일시**    | 포트 포워딩이 생성된 날짜와 시각입니다.                |

***

## 포트 포워딩 상세

### 상단 요약

* **이름**: 포트 포워딩 리소스 이름입니다. 서비스 목적이나 연결 대상을 드러내는 이름을 사용합니다.
* **ID**: 포트 포워딩 고유 ID입니다.
* **VPC**: 포트 포워딩이 속한 VPC 이름입니다.
* **외부 IP 주소**: 외부 요청을 수신하는 외부 IP 주소입니다.
* **규칙 수**: 현재 등록된 포트 포워딩 규칙 개수입니다.
* **설명**: 포트 포워딩 용도나 운영 메모입니다.
* **생성 일시**: 포트 포워딩이 생성된 날짜와 시각입니다.

### 하단 목록: 규칙 정보

상세 화면 하단의 **규칙 정보** 섹션에서는 현재 포트 포워딩에 설정된 포트 포워딩 **규칙** 목록이 제공됩니다. 각 규칙은 외부에서 들어오는 특정 포트의 트래픽을 내부 자원으로 전달하는 설정을 의미합니다.\
규칙 정보 표의 우측 상단 **\[편집]** 버튼을 클릭하면 규칙들을 수정할 수 있는 **규칙 편집 화면**으로 이동합니다.

| 컬럼           | 설명                                                                       |
| ------------ | ------------------------------------------------------------------------ |
| **ID**       | 규칙 ID입니다.                                                                |
| **프로토콜**     | `TCP`, `UDP`, `TCP / UDP` 중 하나입니다.                                       |
| **외부 포트**    | 외부에서 수신할 포트 또는 포트 범위입니다.                                                 |
| **내부 리소스**   | 트래픽이 전달될 대상 자원입니다. `인스턴스` 또는 `IP 주소`이며, 인스턴스인 경우 대상 인스턴스의 이름과 ID가 표시됩니다. |
| **내부 IP 주소** | 전달 대상 내부 IP 주소입니다.                                                       |
| **내부 포트**    | 내부 리소스가 수신할 포트입니다.                                                       |
| **설명**       | 규칙 설명입니다.                                                                |

***

## 포트 포워딩 생성

### 기본 정보

* **이름**: 포트 포워딩 리소스를 식별하는 이름입니다.
* **설명**: 외부 노출 목적, 서비스 이름, 운영 메모를 적습니다.

### 네트워크 정보

* **VPC**: 포트 포워딩이 속할 VPC를 선택합니다.
* **외부 IP 주소**: 외부 요청을 받을 외부 IP를 `자동 할당` 또는 `수동 할당`으로 정합니다.

### 입력 필드 유효성

| 필드           | 허용 값                     | 검증 규칙                                                                                                                      | 비고                      |
| ------------ | ------------------------ | -------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| **이름**       | 영문, 숫자, `-`, `_` 조합의 문자열 | 필수입니다. 80자 이내로 입력합니다.                                                                                                      | 포트 포워딩 식별용 이름입니다.       |
| **설명**       | 최대 200자 문자열              | 선택 입력입니다. 200자를 초과할 수 없습니다.                                                                                                | 운영 메모용입니다.              |
| **VPC**      | 현재 프로젝트의 VPC             | 필수입니다. 규칙 추가 전에 먼저 선택해야 합니다.                                                                                               | 포트 포워딩 소속 VPC입니다.       |
| **외부 IP 주소** | `자동 할당`, `수동 할당`         | 필수입니다. `수동 할당`을 선택한 경우 실제 외부 IP까지 선택해야 규칙 추가 버튼이 활성화됩니다. `자동 할당`은 외부 IP 풀의 시작 IP가 작은 풀부터, 각 풀 내부도 시작 IP부터 순서대로 빈 주소를 찾습니다. | 생성 시점에 외부 공개 주소를 확정합니다. |

`자동 할당`을 선택하면 외부 IP는 관리자 `외부 IP 풀` 전체에서 가장 앞선 사용 가능 주소가 배정됩니다. 풀은 `시작 IP`가 작은 순으로 검사하고, 각 풀 내부도 시작 IP부터 순서대로 확인합니다.

### 규칙

생성 화면에서 규칙을 미리 추가할 수 있습니다.

* `추가`: 새로운 규칙을 정의합니다.
* `편집`: 선택한 1개 규칙을 수정합니다.
* `삭제`: 선택한 규칙을 삭제합니다.

규칙 추가 버튼은 다음 조건이 만족되어야 활성화됩니다.

* VPC가 선택되어 있어야 합니다.
* 외부 IP를 `수동 할당`으로 선택한 경우 실제 외부 IP도 선택되어 있어야 합니다.

### 규칙 입력 항목

* **프로토콜**: 외부에서 받을 트래픽 유형을 `TCP`, `UDP`, `TCP / UDP` 중에서 선택합니다.
* **외부 포트**: 외부 사용자가 접속할 포트 또는 포트 범위(예: `8000-8080`)를 입력합니다.
* **내부 리소스 설정**: 전달 대상을 `인스턴스` 또는 `IP 주소`로 지정합니다.
* **인스턴스**: 전달 대상이 `인스턴스`인 경우, 인스턴스를 선택합니다.
* **내부 IP 주소**: 실제 전달 대상이 되는 내부 IP를 선택합니다.
* **내부 포트**: 내부 서비스가 수신하는 포트 또는 포트 범위를 지정합니다.
* **설명**: 규칙 목적이나 예외 사항을 기록합니다.

### 규칙 입력 필드 유효성

| 필드            | 허용 값                           | 검증 규칙                                                                            | 비고                                  |
| ------------- | ------------------------------ | -------------------------------------------------------------------------------- | ----------------------------------- |
| **프로토콜**      | `TCP`, `UDP`, `TCP / UDP`      | 필수입니다. 드롭다운에서 선택합니다.                                                             | 전달 프로토콜을 정의합니다.                     |
| **외부 포트**     | `1-65535` 단일 포트 또는 포트 범위       | 필수입니다. 유효한 포트 형식이어야 하며 기존 규칙과 중복되거나 겹칠 수 없습니다.                                   | 예: `22`, `8080-8090`                |
| **내부 리소스 설정** | `인스턴스`, `IP 주소`                | 필수입니다. 선택한 유형에 따라 대상 선택 방식이 달라집니다.                                               | 내부 전달 대상 유형입니다.                     |
| **인스턴스**      | 선택한 VPC의 인스턴스                  | `내부 리소스 설정`이 `인스턴스`일 때 필수입니다.                                                    | 인스턴스 선택 후 인터페이스 IP를 함께 지정해야 합니다.    |
| **내부 IP 주소**  | 선택한 인스턴스 인터페이스 IP 또는 VPC 내부 IP | 필수입니다. 선택한 VPC 범위 안의 연결 가능한 IP여야 합니다.                                            | 인스턴스 유형이면 인스턴스 선택 후 인터페이스 IP를 고릅니다. |
| **내부 포트**     | `1-65535` 단일 포트 또는 포트 범위       | 필수입니다. 외부 포트가 범위이면 내부 포트도 같은 개수의 범위여야 하며, 외부 포트가 단일 포트일 때 내부 포트를 범위로 입력할 수 없습니다. | 전달 대상 서비스 포트입니다.                    |
| **설명**        | 최대 200자 문자열                    | 선택 입력입니다. 200자를 초과할 수 없습니다.                                                      | 규칙 목적을 기록합니다.                       |

### 규칙 제약

* 같은 외부 IP에 대해 중복되거나 겹치는 규칙은 추가할 수 없습니다.
* `TCP / UDP` 과 동일 포트 구간의 `TCP`, `UDP` 규칙은 함께 둘 수 없습니다.
* 외부 포트가 범위이고 내부 포트도 범위인 경우, 두 범위의 포트 개수는 같아야 합니다.
* 외부 포트가 단일 포트인데 내부 포트를 범위로 입력하는 방식은 허용되지 않습니다.
* 규칙 추가/수정은 선택한 VPC와 외부 IP 조건이 준비된 뒤에만 가능합니다.
* 포트 포워딩 규칙은 내부 대상이 가상머신이라도 연결 시점에 가상머신 실행 상태를 별도로 검사하지 않습니다.
* 가상머신이 `종료됨`, `중지됨`, 비정상 상태이거나 내부 서비스가 해당 포트를 수신하고 있지 않으면 외부에서 접속되지 않을 수 있습니다.
* 포트 포워딩 규칙이 연결된 인터페이스가 속한 퍼블릭 서브넷은 프라이빗 서브넷으로 변경할 수 없습니다.
* 서브넷을 프라이빗으로 변경하려면 먼저 해당 포트 포워딩 규칙을 삭제해야 합니다.

### 생성 시 참고 사항

* 규칙 없이 포트 포워딩 리소스만 먼저 생성한 뒤 상세 화면에서 규칙을 추가하는 방식도 가능합니다.
* 단순 단일 서비스 노출은 포트 포워딩이 적합하지만, 다수 대상 분산이 필요하면 로드 밸런서를 검토하는 것이 좋습니다.
* 가상머신을 내부 대상으로 사용한 포트 포워딩 규칙은, 해당 가상머신이 삭제되면 자동으로 함께 삭제됩니다.
* 이 경우 포트 포워딩 리소스 자체는 남을 수 있으며, 다른 규칙이 있으면 계속 유지됩니다.

### 외부 접속이 되지 않을 때 확인 사항

포트 포워딩 규칙이 정상적으로 설정되어 있고 가상머신 상태와 내부 서비스가 정상이어도, 내부 대상 가상머신의 보안그룹 인바운드 규칙에서 해당 접속을 허용하지 않으면 외부에서 접속할 수 없습니다.

* 접속에 사용한 프로토콜(`TCP`, `UDP`)이 보안그룹에 허용되어 있는지 확인합니다.
* 포트 포워딩의 내부 포트가 보안그룹 인바운드 규칙에 포함되어 있는지 확인합니다.
* 외부에서 접속하는 IP 또는 CIDR 대역이 보안그룹 허용 범위에 포함되어 있는지 확인합니다.
* 필요한 경우 `보안그룹` 메뉴에서 인바운드 규칙을 확인하거나 수정합니다.

***

## 포트 포워딩 편집

### 편집 항목

편집 화면에서는 항상 다음 항목을 수정할 수 있습니다.

* **이름**: 포트 포워딩 식별용 이름을 수정합니다.
* **설명**: 운영 메모를 수정합니다.

다음 항목은 **규칙이 하나도 없을 때만** 변경할 수 있습니다.

* **VPC**: 아직 규칙이 없는 상태에서만 변경합니다.
* **외부 IP 주소**: 아직 규칙이 없는 상태에서만 변경합니다.

### 편집 입력 필드 유효성

| 필드           | 허용 값                     | 검증 규칙                       | 비고               |
| ------------ | ------------------------ | --------------------------- | ---------------- |
| **이름**       | 영문, 숫자, `-`, `_` 조합의 문자열 | 필수입니다. 80자 이내로 입력합니다.       | 항상 수정 가능합니다.     |
| **설명**       | 최대 200자 문자열              | 선택 입력입니다. 200자를 초과할 수 없습니다. | 항상 수정 가능합니다.     |
| **VPC**      | 현재 프로젝트의 VPC             | 규칙이 하나도 없을 때만 변경할 수 있습니다.   | 규칙이 있으면 비활성화됩니다. |
| **외부 IP 주소** | `자동 할당`, `수동 할당`         | 규칙이 하나도 없을 때만 변경할 수 있습니다.   | 규칙이 있으면 비활성화됩니다. |

### 편집 시 동작

* 편집 화면에는 경고 메시지가 표시되며, 규칙이 있는 경우 VPC와 외부 IP는 변경할 수 없습니다.
* 규칙이 이미 존재하면 규칙 편집은 상세 화면의 `규칙 편집`에서 별도로 수행합니다.

***

## 포트 포워딩 규칙 편집

상세 화면에서 진입하는 별도 편집 화면입니다.

### 주요 작업

* `추가`: 새로운 규칙을 정의합니다.
* `편집`: 선택한 1개 규칙을 수정합니다.
* `삭제`: 선택한 규칙을 삭제합니다.

### 편집 시 참고 사항

* 생성 화면과 동일한 규칙 입력 구조를 사용합니다.
* 저장 시 현재 화면의 전체 규칙 목록이 한 번에 반영됩니다.
* 외부 포트 충돌 검증은 생성 화면과 동일하게 적용됩니다.
* 가상머신을 내부 대상으로 사용하는 규칙은, 대상 가상머신이 삭제되면 자동으로 정리됩니다.

### 규칙 입력 항목

* **프로토콜**: 전달 프로토콜을 지정합니다.
* **외부 포트**: 외부 요청 수신 포트를 지정합니다.
* **내부 리소스 설정**: 전달 대상 유형을 지정합니다.
* **인스턴스**: 전달 대상이 `인스턴스`인 경우, 인스턴스를 선택합니다.
* **내부 IP 주소**: 실제 전달 대상 IP를 지정합니다.
* **내부 포트**: 내부 서비스 수신 포트를 지정합니다.
* **설명**: 규칙 목적을 기록합니다.

### 규칙 입력 필드 유효성

| 필드            | 허용 값                      | 검증 규칙                               | 비고                                                  |
| ------------- | ------------------------- | ----------------------------------- | --------------------------------------------------- |
| **프로토콜**      | `TCP`, `UDP`, `TCP / UDP` | 필수입니다. 생성 화면과 동일한 검증을 적용합니다.        | 기존 규칙 수정 시에도 동일합니다.                                 |
| **외부 포트**     | `1-65535` 단일 포트 또는 포트 범위  | 기존 규칙과 포트 구간이 중복되거나 겹치면 저장할 수 없습니다. | `TCP / UDP`는 동일 포트 구간의 `TCP`, `UDP` 규칙과 공존할 수 없습니다. |
| **내부 리소스 설정** | `인스턴스`, `IP 주소`           | 필수입니다.                              | 대상 선택 방식이 달라집니다.                                    |
| **인스턴스**      | 선택한 VPC의 인스턴스             | `내부 리소스 설정`이 `인스턴스`일 때 필수입니다.       | 인스턴스 선택 후 인터페이스 IP를 함께 지정해야 합니다.                    |
| **내부 IP 주소**  | 선택 가능한 내부 IP              | 필수입니다.                              | 선택한 리소스 유형과 VPC에 맞는 IP만 허용됩니다.                      |
| **내부 포트**     | `1-65535` 단일 포트 또는 포트 범위  | 외부 포트와 범위를 맞춰야 합니다.                 | 매핑 규칙은 생성 화면과 동일합니다.                                |
| **설명**        | 최대 200자 문자열               | 선택 입력입니다. 200자를 초과할 수 없습니다.         | 규칙 메모용입니다.                                          |

***

## 포트 포워딩 삭제

* 여러 개를 선택해 삭제할 수 있습니다.
* 포트 포워딩을 삭제하면 해당 리소스에 속한 규칙도 함께 제거됩니다.

⚠️ **주의:** 포트 포워딩 삭제는 **복구할 수 없습니다.** 삭제 전에 반드시 해당 포트 포워딩의 용도를 확인한 후 삭제하세요.
