> 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/subnet.md).

# 서브넷

`서브넷`은 VPC 내부 주소 공간을 실제 서비스 단위로 분리하는 메뉴입니다. 퍼블릭/프라이빗 유형에 따라 외부 통신 가능 여부와 플로팅 IP, 포트포워딩의 사용 가능 여부가 달라집니다.

## 화면 개요

* `목록 화면`: 서브넷 현황을 조회하고 생성, 편집, 삭제 작업을 시작합니다.
* `상세 화면`: 선택한 서브넷의 주소 정보, DNS 서버 주소, NACL 연결 상태를 확인하고, 하단에서 연결된 인스턴스 목록을 조회합니다.
* `생성/편집 화면`: 이름, 설명, VPC, IP / CIDR, 타입, DNS 관련 항목을 입력하거나 수정합니다.

## 서브넷 목록

### 주요 작업

* `생성`: 새로운 서브넷을 생성합니다.
* `편집`: 선택한 1개 서브넷의 설정을 편집합니다.
* `삭제`: 선택한 서브넷을 삭제합니다. 여러 개를 선택할 수 있습니다.

### 테이블 컬럼

| 컬럼            | 설명                                                          |
| ------------- | ----------------------------------------------------------- |
| **이름**        | 서브넷의 이름입니다. **클릭 시 상세 화면으로 이동**합니다.                         |
| **ID**        | 서브넷의 고유 ID입니다.                                              |
| **VPC**       | 서브넷이 속한 VPC의 이름입니다.                                         |
| **타입**        | `퍼블릭 서브넷`, `프라이빗 서브넷` 중 하나입니다.                              |
| **IP / CIDR** | 서브넷의 주소 대역입니다.                                              |
| **주소 사용 현황**  | 현재 **사용 중인 IP 수**와 시스템 예약 IP를 제외한 **사용 가능 전체 IP 수**를 표시합니다. |
| **설명**        | 서브넷에 대한 설명입니다.                                              |
| **생성 일시**     | 서브넷이 생성된 날짜와 시각입니다.                                         |

***

## 서브넷 상세

상세 화면에서는 다음 정보를 확인할 수 있습니다.

### 상단 요약

* **이름**: 서브넷의 이름입니다.
* **ID**: 서브넷의 고유 ID입니다.
* **VPC**: 서브넷이 속한 VPC의 이름입니다.
* **타입**: `퍼블릭 서브넷`, `프라이빗 서브넷` 중 하나입니다.
* **IP / CIDR**: 서브넷의 주소 범위입니다.
* **기본 게이트웨이**: 서브넷의 게이트웨이 IP주소입니다.
* **DNS 서버**: 서브넷에 적용된 DNS 서버 주소입니다. 인스턴스에서 이 서브넷의 네트워크 인터페이스가 기본 인터페이스로 사용되면, 해당 DNS 서버가 인스턴스 내부의 이름 해석 기준으로 적용될 수 있습니다.
* **주소 사용 현황**: **사용 중인 IP 수**와 시스템 예약 IP를 제외한 **사용 가능 전체 IP 수**입니다.
* **Network ACL**: 서브넷이 연결된 NACL(Network ACL)의 이름입니다.
* **설명**: 서브넷에 대한 설명입니다.
* **생성 일시**: 서브넷이 생성된 날짜와 시각입니다.

### 하단 패널: 연결된 리소스

* 하단 `연결된 리소스` 패널에서 현재 서브넷에 연결된 리소스를 확인할 수 있습니다.
* 현재 UI에서는 `인스턴스` 탭이 제공되며, 이 서브넷에 연결된 인스턴스 목록을 조회합니다.
* 인스턴스 목록은 페이지 단위로 조회되며, 항목을 클릭하면 해당 인스턴스 상세 화면으로 이동합니다.

> 💡 **참고:**
>
> * **퍼블릭 서브넷**은 외부 네트워크와 통신할 수 있습니다.
> * **프라이빗 서브넷**은 외부 통신이 제한됩니다.

***

## 서브넷 생성

### 기본 정보

* **이름**: 서브넷을 식별하는 이름입니다. (예: `web-subnet`, `app-private`)
* **설명**: 서브넷 용도, 서비스 계층, 운영 메모를 적습니다.

### 네트워크 정보

* **VPC**: 서브넷이 속할 상위 VPC를 선택합니다.
* **IP / CIDR**: 선택한 VPC 안에서 실제로 사용할 하위 주소 대역을 입력합니다.
* **타입**: `퍼블릭 서브넷`, `프라이빗 서브넷` 중 하나를 선택합니다.
* **DNS 서버**: 서브넷 내 리소스가 도메인 주소를 해석할 때 참조할 DNS 서버 주소입니다. 입력란은 비어 있으며, 기본으로 사용할 DNS 서버 주소가 안내 문구로 표시됩니다.

> 💡 **참고: 서브넷 타입 선택 가이드**
>
> 퍼블릭과 프라이빗 서브넷은 **외부 연결성 및 접근성 여부**에 따라 구분됩니다.

