서브넷으로 작업하기

서브넷을 사용하면 네트워크 트래픽이 오리진에서 대상으로 경로를 보다 효율적으로 이동할 수 있습니다. 서브넷과 함께 네트워크 ACL을 사용하여 각 서브넷 내의 리소스를 보호할 수 있습니다.

시작하기 전에

시작하기 전에 나열된 조건에 따라 다음 조치를 포함하는 하나 이상의 IAM 액세스 역할이 지정되어야 합니다. ‘사용자 > 사용자 > 접근 권한 ’으로 이동하여 접근 권한을 확인할 수 있습니다.

  • is.subnet.subnet.create
  • is.public-gateway.public-gateway.operate ( public_gateway 지정 시 필수)
  • is.network-acl.network-acl.operate

서브넷 만들기

콘솔, CLI 또는 API를 사용하여 서브넷을 생성할 수 있습니다.

서브넷에 RFC 1918에서 정의한 범위(10.0.0.0/8, 172.16.0.0/12 또는 192.168.0.0/16) 외부의 IP 범위를 사용하는 경우, 해당 서브넷에 연결된 인스턴스가 인터넷의 일부 영역에 접속하지 못할 수 있습니다. non-RFC-1918 주소를 사용하면서도 공용 연결(플로팅 IP 주소 또는 공용 게이트웨이)을 지원하는 VPC를 구성할 계획이라면, 반드시 ‘ Delegate-VPC ’ 동작을 사용하는 사용자 지정 경로를 구성해야 합니다.

콘솔에서 서브넷 생성하기

콘솔에서 서브넷을 만들려면 다음 단계를 따르세요:

  1. 브라우저에서 IBM Cloud 콘솔을 여십시오.

  2. 탐색 메뉴 탐색 메뉴 아이콘을 선택한 다음 인프라 VPC 아이콘 > 네트워크 > 서브넷을 클릭합니다.

  3. VPC용 서브넷 목록 테이블에서 만들기를 클릭합니다.

  4. '위치' 섹션에서 다음 정보를 입력하십시오:

    • 지리학: 서브넷을 생성할 일반 영역을 지정합니다.
    • 지역: 서브넷을 생성하려는 지역을 나타냅니다.
    • : 서브넷을 생성할 영역을 지정합니다.
  5. ‘세부 정보’ 섹션에 다음 정보를 기재하십시오:

    • 이름: 서브넷의 고유 ID를 입력하십시오 (예: my-subnet).
    • 리소스 그룹: 서브넷에 사용할 리소스 그룹을 선택합니다.
    • 태그: 선택적으로 서브넷을 그룹화하는 데 도움이 되는 관련 태그를 추가하십시오.
    • 액세스 관리 태그: 선택적으로 액세스 제어 관계를 구성하는 데 도움이 되도록 자원에 액세스 관리 태그를 추가하십시오. 액세스 관리 태그의 유일한 지원 형식은 key:value입니다. 자세한 정보는 태그를 사용하여 리소스에 대한 액세스 제어를 참조하십시오.
    • 가상 프라이빗 클라우드: 서브넷을 생성하려는 VPC를 선택합니다.
  6. IP 범위 선택 섹션에서 다음 정보를 입력합니다:

    • IP 범위: IP 범위에서 가장 효율적인 위치가 자동으로 계산됩니다. 기본 선택사항을 승인하는 대신 IP 범위를 사용자 정의하려면 다른 주소 접두부를 선택하거나 주소 수를 변경하거나 IP 범위를 수동으로 입력하십시오.

    • 주소 접두사: 서브넷의 기본 네트워크 접두사를 선택합니다. 이는 서브넷의 IP 주소가 할당되는 더 큰 IP 범위를 결정합니다. VPC 내에서 사용 가능한 접두사 중에서 선택하세요.

    • 총 IP 주소: 필요한 총 IPv4 주소 수를 선택합니다.

    • 주소 공간: VPC에서 선택한 접두사의 전체 IP 주소 범위를 표시합니다. 이 범위는 서브넷 IP 범위를 할당할 수 있는 경계를 정의합니다.

    • 라우팅 테이블: 새 서브넷에서 사용할 라우팅 테이블을 선택합니다.

    • 서브네트 액세스 제어 리스트: 새 서브네트가 사용할 액세스 제어 리스트를 선택하십시오.

    • 퍼블릭 게이트웨이: 스위치를 연결됨으로 전환하여 서브넷이 공용 인터넷과 통신하도록 할지 여부를 표시합니다.

      공용 게이트웨이를 연결하면 플로팅 IP가 생성되고 비용이 발생합니다.

  7. 요약 패널에서 서브넷 생성을 클릭합니다.

