VPC 및 관련 자원 삭제
IBM Cloud® Virtual Private Cloud 콘솔에서 IBM Cloud를 삭제하기 전에 먼저 VPC의 퍼블릭 게이트웨이, 서브넷 및 연결된 리소스를 모두 삭제해야 합니다.
IBM Cloud 콘솔을 사용하여 VPC 삭제
콘솔을 사용하여 VPC를 삭제하려면 다음 작업을 수행하십시오.
-
VPC의 모든 서브넷을 찾으십시오. 탐색 분할창에서 VPC를 클릭하고 VPC를 선택하십시오.
-
VPC 세부사항 페이지에서 이 VPC의 서브넷 목록으로 이동하고 세부사항을 확인할 서브넷을 선택하십시오.
-
서브넷에 연결된 모든 리소스를 삭제하십시오. 탐색 분할창에서 연결된 리소스를 클릭하십시오. 연결된 각 인스턴스, 로드 밸런서, VPN 게이트웨이를 선택하면 해당 세부 정보 페이지로 이동합니다. 작업 메뉴
삭제를 선택합니다. 연결된 인스턴스를 삭제하려면 먼저 중지해야 합니다.
리소스의 상태가 즉시 삭제 중으로 변경되지만 삭제 오퍼레이션을 완료하는 데 최대 30분이 걸릴 수 있습니다. 연결된 모든 리소스가 더 이상 콘솔에 표시되지 않을 때까지 서브넷을 삭제할 수 없습니다.
-
첨부된 리소스가 모두 삭제된 후 서브넷의 세부정보 페이지로 돌아가서 삭제 아이콘을 클릭합니다.
-
모든 서브넷을 삭제한 후 VPC의 세부정보 페이지로 돌아가서 삭제 아이콘을 클릭합니다. VPC 및 모든 퍼블릭 게이트웨이가 삭제됩니다.
IBM Cloud CLI를 사용하여 VPC 삭제
다음 예제는 제안된 순서대로 모든 VPC 리소스에 대해 IBM Cloud® Virtual Private Cloud에서 리소스를 삭제하는 방법을 보여줍니다.
다음 주요 사실은 삭제에 대해 기억해야 하는 중요한 사항입니다.
- 비어 있어야 VPC를 삭제할 수 있습니다.
- 상위 리소스를 삭제하기 전에 먼저 모든 포함 리소스를 삭제해야 합니다.
- 리소스 삭제가 보류 중이면 목록 조회에서 볼 때
deleting
상태로 표시됩니다. - 대부분의 삭제 요청은 _비동기_적으로 수행됩니다. 즉, 자원이 아직 완전히 삭제되지 않은 경우 목록 조회에 삭제 중 상태를 표시될 수 있습니다.
- 상위 리소스를 삭제하려고 시도하기 전에 폴링하여 하위 리소스가 더 이상 목록 보기에 없는지 확인해야 합니다.
리소스의 상태가 deleting
에서 failed
로 변경되는 경우 리소스 삭제를 다시 시도할 수 있습니다. failed
상태의 리소스를 삭제할 수 없으면 지원에 문의하십시오.
1단계: 삭제하려는 VPC 내의 모든 서브넷 찾기
VPC를 삭제하기 전에 먼저 각각의 서브넷을 삭제해야 합니다. 다음 명령을 실행하고 ID
값을 확인하여 삭제하려는 VPC의 ID를 구합니다:
ibmcloud is vpcs
나중에 사용할 수 있도록 VPC의 ID를 변수에 저장하십시오. 예를 들면 다음과 같습니다.
vpc="0738-3524fef5-da35-4622-bf9a-31614964649d"
계정에 있는 모든 서브넷의 목록을 가져오려면 다음 명령을 실행하십시오.
ibmcloud is subnets
VPC
값을 확인하여 삭제되어야 하는 서브넷을 판별하십시오. 나중에 사용할 수 있도록 서브넷의 ID를 변수에 저장하십시오. 예를 들면 다음과 같습니다.
subnet="0738-d31ce469-9b0f-44e1-87ce-0fc77d8b0e53"
삭제할 VPC에 다중 서브넷이 있는 경우 이러한 단계를 반복하여 각 서브넷을 삭제하십시오.
2단계: VPC의 각 서브넷 삭제
서브넷의 모든 VPN 게이트웨이 삭제(있는 경우)
계정에 있는 모든 VPN 게이트웨이를 나열하려면 다음 명령을 실행하십시오.
ibmcloud is vpn-gateways
삭제할 서브넷에 있는 각각의 VPN 게이트웨이에 대해 다음 명령을 실행하십시오. 여기서 $vpnid
는 VPN 게이트웨이의 ID입니다.
ibmcloud is vpn-gateway-delete $vpnid
VPN 게이트웨이의 상태가 즉시 deleting
으로 변경되지만 목록 조회 결과에는 여전히 해당 게이트웨이가 표시됩니다. VPN 게이트웨이를 삭제하는 데 최대 30분이 걸릴 수 있습니다. VPN 게이트웨이가 삭제될 때까지 대기하는 동안 동시에 다른 서브넷 리소스를 삭제하도록 요청할 수 있습니다. 하지만 VPN 게이트웨이 및 서브넷에 있는 다른 모든 리소스가 목록 조회 결과에 더 이상 표시되지 않을 때까지
서브넷을 삭제할 수 없습니다.
서브넷에 있는 모든 로드 밸런서 삭제(존재하는 경우)
계정에 있는 모든 로드 밸런서를 나열하려면 다음 명령을 실행하십시오.
ibmcloud is load-balancers
삭제할 서브넷에 있는 각각의 로드 밸런서에 대해 다음 명령을 실행하십시오. 여기서 $lbid
는 로드 밸런서의 ID입니다.
ibmcloud is load-balancer-delete $lbid
로드 밸런서의 상태가 즉시 deleting
으로 변경되지만 목록 조회 결과에는 여전히 해당 로드 밸런서가 표시됩니다. 로드 밸런서를 삭제하는 데 최대 30분이 소요될 수 있습니다. 로드 밸런서가 삭제될 때까지 대기하는 동안 동시에 다른 서브넷 리소스를 삭제하도록 요청할 수 있습니다. 하지만 로드 밸런서 및 서브넷에 있는 다른 모든 리소스가 목록 조회 결과에 더 이상 표시되지 않을 때까지 서브넷을 삭제할
수 없습니다.
서브넷의 모든 네트워크 인터페이스 삭제(있는 경우)
인스턴스에 다중 네트워크 인터페이스가 있을 수 있으며 해당 네트워크 인터페이스가 다중 VPC 서브넷에 속할 수 있습니다. 서브넷을 삭제하려면 먼저 서브넷의 네트워크 인터페이스를 삭제해야 합니다.
서브넷의 네트워크 인터페이스를 삭제하는 유일한 방법은 인스턴스를 삭제하는 것입니다.
인스턴스의 모든 네트워크 인스턴스를 나열하려면 다음 명령을 실행하십시오.
ibmcloud is instance-network-interfaces $vsi
계정의 있는 모든 인스턴스를 나열하려면 다음 명령을 실행하십시오.
ibmcloud is instances
VPC의 모든 인스턴스를 삭제할 경우 VPC의 각 인스턴스에 대해 다음 명령을 실행할 수 있습니다. 여기서 $vsi
는 삭제할 인스턴스의 ID입니다. 인스턴스가 삭제되면 다른 서브넷의 모든 네트워크 인터페이스(있는 경우)가 자동으로 삭제됩니다.
인스턴스를 삭제하려면 먼저 인스턴스를 중지해야 합니다. 인스턴스를 중지하려면 ibmcloud is instance-stop
명령을 실행하십시오.
ibmcloud is instance-delete $vsi
인스턴스의 상태가 즉시 deleting
으로 변경되지만 여전히 목록 조회 결과에 표시됩니다. 인스턴스를 삭제하는 데 최대 30분이 걸릴 수 있습니다.
인스턴스가 삭제될 때까지 대기하는 동안 병렬로 다른 서브넷 리소스가 삭제되도록 요청할 수 있습니다. 그러나 인스턴스 및 서브넷의 다른 모든 리소스가 더 이상 목록 조회 결과에 표시되지 않을 때까지 서브넷을 삭제할 수 없습니다.
삭제하려는 서브넷에 두 번째 네트워크 인터페이스가 있는 경우 해당 인스턴스를 삭제해야 합니다. 인스턴스를 삭제하지 않고 인스턴스에서 네트워크 인터페이스를 삭제할 수 없습니다.
서브넷 삭제
서브넷 내부의 모든 리소스가 삭제되면(즉, 목록 조회 결과에 리턴되지 않음) 다음 명령을 실행하여 서브넷을 삭제하십시오.
ibmcloud is subnet-delete $subnet
서브넷의 상태가 즉시 deleting
으로 변경되지만 서브넷이 실제로 삭제되고 더 이상 목록 조회 결과에 표시되지 않을 때까지 몇 분이 걸릴 수 있습니다.
3단계: VPC의 모든 퍼블릭 게이트웨이 삭제(있는 경우)
계정에 있는 모든 퍼블릭 게이트웨이를 나열하려면 다음 명령을 실행하십시오.
ibmcloud is public-gateways
삭제할 VPC의 각 퍼블릭 게이트웨이에 대해 다음 명령을 실행하여 퍼블릭 게이트웨이를 삭제하십시오. 여기서 $gateway
는 퍼블릭 게이트웨이 ID입니다.
ibmcloud is public-gateway-delete $gateway
4단계: VPC 삭제
VPC의 모든 서브넷 및 퍼블릭 게이트웨이가 삭제되면 다음 명령을 실행하여 VPC를 삭제하십시오. 여기서 $vpc
는 삭제할 VPC의 ID입니다.
ibmcloud is vpc-delete $vpc
VPC의 상태가 즉시 deleting
으로 변경되지만 VPC가 실제로 삭제되고 더 이상 목록 조회 결과에 표시되지 않을 때까지 몇 분이 걸릴 수 있습니다.
REST API를 사용하여 VPC 삭제
다음 단계는 프로세스의 주요 파트입니다.
- 삭제하려는 VPC의 모든 서브넷을 찾습니다.
- VPC의 각 서브넷을 삭제하십시오. 즉, 다음과 같습니다.
- 서브넷의 모든 VPN 게이트웨이를 삭제하십시오.
- 서브넷의 모든 로드 밸런서를 삭제하십시오.
- 서브넷에 있는 인스턴스의 모든 네트워크 인터페이스를 삭제하십시오.
- 서브넷을 삭제하십시오.
- VPC의 모든 퍼블릭 게이트웨이를 삭제하십시오.
- VPC를 삭제하십시오.
다음 섹션에서는 VPC를 삭제하기 위해 실행할 수 있는 몇 가지 예제 API 호출을 제공합니다.
1단계: 삭제하려는 VPC의 모든 서브넷 찾기
VPC를 삭제하기 전에 먼저 각각의 서브넷을 삭제해야 합니다. 다음 명령을 실행하고 id
값을 확인하여 삭제하려는 VPC의 ID를 구합니다:
curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$version&generation=2" \
-H "Authorization:$iam_token"
Curl 명령 뒤에 | json_pp
또는 | jq
을 추가하면 읽을 수 있는 JSON 문자열을 얻을 수 있습니다. jq
은 MIT 라이선스에 따라 라이선스가 부여된 타사 도구입니다. jq
은 인스턴스를 만들 때 사용 가능한 모든 VPC
이미지에 사전 설치되어 있지 않을 수 있습니다. json_pp
명령은 일반적으로 대부분의 Linux 배포판에 기본적으로 설치되는 JSON 전처리기입니다.
나중에 사용할 수 있도록 VPC의 ID를 변수에 저장하십시오. 예를 들면 다음과 같습니다.
vpc="0738-3524fef5-da35-4622-bf9a-31614964649d"
계정에 있는 모든 서브넷의 목록을 가져오려면 다음 명령을 실행하십시오.
curl -X GET "$vpc_api_endpoint/v1/subnets?version=$version&generation=2" \
-H "Authorization:$iam_token"
vpc
값을 확인하여 삭제되어야 하는 서브넷을 판별하십시오. 나중에 사용할 수 있도록 서브넷의 ID를 변수에 저장하십시오. 예를 들면 다음과 같습니다.
subnet="0738-d31ce469-9b0f-44e1-87ce-0fc77d8b0e53"
삭제할 VPC에 다중 서브넷이 있는 경우 이 단계를 반복하여 각 서브넷을 삭제하십시오.
2단계: VPC의 각 서브넷 삭제
서브넷의 모든 VPN 게이트웨이 삭제(있는 경우)
계정에 있는 모든 VPN 게이트웨이를 나열하려면 다음 명령을 실행하십시오.
curl -X GET "$rias_endpoint/v1/vpn_gateways?version=$version&generation=2" \
-H "Authorization:$iam_token"
삭제하려는 서브넷의 각 VPN 게이트웨이에 대해 다음 명령을 실행하세요. 여기서 $vpnid
은 VPN 게이트웨이의 ID입니다.
curl -X DELETE "$rias_endpoint/v1/vpn_gateways/$vpnid?version=$version&generation=2" \
-H "Authorization:$iam_token"
VPN 게이트웨이의 상태가 즉시 deleting
으로 변경되지만 목록 조회를 수행하면 여전히 해당 게이트웨이가 리턴됩니다. VPN 게이트웨이를 삭제하는 데 최대 30분이 걸릴 수 있습니다. VPN 게이트웨이가 삭제될 때까지 대기하는 동안 동시에 다른 서브넷 리소스를 삭제하도록 요청할 수 있습니다. 그러나 서브넷은 VPN 게이트웨이 및 서브넷의 다른 모든 리소스가 목록 쿼리에 더 이상 나타나지 않을 때까지
삭제할 수 없습니다.
서브넷에 있는 모든 로드 밸런서 삭제(존재하는 경우)
계정에 있는 모든 로드 밸런서를 나열하려면 다음 명령을 실행하십시오.
curl -X GET "$rias_endpoint/v1/load_balancers?version=$version&generation=2" \
-H "Authorization:$iam_token"
삭제하려는 서브넷의 각 로드밸런서에 대해 다음 명령을 실행합니다. 여기서 $lbid
은 로드밸런서의 ID입니다.
curl -X DELETE "$rias_endpoint/v1/load_balancers/$lbid?version=$version&generation=2" \
-H "Authorization:$iam_token"
로드 밸런서의 상태가 즉시 deleting
으로 변경되지만 목록 조회를 수행하면 여전히 해당 로드 밸런서가 리턴됩니다. 로드 밸런서를 삭제하는 데 최대 30분이 소요될 수 있습니다. 로드 밸런서가 삭제될 때까지 대기하는 동안 동시에 다른 서브넷 리소스를 삭제하도록 요청할 수 있습니다. 그러나 로드 밸런서 및 서브넷의 다른 모든 리소스가 목록 쿼리에 더 이상 나타나지 않을 때까지 서브넷을 삭제할 수 없습니다.
서브넷의 모든 네트워크 인터페이스 삭제(있는 경우)
인스턴스에 다중 네트워크 인터페이스가 있을 수 있으며 해당 네트워크 인터페이스가 다중 VPC 서브넷에 속할 수 있습니다. 서브넷을 삭제하려면 먼저 서브넷의 네트워크 인터페이스를 삭제해야 합니다. 서브넷의 네트워크 인터페이스를 삭제하는 유일한 방법은 인스턴스를 삭제하는 것입니다.
인스턴스의 모든 네트워크 인스턴스를 나열하려면 다음 명령을 실행하십시오.
curl -X GET "$vpc_api_endpoint/v1/instances/$vsi/network_interfaces?version=$version&generation=2" \
-H "Authorization:$iam_token"
삭제하려는 서브넷에 두 번째 네트워크 인터페이스가 있는 경우 해당 인스턴스를 삭제해야 합니다. 인스턴스를 삭제하지 않고 인스턴스에서 네트워크 인터페이스를 삭제할 수 없습니다.
계정의 있는 모든 인스턴스를 나열하려면 다음 명령을 실행하십시오.
curl -X GET "$vpc_api_endpoint/v1/instances?version=$version&generation=2" \
-H "Authorization:$iam_token"
VPC의 모든 인스턴스를 삭제할 경우 VPC의 각 인스턴스에 대해 다음 명령을 실행할 수 있습니다. 여기서 $vsi
는 삭제할 인스턴스의 ID입니다. 인스턴스가 삭제되면 다른 서브넷의 모든 네트워크 인터페이스(있는 경우)가 자동으로 삭제됩니다.
인스턴스를 삭제하려면 먼저 인스턴스를 중지해야 합니다. 자세한 내용은 type
요청 및 stop
액션을 사용하기 위한 인스턴스 액션 만들기를 참조하세요.
curl -X DELETE "$vpc_api_endpoint/v1/instances/$vsi?version=$version&generation=2" \
-H "Authorization:$iam_token"
인스턴스 상태는 즉시 deleting
로 변경되지만 목록 쿼리 결과에는 여전히 표시될 수 있습니다. 인스턴스를 삭제하는 데 최대 30분이 걸릴 수 있습니다. 인스턴스가 삭제될 때까지 대기하는 동안 병렬로 다른 서브넷 리소스가 삭제되도록 요청할 수 있습니다. 그러나 인스턴스와 서브넷의 다른 모든 리소스가 목록 쿼리에 더 이상 나타나지 않을 때까지는 서브넷을 삭제할 수 없습니다.
서브넷 삭제
서브넷 내부의 모든 리소스가 삭제되고 목록 조회 실행 시 리턴되지 않으면 다음 명령을 실행하여 서브넷을 삭제하십시오.
curl -X DELETE "$vpc_api_endpoint/v1/subnets/$subnet?version=$version&generation=2" \
-H "Authorization:$iam_token"
서브넷의 상태가 즉시 deleting
으로 변경되지만 서브넷이 더 이상 목록 조회에서 리턴되지 않도록 삭제되는 데 몇 분이 걸릴 수 있습니다.
3단계: VPC의 모든 퍼블릭 게이트웨이 삭제(있는 경우)
계정에 있는 모든 퍼블릭 게이트웨이를 나열하려면 다음 명령을 실행하십시오.
curl -X GET "$vpc_api_endpoint/v1/public_gateways?version=$version&generation=2" \
-H "Authorization:$iam_token"
삭제할 VPC의 각 퍼블릭 게이트웨이에 대해 다음 명령을 실행하여 퍼블릭 게이트웨이를 삭제하십시오. 여기서 $gateway
는 퍼블릭 게이트웨이 ID입니다.
curl -X DELETE "$vpc_api_endpoint/v1/public_gateways/$gateway?version=$version&generation=2" \
-H "Authorization:$iam_token"
4단계: VPC 삭제
VPC의 모든 서브넷 및 퍼블릭 게이트웨이가 삭제되면 다음 명령을 실행하여 VPC를 삭제하십시오. 여기서 $vpc
는 삭제할 VPC의 ID입니다.
curl -X DELETE "$vpc_api_endpoint/v1/vpcs/$vpc?version=$version&generation=2" \
-H "Authorization:$iam_token"
VPC의 상태가 즉시 deleting
으로 변경되지만 VPC가 더 이상 목록 조회에서 리턴되지 않도록 삭제되는 데 몇 분이 걸릴 수 있습니다.