| 구분    | 퍼블릭 서브넷             | 프라이빗 서브넷                  |
| ----- | ------------------- | ------------------------- |
| 외부 통신 | 가능                  | 불가능                       |
| 접근 설정 | 플로팅 IP, 포트포워딩 설정 가능 | 플로팅 IP, 포트포워딩 설정 불가       |
| 주요 용도 | 외부 노출용 서비스          | 내부 애플리케이션, 백엔드 서버 (보안 영역) |

> 💡 **참고**: DNS 서버 설정 가이드
>
> DNS 서버는 도메인 이름(예: `google.com`)을 IP 주소로 변환해주는 역할을 합니다.
>
> **1. 기본 동작 (권장)**
>
> * VPC를 선택해도 DNS 서버 값이 입력란에 자동으로 입력되지는 않습니다. 대신 입력란에서 기본으로 사용할 DNS 서버 주소를 안내합니다.
> * 기본 DNS 서버는 `VPC 네트워크 주소의 두 번째 IP`입니다. 예를 들어 VPC CIDR이 `10.0.0.0/24`이면 기본 DNS 서버는 `10.0.0.2`입니다.
> * DNS 서버 값을 비워두고 생성하면 서버에서 이 기본값으로 채워 생성 결과에 반영합니다.
> * 이 주소는 내부 통신은 물론, **내부 리소스의 외부 도메인 질의까지 모두 처리**합니다. 대부분의 환경에서 변경 없이 그대로 사용하는 것을 권장합니다.
>
> **2. 서브넷 타입별 설정**
>
> * 현재 UI에서는 퍼블릭/프라이빗 구분 없이 DNS 서버 입력란이 제공됩니다.
> * 기본적으로는 자동 입력된 값을 사용하되, 아래와 같은 **특수한 운영 정책이 필요한 경우에만 수동으로 변경**합니다.
>   * 기업 내부망 전용 DNS 서버를 연결해야 하는 경우
>   * 특정 외부 DNS(예: `8.8.8.8`, `1.1.1.1`)를 반드시 직접 지정해야 하는 경우

### 입력 필드 유효성

| 필드            | 허용 값                     | 검증 규칙                                                 | 비고                                                                 |
| ------------- | ------------------------ | ----------------------------------------------------- | ------------------------------------------------------------------ |
| **이름**        | 영문, 숫자, `-`, `_` 조합의 문자열 | 필수입니다. 80자 이내로 입력합니다.                                 | 서브넷 식별용 이름입니다.                                                     |
| **설명**        | 최대 200자 문자열              | 선택 입력입니다. 200자를 초과할 수 없습니다.                           | 운영 메모용입니다.                                                         |
| **VPC**       | 현재 프로젝트의 VPC             | 필수입니다. 선택 시 `IP / CIDR`, `DNS 서버` 입력 필드가 활성화됩니다.      | 서브넷이 속할 상위 네트워크입니다.                                                |
| **IP / CIDR** | 선택한 VPC 범위 내부 IPv4 CIDR  | 필수입니다. 선택한 VPC의 하위 네트워크여야 하며 `/16`부터 `/28` 범위를 사용합니다. | VPC 선택 후 입력할 수 있습니다.                                               |
| **타입**        | `퍼블릭 서브넷`, `프라이빗 서브넷`    | 필수입니다. 생성 후 편집할 수 있습니다.                               | 외부 통신 정책에 직접 영향을 줍니다.                                              |
| **DNS 서버**    | IPv4 주소 또는 공란            | 입력하지 않고 비워둘 수 있습니다.                                   | placeholder로 기본 DNS 서버가 표시되며, 기본값은 VPC CIDR 네트워크 주소 기준 두 번째 IP입니다. |

### 생성 시 동작 규칙

* VPC를 선택해야 `IP / CIDR`과 `DNS 서버` 입력 필드가 활성화됩니다.
* `IP / CIDR`은 선택한 VPC의 CIDR 범위 안에 있어야 합니다.
* 생성 모드에서 DNS 서버 입력란은 자동으로 채워지지 않습니다.
* placeholder로 선택한 VPC 기준 기본 DNS 서버가 표시됩니다.
* DNS 서버 값을 비워두면 기본 DNS 서버 값이 사용됩니다.

> ⚠️ **주의:** 시스템 예약 IP 안내
>
> 서브넷의 CIDR 범위 중 일부 IP는 시스템 관리 및 안정적인 네트워크 운영을 위해 자동 예약되므로, 사용자에게 할당되지 않습니다. (인스턴스 네트워크 인터페이스 및 로드밸런서에서 수동 할당으로도 사용 불가합니다.)
>
> **사용 불가(예약)** IP 항목:
>
> * 네트워크 주소: CIDR 대역의 첫 번째 IP
> * 시스템 예약 주소: 네트워크 주소 기준 **+1 \~ +3 IP** (게이트웨이, 내부DNS 등)
> * 브로드캐스트 주소: CIDR 대역의 마지막 IP
>
> 설정 예시:
>
> * IP/CIDR 입력값: 10.0.1.0/24 (총 256개 주소)
> * 실제 할당 가능 범위: 10.0.1.4 \~ 10.0.1.254 (총 251개)