첨부된 자원 탭

첨부된 리소스 탭에는 서브넷에 연결된 모든 리소스가 나열되며, 생성할 수 있습니다:

  • 인스턴스
  • Bare metal servers
  • 인스턴스 템플리트
  • 인스턴스 그룹
  • 로드 밸런서
  • VPN 게이트웨이
  • 가상 엔드포인트 게이트웨이
  • VPN 서버

만들려는 리소스의 리소스 목록 테이블에서 만들기를 클릭합니다. 해당 리소스 생성 워크플로로 이동하여 리소스 생성 프로세스를 시작할 수 있습니다.

예약된 IP 탭

예약 IP 탭에는 서브넷에 대해 예약된 모든 IP 주소가 나열됩니다. 자세한 내용은 IP 주소 관리하기를 참조하세요.

CLI를 사용하여 서브넷 생성하기

CLI에서 서브넷을 생성하려면 다음 명령을 실행하십시오:

ibmcloud is subnet-create SUBNET_NAME VPC ((--zone ZONE_NAME --ipv4-address-count ADDR_COUNT) | --ipv4-cidr-block CIDR_BLOCK) [--acl ACL] [--pgw PGW] [--rt RT] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] {} [--output JSON] [-q, --quiet]

여기서:

SUBNET_NAME
서브넷의 이름입니다.
VPC
VPC의 ID 또는 이름.
--ipv4-cidr-block
서브넷의 IPv4 범위입니다. 이 옵션은 --ipv4-address-count`` 옵션과 상호 배타적입니다.
--ipv4-address-count
필요한 주소의 IPv4 총 개수는 2의 거듭제곱이어야 하며, 최소값은 8입니다. 이 옵션은 --ipv4-cidr-block`` 옵션과 상호 배타적입니다.
--zone
구역의 이름입니다.
--acl
네트워크 ACL의 ID 또는 이름입니다.
--pgw
퍼블릭 게이트웨이의 ID 또는 이름입니다.
--rt
라우팅 테이블의 ID 또는 이름입니다. 이 옵션은 라우팅 테이블의 클라우드 리소스 이름(CRN)도 지원합니다.
--resource-group-id
리소스 그룹의 ID입니다. 이 ID는 --resource-group-name 와 상호 배타적입니다.
--resource-group-name
리소스 그룹의 이름. 이 이름은 ‘ --resource-group-id ’과 상호 배타적입니다.
--output
출력 형식을 지정합니다. JSON만 지원됩니다. JSON 중 하나입니다.
-q, --quiet
상세 출력이 표시되지 않도록 합니다.

API를 사용하여 서브넷 생성하기

API를 사용하여 서브넷을 만들려면 다음 지침을 따르세요:

  1. API 환경을 설정하십시오.
  2. API 명령어에서 사용할 추가 변수를 저장하십시오.
