VPC에서 서브넷에 대한 작업
서브넷을 사용하면 네트워크 트래픽이 오리진에서 대상으로 경로를 보다 효율적으로 이동할 수 있습니다. 서브넷과 함께 액세스 제어 목록 (ACL) 을 사용하여 각 서브넷 내의 리소스를 보호할 수 있습니다.
시작하기 전에
시작하기 전에 나열된 조건에 따라 다음 조치를 포함하는 하나 이상의 IAM 액세스 역할이 지정되어야 합니다. 사용자 > 사용자 > 액세스 권한으로 이동하여 액세스 권한을 확인할 수 있습니다.
is.subnet.subnet.create
is.public-gateway.public-gateway.operate
public_gateway
지정 시 필수is.network-acl.network-acl.operate
VPC에서 서브넷 만들기
콘솔, CLI 또는 API를 사용하여 VPC에서 서브넷을 만들 수 있습니다.
서브넷에 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 작업이 포함된 사용자 지정 경로를 사용해야 합니다.
UI를 사용하여 VPC에서 서브넷 작성
VPC 인스턴스에서 서브넷을 작성하려면 다음 단계를 수행하십시오.
-
브라우저에서 IBM Cloud 콘솔을 여십시오.
-
탐색 메뉴
선택한 다음 인프라 > 네트워크 > 서브넷을 클릭합니다.
-
VPC용 서브넷 목록 테이블에서 +작성 을 클릭하십시오.
-
위치 섹션에서 다음 정보를 입력합니다:
- 지리학: 서브넷을 생성할 일반 영역을 지정합니다.
- 지역: 서브넷을 생성하려는 지역을 나타냅니다.
- 존: 서브넷을 생성할 영역을 지정합니다.
-
세부 정보 섹션에서 다음 정보를 입력합니다:
- 이름: 서브넷의 고유 ID를 입력하십시오 (예:
my-subnet
). - 리소스 그룹: 서브넷의 리소스 그룹을 선택합니다.
- 태그: 선택적으로 서브넷을 그룹화하는 데 도움이 되는 관련 태그를 추가하십시오.
- 액세스 관리 태그: 선택적으로 액세스 제어 관계를 구성하는 데 도움이 되도록 자원에 액세스 관리 태그를 추가하십시오. 액세스 관리 태그의 유일한 지원 형식은
key:value
입니다. 자세한 정보는 태그를 사용하여 리소스에 대한 액세스 제어를 참조하십시오. - 가상 프라이빗 클라우드: 서브넷을 생성하려는 VPC를 선택합니다.
- IP 범위 선택: IP 범위의 가장 효율적인 위치가 자동으로 계산됩니다. 기본 선택사항을 승인하는 대신 IP 범위를 사용자 정의하려면 다른 주소 접두부를 선택하거나 주소 수를 변경하거나 IP 범위를 수동으로 입력하십시오.
- 라우팅 테이블: 새 서브넷에서 사용할 라우팅 테이블을 선택합니다.
- 서브네트 액세스 제어 리스트: 새 서브네트가 사용할 액세스 제어 리스트를 선택하십시오.
- 퍼블릭 게이트웨이: 스위치를 연결됨으로 전환하여 서브넷이 공용 인터넷과 통신하도록 할지 여부를 표시합니다. 퍼블릭 게이트웨이를 연결하면 유동 IP 가 작성되고 비용이 발생합니다.
- 이름: 서브넷의 고유 ID를 입력하십시오 (예:
-
요약 패널에서 서브넷 작성 을 클릭하여 서브넷을 작성하십시오.
첨부된 자원 탭
연결된 자원 탭은 서브넷에 연결된 모든 자원을 나열하고 새 자원을 작성하고 연결하는 방법을 제공합니다. 이 탭에서 다음 자원을 작성할 수 있습니다.
- 인스턴스
- Bare metal servers
- 인스턴스 템플리트
- 인스턴스 그룹
- 로드 밸런서
- VPN 게이트웨이
- 가상 엔드포인트 게이트웨이
- VPN 서버
작성할 자원의 자원 목록 테이블에서 작성+ 을 클릭하십시오. 자원 작성 프로세스를 시작할 수 있는 각 자원 작성 워크플로우가 표시됩니다.
예약된 IP 탭
예약된 IP 탭은 서브넷과 연관된 모든 예약된 IP의 목록입니다. 예약된 IP에 대한 자세한 정보는 IP 주소 관리 를 참조하십시오.
CLI를 사용하여 VPC에서 서브넷 작성
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를 사용하여 VPC에서 서브넷 작성
API를 사용하여 VPC에서 서브넷을 작성하려면 다음 지시사항을 따르십시오.
- API 환경을 설정하십시오.
- API 명령에 사용할 추가 변수를 저장합니다.
조회 매개변수 | 정보 |
---|---|
version 필수 string |
날짜 형식 기준으로 API 버전을 요청합니다YYYY-MM-DD . Any date up to the current date may be provided. Specify the current date to request the latest version.가능한 값: 값이 정규식과 일치해야 함 ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ |
generation 필수 int32 |
인프라 생성입니다. 가능한 값: 2 |
요청 본문 필수 |
서브넷 프로토타입 오브젝트입니다. |
vpc 필수 문자열 |
서브넷이 상주할 VPC입니다. 다음 중 하나: VPCIdentityById , VPCIdentityByCRN , VPCIdentityByHref |
ip_version 문자열 |
이 서브넷에 대해 지원할 IP 버전입니다. 허용 가능한 값: [ipv4] |
name 필수 문자열 |
이 서브넷의 이름입니다. 이 이름은 VPC의 다른 서브넷에서 사용해서는 안 됩니다. 지정하지 않으면 이름은 무작위로 선택된 단어의 하이픈으로 묶인 목록이 됩니다. 가능한 값: 1 ≤ length ≤ 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 문자열 |
이 서브넷에 사용할 라우팅 테이블입니다. 지정되지 않은 경우 VPC의 기본 라우팅 테이블이 사용됩니다. 라우팅 테이블 특성 route_direct_link_ingress , route_internet_ingress , route_transit_gateway_ingress 및 route_vpc_zone_ingress 은 false 이어야 합니다.다음 중 하나: RoutingTableIdentityById , RoutingTableIdentityByCRN , RoutingTableIdentityByHref |
서브넷별총수 정수 64 또는 SubnetByCIDR 문자열 |
용 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" }
}'
요청을 시작하면 다음 응답이 표시됩니다:
응답 본문 | 세부사항 |
---|---|
사용 가능한 ipv4_address_count 항상 포함됨 이 서브넷에 사용 중이지 않고 사용자 또는 제공자가 예약하지 않은 int64 |
The 수의 IPv4 주소가 있습니다. 예시: 15 |
created_at 항상 포함됨 date-time |
서브넷이 작성된 날짜 및 시간 |
crn 항상 포함됨 string |
이 서브넷의 CRN 가능한 값: 9 ≤ length ≤ 512 예제: crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
|
이 서브넷에 대한 URL 가능한 값입니다: 10 ≤ 길이 ≤ 8000, 값은 정규식과 일치해야 합니다 ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$ 예시: https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
|
이 서브넷의 고유 ID 가능한 값: 1 ≤ length ≤ 64, 값은 정규식과 일치해야 함 ^[-0-9a-z_]+$ 예제: 7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
ip_version 항상 포함됨 문자열 |
이 서브넷에서 지원되는 IP 버전입니다. 가능한 값: [ipv4] |
** | ipv4_cidr_block** 항상 포함 문자열 |
name 항상 포함 문자열 |
이 서브넷의 이름입니다. 이름은 VPC의 모든 서브넷에서 고유합니다. 가능한 값: 1 ≤ length ≤ 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 |
** | resource_group** 항상 포함 ResourceGroupReference |
resource_type 항상 포함됨 string |
자원 유형입니다. 가능한 값: 1 ≤ length ≤ 128, 값은 정규식과 일치해야 함 ^[a-z][a-z0-9]*(_[a-z0-9]+)*$ 예제: subnet |
라우팅 테이블 항상 RoutingTableReference |
The 이 서브넷의 라우팅 테이블을 포함합니다 |
status 항상 포함됨 문자열 |
서브넷의 상태입니다. 가능한 값: available ,deleting ,failed , pending |
** | 총_IPV4_주소_수** 항상 포함 int64 |
vpc 항상 포함됨 VPCReference |
이 서브넷이 상주하는 VPC입니다. |
영역 항상 포함 ZoneReference |
The 이 서브넷이 속한 영역. |
이 서브넷의 인터넷 바운드 트래픽에 사용할 공용 게이트웨이입니다. ** | public_gateway** PublicGatewayReference |
상태 코드 | |
---|---|
** | 201 |
400 | 올바르지 않은 서브넷 프로토타입 오브젝트가 제공되었습니다. |
409 | 서브넷 프로토타입 오브젝트가 VPC의 다른 서브넷과 충돌하거나 VPC의 주소 접두부 외부에 CIDR 블록을 지정합니다. |
자세한 정보 ( Java, Node, Python 및 Go 예제 포함) 는 VPC API 참조 에서 "서브넷 작성" 을 참조하십시오.
VPC에서 서브넷 보기
UI, API 또는 CLI를 사용하여 VPC에서 서브넷의 세부사항을 볼 수 있습니다.
UI를 사용하여 VPC에서 서브넷 보기
서브넷을 작성하면 VPC의 서브넷 목록에 표시됩니다.
콘솔을 사용하여 목록에서 서브넷에 대한 세부 정보를 보려면 이름 열에서 해당 서브넷의 링크를 클릭합니다. 개요 탭은 서브넷 작성에서 사용한 정보를 표시합니다.
CLI를 사용하여 VPC에서 서브넷 보기
CLI를 사용하여 VPC의 서브넷에 대한 세부사항을 보려면 다음 명령을 실행하십시오.
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를 사용하여 VPC에서 서브넷 보기
이 메소드를 호출하려면 다음 조치를 포함하는 하나 이상의 IAM 액세스 역할이 지정되어야 합니다. 사용자 > 사용자 > 액세스에서 액세스 권한을 확인할 수 있습니다
is.subnet.subnet.read
API를 사용하여 VPC에서 서브넷을 검색하려면 다음 지시사항을 따르십시오.
- API 환경을 설정하십시오.
- API 명령에 사용할 추가 변수를 저장합니다.
조회 매개변수 | 정보 |
---|---|
id 필수 문자열 |
서브넷 ID입니다. 가능한 값: 1 ≤ 길이 ≤ 64, 값은 정규식과 일치해야 합니다 ^[-0-9a-z_]+$ |
버전 필수 문자열 |
날짜 기준 API 버전을 YYYY-MM-DD 형식으로 요청합니다. Any date up to the current date may be provided. Specify the current date to request the latest version.가능한 값: 값이 정규식과 일치해야 함 ^[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"
요청을 시작하면 다음 응답이 표시됩니다:
응답 본문 | 세부사항 |
---|---|
사용 가능한 ipv4_address_count 항상 포함됨 이 서브넷에 사용 중이지 않고 사용자 또는 제공자가 예약하지 않은 int64 |
The 수의 IPv4 주소가 있습니다. 예시: 15 |
created_at 항상 포함됨 date-time |
서브넷이 작성된 날짜 및 시간 |
crn 항상 포함됨 string |
이 서브넷의 CRN 가능한 값: 9 ≤ length ≤ 512 예제: crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
|
이 서브넷에 대한 URL 가능한 값입니다: 10 ≤ 길이 ≤ 8000, 값은 정규식과 일치해야 합니다 ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$ 예시: https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
|
이 서브넷의 고유 ID 가능한 값: 1 ≤ length ≤ 64, 값은 정규식과 일치해야 함 ^[-0-9a-z_]+$ 예제: 7ec86020-1c6e-4889-b3f0-a15f2e50f87e |
IP_버전 항상 포함됨 문자열 |
이 서브넷에서 지원하는 IP 버전입니다. 가능한 값: [ipv4] |
** | ipv4_cidr_block** 항상 포함 문자열&버바;서브넷의 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 항상 포함 문자열 |
이 서브넷의 이름입니다. 이름은 VPC의 모든 서브넷에서 고유합니다. 가능한 값: 1 ≤ length ≤ 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 |
** | resource_group** 항상 포함 ResourceGroupReference |
resource_type 항상 포함됨 string |
자원 유형입니다. 가능한 값: 1 ≤ length ≤ 128, 값은 정규식과 일치해야 함 ^[a-z][a-z0-9]*(_[a-z0-9]+)*$ 예제: subnet |
라우팅 테이블 항상 RoutingTableReference |
The 이 서브넷의 라우팅 테이블을 포함합니다 |
status 항상 포함됨 문자열 |
서브넷의 상태입니다. 가능한 값: available ,deleting ,failed , pending |
** | 총_IPV4_주소_수** 항상 포함 int64 |
vpc 항상 포함됨 VPCReference |
이 서브넷이 상주하는 VPC입니다. |
영역 항상 포함 ZoneReference |
The 이 서브넷이 속한 영역. |
이 서브넷의 인터넷 바운드 트래픽에 사용할 공용 게이트웨이입니다. ** | public_gateway** PublicGatewayReference |
상태 코드 | |
---|---|
200 | 서브넷이 검색되었습니다. |
**404 | ** 지정한 식별자를 가진 서브넷을 찾을 수 없습니다. |
자세한 정보 ( Java, Node, Python 및 Go 예제 포함) 는 VPC API 참조 에서 "서브넷 검색" 을 참조하십시오.