***

## 서브넷 편집

### 편집 항목

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

* **이름**: 화면상 입력란이 제공되며 변경 내용을 함께 확인합니다.
* **타입**: 퍼블릭/프라이빗 여부를 바꿔 외부 통신 정책을 조정합니다.
* **DNS 서버**: 필요한 경우 DNS 서버 주소를 변경할 수 있습니다.
* **설명**: 운영 메모를 갱신합니다.

다음 항목은 편집할 수 없습니다.

* **VPC**: 생성 후 고정됩니다.
* **IP / CIDR**: 생성 후 고정됩니다.

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

| 필드            | 허용 값                     | 검증 규칙                                                  | 비고                                               |
| ------------- | ------------------------ | ------------------------------------------------------ | ------------------------------------------------ |
| **이름**        | 영문, 숫자, `-`, `_` 조합의 문자열 | 필수입니다. 80자 이내로 입력합니다.                                  | 편집 화면에서도 입력란이 표시됩니다.                             |
| **타입**        | `퍼블릭 서브넷`, `프라이빗 서브넷`    | 필수입니다. 현재 사용 중인 리소스의 외부 통신 정책에 영향이 없는지 확인한 뒤 변경해야 합니다. | 편집 화면에서 수정 가능합니다.                                |
| **DNS 서버**    | IPv4 주소 또는 공란            | 값을 비워두고 저장하면 기본 DNS 서버 값이 사용됩니다.                       | 편집 화면에서 입력 가능하며, 기본값은 VPC 네트워크 주소 기준 두 번째 IP입니다. |
| **설명**        | 최대 200자 문자열              | 선택 입력입니다. 200자를 초과할 수 없습니다.                            | 편집 화면에서 수정 가능합니다.                                |
| **VPC**       | 기존 값 고정                  | 편집할 수 없습니다.                                            | 상위 네트워크 변경은 지원하지 않습니다.                           |
| **IP / CIDR** | 기존 값 고정                  | 편집할 수 없습니다.                                            | 주소 대역 변경은 지원하지 않습니다.                             |

> ⚠️ **주의:** DNS 서버 변경 시 영향
>
> 설정된 DNS 서버 정보는 **신규 생성 인스턴스부터 즉시 적용**되며, 기존 인스턴스는 변경 내용을 반영하려면 **종료 후 재실행이 필요**합니다. DNS 서버 값을 비워두고 저장하면 VPC 네트워크 주소 기준 두 번째 IP가 기본값으로 적용됩니다.

### ⚠️ 타입 변경 시 주의사항

* 서비스 영향도 확인: 타입 변경은 외부 통신 및 보안 정책에 즉각 영향을 미치므로, 사용 중인 리소스(인스턴스 등)의 통신 단절 여부를 반드시 사전 검토하세요.
* 퍼블릭 → 프라이빗 변경 제한: 다음 자원이 연결되어 있는 경우 타입 변경이 불가능합니다.
  * 해당 서브넷 리소스에 연결된 **플로팅 IP**
  * 해당 서브넷 대역을 리소스를 대상으로 설정된 **포트 포워딩 규칙**
* 사전 조치 필요: 타입 변경을 위해서는 연결된 플로팅 IP를 해제하거나 포트 포워딩 규칙을 먼저 삭제해야 합니다.
* 기능 제약 발생: 퍼블릭 → 프라이빗 타입으로 변경 시 외부로의 직접적인 접근 및 관련 설정(플로팅 IP 등) 활용이 제한됩니다.

> 💡 **참고:** 타입 변경 시 점검 항목 요약

| 상황             | 사전 조치 사항                          |
| -------------- | --------------------------------- |
| **타입 변경 공통**   | 가동 중인 서비스의 네트워크 통신 영향도 파악         |
| **퍼블릭 → 프라이빗** | 연결된 플로팅 IP 해제 및 포트 포워딩 규칙 삭제 필수   |
| **프라이빗 → 퍼블릭** | 변경 후 외부 통신을 위한 라우팅 및 보안 정책 재설정 필요 |

***

## 서브넷 삭제

* 여러 개를 선택해 삭제할 수 있습니다.
* 사용 중인 IP가 남아 있는 서브넷은 삭제할 수 없습니다.
* 서브넷 삭제 전에 사용 중인 인스턴스, 로드 밸런서를 먼저 삭제해야 합니다.

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

### 삭제 전 점검 항목

1. 주소 사용 현황 확인: 주소 사용 현황이 `0 / 전체` 인지 확인합니다.
2. 연결 리소스 정리: 인스턴스, 로드 밸런서 자원이 남아 있지 않은지 점검합니다.
3. 영향도 평가: 연결된 NACL 정책과 서비스 경로 영향 여부를 확인합니다.