서브넷 생성 매개변수
조회 매개변수 정보
version
필수
string
YYYY-MM-DD 형식의 날짜를 기준으로 해당 날짜 시점의 API 버전을 요청합니다. 현재 날짜까지의 모든 날짜를 제공할 수 있습니다. 현재 날짜를 지정하여 최신 버전을 요청하십시오.
가능한 값입니다: 값은 정규식과 일치해야 합니다 ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
generation
필수
int32
인프라 세대.
가능한 값: 2
요청 본문
필수
서브넷 프로토타입 객체.
vpc
필수
string
이 서브넷이 상주하는 VPC입니다.
하나: VPCIdentityById, VPCIdentityByCRN, VPCIdentityByHref
ip_version
string
이 서브넷에 대해 지원해야 할 IP 버전. 허용되는 값입니다: [ipv4]
name
필수
string
이 서브넷의 이름입니다. VPC 내의 다른 서브넷에서는 해당 이름을 사용해서는 안 됩니다. 지정되지 않은 경우, 이름은 무작위로 선택된 단어들의 하이픈으로 연결된 목록이 될 것입니다.
가능한 값: 1 ≤ 길이 ≤ 63, 값은 정규식과 일치해야 함 ([a-z]|[a-z][-a-z0-9]*[a-z0-9])$
예시: my-subnet
network_acl
string
이 서브넷에 사용할 네트워크 ACL. 지정되지 않은 경우 VPC의 기본 네트워크 ACL이 사용됩니다.
하나: NetworkACLIdentityById, NetworkACLIdentityByCRN, NetworkACLIdentityHref
public_gateway
string
이 서브넷의 인터넷으로 전송되는 트래픽에 사용할 공용 게이트웨이. 지정되지 않은 경우, 해당 서브넷은 공용 게이트웨이에 연결되지 않습니다.
하나: PublicGatewayIdentityById, PublicGatewayIdentityByCRN, PublicGatewayIdentityByHref
resource_group
ResourceGroupIdentityById
사용할 자원 그룹입니다. 명시되지 않은 경우, 계정의 기본 리소스 그룹이 사용됩니다.
routing_table
string
이 서브넷에 사용할 라우팅 테이블. 지정되지 않은 경우 VPC의 기본 라우팅 테이블이 사용됩니다. 라우팅 테이블 속성 route_direct_link_ingress, route_internet_ingress, route_transit_gateway_ingress, 및 는 route_vpc_zone_ingress 반드시 이어야 합니다 false.
하나: RoutingTableIdentityById, RoutingTableIdentityByCRN, RoutingTableIdentityByHref
SubnetByTotalCount
int 64
또는
SubnetByCIDR
string
에 대해 SubnetByTotalCount, 필요한 총 주소 IPv4 수를 지정하십시오. 에 대해 SubnetByCIDR, 서브넷의 범위를 IPv4 CIDR 형식으로 지정하십시오. 두 옵션 모두 서브넷을 생성할 위치를 zone 지정해야 합니다.

모든 변수가 시작되면 요청을 제출하십시오.

다음 예를 참조하십시오.

curl -X POST
"$vpc_api_endpoint/v1/subnets?version=2022-10-31&generation=2"
-H "Authorization: Bearer $iam_token"
-d '{
      "name": "my-subnet-1",
      "ipv4_cidr_block": "10.0.1.0/24",
      "ip_version": "ipv4",
      "zone": { "name": "us-south-1" },
      "vpc": { "id": "a0819609-0997-4f92-9409-86c95ddf59d3" }
    }'

요청을 시작하면 다음과 같은 응답이 표시됩니다:

