서브넷으로 작업하기
서브넷을 사용하면 네트워크 트래픽이 오리진에서 대상으로 경로를 보다 효율적으로 이동할 수 있습니다. 서브넷과 함께 네트워크 ACL을 사용하여 각 서브넷 내의 리소스를 보호할 수 있습니다.
시작하기 전에
시작하기 전에 나열된 조건에 따라 다음 조치를 포함하는 하나 이상의 IAM 액세스 역할이 지정되어야 합니다. ‘사용자 > 사용자 > 접근 권한 ’으로 이동하여 접근 권한을 확인할 수 있습니다.
is.subnet.subnet.createis.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 ’ 동작을 사용하는 사용자 지정 경로를 구성해야 합니다.
콘솔에서 서브넷 생성하기
콘솔에서 서브넷을 만들려면 다음 단계를 따르세요:
-
브라우저에서 IBM Cloud 콘솔을 여십시오.
-
탐색 메뉴
선택한 다음 인프라
> 네트워크 > 서브넷을 클릭합니다.
-
VPC용 서브넷 목록 테이블에서 만들기를 클릭합니다.
-
'위치' 섹션에서 다음 정보를 입력하십시오:
- 지리학: 서브넷을 생성할 일반 영역을 지정합니다.
- 지역: 서브넷을 생성하려는 지역을 나타냅니다.
- 존: 서브넷을 생성할 영역을 지정합니다.
-
‘세부 정보’ 섹션에 다음 정보를 기재하십시오:
- 이름: 서브넷의 고유 ID를 입력하십시오 (예:
my-subnet). - 리소스 그룹: 서브넷에 사용할 리소스 그룹을 선택합니다.
- 태그: 선택적으로 서브넷을 그룹화하는 데 도움이 되는 관련 태그를 추가하십시오.
- 액세스 관리 태그: 선택적으로 액세스 제어 관계를 구성하는 데 도움이 되도록 자원에 액세스 관리 태그를 추가하십시오. 액세스 관리 태그의 유일한 지원 형식은
key:value입니다. 자세한 정보는 태그를 사용하여 리소스에 대한 액세스 제어를 참조하십시오. - 가상 프라이빗 클라우드: 서브넷을 생성하려는 VPC를 선택합니다.
- 이름: 서브넷의 고유 ID를 입력하십시오 (예:
-
IP 범위 선택 섹션에서 다음 정보를 입력합니다:
-
IP 범위: IP 범위에서 가장 효율적인 위치가 자동으로 계산됩니다. 기본 선택사항을 승인하는 대신 IP 범위를 사용자 정의하려면 다른 주소 접두부를 선택하거나 주소 수를 변경하거나 IP 범위를 수동으로 입력하십시오.
-
주소 접두사: 서브넷의 기본 네트워크 접두사를 선택합니다. 이는 서브넷의 IP 주소가 할당되는 더 큰 IP 범위를 결정합니다. VPC 내에서 사용 가능한 접두사 중에서 선택하세요.
-
총 IP 주소: 필요한 총 IPv4 주소 수를 선택합니다.
-
주소 공간: VPC에서 선택한 접두사의 전체 IP 주소 범위를 표시합니다. 이 범위는 서브넷 IP 범위를 할당할 수 있는 경계를 정의합니다.
-
라우팅 테이블: 새 서브넷에서 사용할 라우팅 테이블을 선택합니다.
-
서브네트 액세스 제어 리스트: 새 서브네트가 사용할 액세스 제어 리스트를 선택하십시오.
-
퍼블릭 게이트웨이: 스위치를 연결됨으로 전환하여 서브넷이 공용 인터넷과 통신하도록 할지 여부를 표시합니다.
공용 게이트웨이를 연결하면 플로팅 IP가 생성되고 비용이 발생합니다.
-
-
요약 패널에서 서브넷 생성을 클릭합니다.
첨부된 자원 탭
첨부된 리소스 탭에는 서브넷에 연결된 모든 리소스가 나열되며, 생성할 수 있습니다:
- 인스턴스
- 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를 사용하여 서브넷을 만들려면 다음 지침을 따르세요:
- API 환경을 설정하십시오.
- 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_versionstring |
이 서브넷에 대해 지원해야 할 IP 버전. 허용되는 값입니다: [ipv4] |
name필수 string |
이 서브넷의 이름입니다. VPC 내의 다른 서브넷에서는 해당 이름을 사용해서는 안 됩니다. 지정되지 않은 경우, 이름은 무작위로 선택된 단어들의 하이픈으로 연결된 목록이 될 것입니다. 가능한 값: 1 ≤ 길이 ≤ 63, 값은 정규식과 일치해야 함 ([a-z]|[a-z][-a-z0-9]*[a-z0-9])$예시: my-subnet |
network_aclstring |
이 서브넷에 사용할 네트워크 ACL. 지정되지 않은 경우 VPC의 기본 네트워크 ACL이 사용됩니다. 하나: NetworkACLIdentityById, NetworkACLIdentityByCRN, NetworkACLIdentityHref |
public_gatewaystring |
이 서브넷의 인터넷으로 전송되는 트래픽에 사용할 공용 게이트웨이. 지정되지 않은 경우, 해당 서브넷은 공용 게이트웨이에 연결되지 않습니다. 하나: PublicGatewayIdentityById, PublicGatewayIdentityByCRN, PublicGatewayIdentityByHref |
resource_groupResourceGroupIdentityById |
사용할 자원 그룹입니다. 명시되지 않은 경우, 계정의 기본 리소스 그룹이 사용됩니다. |
routing_tablestring |
이 서브넷에 사용할 라우팅 테이블. 지정되지 않은 경우 VPC의 기본 라우팅 테이블이 사용됩니다. 라우팅 테이블 속성 route_direct_link_ingress, route_internet_ingress, route_transit_gateway_ingress, 및 는 route_vpc_zone_ingress 반드시 이어야
합니다 false.하나: RoutingTableIdentityById, RoutingTableIdentityByCRN, RoutingTableIdentityByHref |
SubnetByTotalCountint 64또는 SubnetByCIDRstring |
에 대해 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" }
}'
요청을 시작하면 다음과 같은 응답이 표시됩니다:
| 응답 본문 | 세부사항 |
|---|---|
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_gatewayPublicGatewayReference |
이 서브넷의 인터넷으로 전송되는 트래픽에 사용할 공용 게이트웨이. |
| 상태 코드 | 의미 |
|---|---|
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에서 서브넷을 검색하려면 다음 지시사항을 따르십시오.
- API 환경을 설정하십시오.
- 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 |
- 모든 변수의 초기화가 완료되면 명령을 실행하십시오.
다음 예를 참조하십시오.
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_gatewayPublicGatewayReference |
이 서브넷의 인터넷으로 전송되는 트래픽에 사용할 공용 게이트웨이. |
| 상태 코드 | 의미 |
|---|---|
200 |
서브넷을 성공적으로 조회했습니다. |
404 |
지정된 식별자를 가진 서브넷을 찾을 수 없습니다. |
자세한 정보(, Node, Python 및 Go Java 예제 포함)는 VPC API 참조 문서의 "서브넷 검색" 항목을 참조하십시오.