API 응답 예시
응답 본문 세부사항
available_ipv4_address_count
항상 포함
int64
이 서브넷에서 사용 중이 아니며 사용자 또는 공급업체가 예약하지 않은 IPv4 주소의 수입니다.
예: 15
created_at
항상 포함
date-time
이 서브넷이 생성된 날짜와 시간입니다.
crn
항상 포함
string
이 서브넷의 CRN.
가능한 값입니다: 9 ≤ 길이 ≤ 512
예시: crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e
href
항상 포함*
string
이 서브넷의 URL
가능한 값입니다: 10 ≤ 길이 ≤ 8000, 값은 정규식과 일치해야 함 ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$
예시: https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e
id
항상 포함
string
이 서브넷의 고유 식별자
가능한 값입니다: 1 ≤ 길이 ≤ 64, 값은 정규식 ^[-0-9a-z_]+$
예시와 일치해야 합니다: 7ec86020-1c6e-4889-b3f0-a15f2e50f87e
ip_version
항상 포함
string
이 서브넷에서 지원하는 IP 버전(들).
가능한 값: [ipv4]
ipv4_cidr_block
항상 포함
string
서브넷의 IPv4 범위는 CIDR 형식으로 표현됩니다.
가능한 값: 9 ≤ 길이 ≤ 18, 값은 정규식과 일치해야 함 ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/(3[0-2]|[1-2][0-9]|[0-9]))$
예시: 10.0.0.0/24
name
항상 포함
string
이 서브넷의 이름입니다. 이 이름은 VPC 내 모든 서브넷에서 고유합니다.
가능한 값: 1 ≤ 길이 ≤ 63, 값은 정규식과 일치해야 함 ^-?([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$
예시: my-subnet
network_acl 항상 포함됨
NetworkACLReference
resource_group
항상 포함
ResourceGroupReference
이 서브넷의 리소스 그룹.
resource_type
항상 포함
string
리소스 유형입니다.
가능한 값: 1 ≤ 길이 ≤ 128, 값은 정규식과 일치해야 함 ^[a-z][a-z0-9]*(_[a-z0-9]+)*$
예시: subnet
routing_table
항상 포함
RoutingTableReference
이 서브넷의 라우팅 테이블.
status
항상 포함
string
서브넷의 상태.
가능한 값: available,deleting,failed, pending
total_ipv4_address_count
항상 포함
int64
vpc
항상 포함
VPCReference
이 서브넷이 상주하는 VPC입니다.
zone
항상 포함
ZoneReference
이 서브넷이 속한 영역.
public_gateway
PublicGatewayReference
이 서브넷의 인터넷으로 전송되는 트래픽에 사용할 공용 게이트웨이.
상태 코드 생성
상태 코드 의미
201 서브넷이 작성되었습니다.
400 잘못된 서브넷 프로토타입 객체가 제공되었습니다.
409 서브넷 프로토타입 객체가 VPC 내의 다른 서브넷과 충돌하거나, VPC의 주소 접두사 범위를 벗어난 CIDR 블록을 지정합니다.

자세한 정보(예 Java: Node,, Python 및 Go 예제 포함)는 VPC API 참조 문서의 create a subnet 메서드를 참조하십시오.

서브넷 보기

UI, API 또는 CLI를 사용하여 VPC에서 서브넷의 세부사항을 볼 수 있습니다.

콘솔에서 서브넷 보기

서브넷이 생성된 후에는 VPC용 서브넷 목록에 표시됩니다.

콘솔의 목록에서 서브넷에 대한 세부 정보를 보려면 이름 열의 해당 서브넷 링크를 클릭하십시오. 개요 탭에는 서브넷 생성 시 사용한 정보가 표시됩니다.

CLI에서 서브넷 보기

VPC의 서브넷에 대한 세부 정보를 CLI에서 보려면 다음 명령을 실행하십시오:

ibmcloud is subnet SUBNET [--vpc VPC] [--show-attached] [--output JSON] [-q, --quiet]

여기서:

SUBNET
서브넷의 ID 또는 이름입니다.
--vpc
VPC의 ID 또는 이름. 이 VPC 내에서 이름으로 고유한 리소스를 지정하는 데만 필요합니다.
--show-attached
서브넷에 연결된 리소스(인스턴스, 로드 밸런서, VPN 게이트웨이)의 세부사항을 봅니다.
--output
출력 형식을 지정합니다. JSON만 지원됩니다. 다음 중 하나: JSON
-q, --quiet
상세 출력이 표시되지 않도록 합니다.

API를 사용하여 서브넷 보기

이 메소드를 호출하려면 다음 조치를 포함하는 하나 이상의 IAM 액세스 역할이 지정되어야 합니다. ‘사용자 > 사용자 > 접근 권한 ’으로 이동하여 접근 권한을 확인할 수 있습니다.

  • is.subnet.subnet.read

API를 사용하여 VPC에서 서브넷을 검색하려면 다음 지시사항을 따르십시오.

  1. API 환경을 설정하십시오.
  2. API 명령어에서 사용할 추가 변수를 저장하십시오.
서브넷 검색 매개변수
조회 매개변수 정보
id
필수
string
서브넷 식별자.
허용되는 값: 1 ≤ 길이 ≤ 64, 값은 정규 표현식과 일치해야 함 ^[-0-9a-z_]+$
version
필수
string
YYYY-MM-DD 형식의 날짜를 기준으로 해당 날짜 시점의 API 버전을 요청합니다. 현재 날짜까지의 모든 날짜를 제공할 수 있습니다. 현재 날짜를 지정하여 최신 버전을 요청하십시오.
가능한 값입니다: 값은 정규식과 일치해야 합니다 ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
generation
필수
int32
인프라 세대.
허용 가능한 값: 2
  1. 모든 변수의 초기화가 완료되면 명령을 실행하십시오.

다음 예를 참조하십시오.

curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet_id?version=2022-10-31&generation=2"
-H "Authorization: Bearer $iam_token"

요청을 시작하면 다음과 같은 응답이 표시됩니다:

응답 시작 예시 검색
응답 본문 세부사항
available_ipv4_address_count
항상 포함
int64
이 서브넷에서 사용 중이 아니며 사용자 또는 공급업체가 예약하지 않은 IPv4 주소의 수입니다.
예: 15
created_at
항상 포함
날짜-시간
이 서브넷이 생성된 날짜와 시간입니다.
crn
항상 포함
string
이 서브넷의 CRN
가능한 값입니다: 9 ≤ 길이 ≤ 512
예시: crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e
href
항상 포함*
string
이 서브넷의 URL
가능한 값입니다: 10 ≤ 길이 ≤ 8000, 값은 정규식과 일치해야 함 ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$
예시: https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e
id
항상 포함
string
이 서브넷의 고유 식별자
가능한 값입니다: 1 ≤ 길이 ≤ 64, 값은 정규식 ^[-0-9a-z_]+$
예시와 일치해야 합니다: 7ec86020-1c6e-4889-b3f0-a15f2e50f87e
ip_version
항상 포함
string
이 서브넷에서 지원하는 IP 버전.
가능한 값: [ipv4]
ipv4_cidr_block
항상 포함
string
CIDR 형식으로 표시된 서브넷의 IPv4 범위.
가능한 값: 9 ≤ 길이 ≤ 18, 값은 정규식과 일치해야 함 ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/(3[0-2]|[1-2][0-9]|[0-9]))$
예시: 10.0.0.0/24
name
항상 포함
string
이 서브넷의 이름입니다. 이 이름은 VPC 내 모든 서브넷에서 고유합니다.
가능한 값: 1 ≤ 길이 ≤ 63, 값은 정규식과 일치해야 함 ^-?([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$
예시: my-subnet
network_acl 항상 포함됨
NetworkACLReference
resource_group
항상 포함
ResourceGroupReference
이 서브넷의 리소스 그룹.
resource_type
항상 포함
string
리소스 유형입니다.
가능한 값: 1 ≤ 길이 ≤ 128, 값은 정규식과 일치해야 함 ^[a-z][a-z0-9]*(_[a-z0-9]+)*$
예시: subnet
routing_table
항상 포함
RoutingTableReference
이 서브넷의 라우팅 테이블.
status
항상 포함
string
서브넷의 상태.
가능한 값: available,deleting,failed, pending
total_ipv4_address_count
항상 포함
int64
vpc
항상 포함
VPCReference
이 서브넷이 상주하는 VPC입니다.
zone
항상 포함
ZoneReference
이 서브넷이 속한 영역.
public_gateway
PublicGatewayReference
이 서브넷의 인터넷으로 전송되는 트래픽에 사용할 공용 게이트웨이.
상태 코드 조회
상태 코드 의미
200 서브넷을 성공적으로 조회했습니다.
404 지정된 식별자를 가진 서브넷을 찾을 수 없습니다.

자세한 정보(, Node, Python 및 Go Java 예제 포함)는 VPC API 참조 문서의 "서브넷 검색" 항목을 참조하십시오.