API 및 CLI 환경 설정

API 또는 CLI를 사용하여 IBM Cloud® Virtual Private Cloud(VPC)를 작성하려면 먼저 환경을 설정하십시오.

일반 전제조건

  1. VPC에 액세스하도록 계정을 설정하십시오. 계정이 유료 계정으로 업그레이드되는지 확인하십시오.

  2. 가상 서버 인스턴스에 연결하는 데 사용될 공개 SSH 키가 있는지 확인하십시오. 예를 들어 다음 명령을 실행하여 Linux 서버에서 SSH 키를 생성하십시오.

    ssh-keygen -t rsa
    

    이 명령은 두 개의 파일을 생성합니다. 생성된 공개 키는 홈 디렉토리의 .ssh 디렉토리에 있는 id_rsa.pub 파일에 있습니다(예: .../.ssh/id_rsa.pub).

    자세한 정보는 SSH 키를 참조하십시오.

CLI 전제조건

VPC를 작성하기 위해 CLI를 사용하려면 먼저 IBM Cloud CLI 및 VPC CLI 플러그인을 설치해야 합니다.

{: tag-deprecated} 는 [더 이상 사용되지 않습니다]. IBM Cloud CLI는 LinuxONE ( s390x 프로세서 아키텍처)에서는 지원되지 않습니다. 그러나 지원되는 다른 플랫폼에 이 CLI를 설치하고 이를 LinuxONE(s390x 프로세서 아키텍처) 가상 서버 인스턴스와 함께 사용하는 것은 가능합니다.

  1. IBM Cloud CLI를 설치하십시오.

  2. VPC CLI 플러그인을 설치하십시오.

    ibmcloud plugin install vpc-infrastructure
    

    VPC CLI 조치는 확장자 is를 사용합니다. CLI 명령 사용 방법에 대해 알아보기 위해 다음을 실행할 수 있습니다.

    ibmcloud is help
    ibmcloud is help vpc-create
    ibmcloud is help instance-create
    

    CLI를 사용하여 리소스를 생성하는 방법은 ‘VPC 리소스 생성’을 참조하십시오.

VPC API 사설 엔드포인트를 통해 CLI에 액세스

VPC API 사설 엔드포인트를 사용하도록 CLI를 설정하려면 다음 단계를 따르십시오.

IBM Cloud CLI 및 관련 플러그인을 다운로드해야 하는 경우 해당 플러그인이 있는 공개 리포지토리에 액세스할 수 있어야 합니다.

  1. 코어 IBM Cloud CLI및 VPC 인프라 서비스 플러그인이 최신 버전으로 업데이트되었는지 확인하십시오.

    ibmcloud update
    ibmcloud plugin update vpc-infrastructure
    
  2. API 사설 엔드포인트 모드로 전환하려면 다음 명령을 입력하십시오.

    ibmcloud login -a private.cloud.ibm.com
    

    현재 API 비공개 엔드포인트 모드는 us-southus-east 리전만 지원합니다.

API 전제조건

API를 사용하여 VPC를 작성하려면 먼저 IAM 토큰을 가져와 엔드포인트를 변수로 저장하고 VPC API 서비스에 액세스할 수 있는지 확인해야 합니다.

다음 예에서는 us-south 지역 엔드포인트를 사용합니다. 추가 API 엔드포인트를 보려면 가상 프라이빗 클라우드 API를 참조하십시오.

1단계: API 키를 변수로 저장

다음 명령을 실행하여 계정에 대한 API 키를 환경 변수에 저장하십시오. API키가 없는 경우 API키 작성을 참조하십시오.

apikey="<YOUR_API_KEY>"

2단계: IBM Identity and Access Management(IAM) 토큰 가져오기

JSON 처리 유틸리티인 jq를 사용하여 IAM 토큰을 가져오고 구문 분석하려면 다음 명령어를 실행하십시오. 다른 구문 분석 도구를 사용하도록 명령을 수정하거나 수동으로 토큰을 구문 분석하려는 경우 명령의 마지막 부분을 제거할 수 있습니다.

iam_token=`curl -k -X POST \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --header "Accept: application/json" \
  --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
  --data-urlencode "apikey=$apikey" \
  "https://iam.cloud.ibm.com/identity/token"  |jq -r '(.token_type + " " + .access_token)'`

IAM 토큰을 확인하려면 echo $iam_token을(를) 실행하십시오. 결과는 다음과 같이 표시되어야 합니다.

Bearer <your token>

권한 부여 헤더는 토큰이 "Bearer"로 시작될 것으로 예상합니다. 결과에 "Bearer"가 포함되어 있지 않으면 이를 포함하도록 iam_token 변수를 업데이트하십시오. 이 문서의 예에서는 "Bearer"가 iam_token에 포함되어 있다고 가정합니다.

IAM 토큰은 만료되므로 각 시간마다 이전 단계를 반복하여 토큰을 새로 고쳐야 합니다.

3단계: API 엔드포인트를 변수로 저장

다음 명령을 실행하여 세션에서 나중에 재사용할 수 있도록 변수에 API 엔드포인트를 저장하십시오.

공용 엔드포인트:

vpc_api_endpoint="https://us-south.iaas.cloud.ibm.com"

가상 사설 엔드포인트:

vpc_api_endpoint="https://us-south.private.iaas.cloud.ibm.com"

이 변수가 저장되었는지 확인하려면 echo $vpc_api_endpoint을(를) 실행한 후 응답이 비어 있지 않은지 확인하십시오.

지원되는 엔드포인트 지역은 사용 가능한 엔드포인트 를 참조하십시오.

4단계: API 버전을 변수로 저장

모든 API 요청에 version 형식의 YYYY-MM-DD 매개변수가 포함되어야 합니다. 다음 명령을 실행하여 세션에서 재사용할 수 있도록 버전 날짜를 변수에 저장하십시오. version 매개변수 설정에 대한 자세한 내용은 Virtual Private Cloud API의 ‘버전 관리’ 섹션을 참조하십시오.

api_version="2019-09-30"

이 변수가 저장되었는지 확인하려면 echo $api_version을(를) 실행한 후 응답이 비어 있지 않은지 확인하십시오.

5단계: API 액세스 권한이 있는지 확인

예상치 않은 결과가 발생하는 경우에는 --verbose 명령 뒤에 curl(디버그) 플래그를 추가하여 자세한 로깅 정보를 얻으십시오. 공통적으로 발생한 오류에 대한 자세한 정보는 문제점 해결을 참조하십시오.

  • VPC에 사용할 수 있는 지역을 JSON 형식으로 보려면 GET Regions API를 호출하십시오. 최소 하나의 오브젝트가 리턴되어야 합니다.

    사용할 세대를 지정하려면 모든 API 요청에서 generation 매개변수를 전송해야 합니다. 2세대 가상 서버 인스턴스의 경우 generation=2를 지정하십시오. 자세한 내용은 가상 사설 클라우드(VPC)API의 ‘생성’ 항목을 참조하십시오.

    curl -X GET "$vpc_api_endpoint/v1/regions?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • 특정 지역(예:us-south)에서 VPC에 사용 가능한 모든 구역을 JSON 형식으로 보려면 GET Zones API를 호출하십시오.

    curl -X GET "$vpc_api_endpoint/v1/regions/us-south/zones?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • 가상 서버 인스턴스에 사용할 수 있는 프로파일을 JSON 형식으로 보려면 GET Profiles API를 호출하십시오. 최소 하나의 오브젝트가 리턴되어야 합니다.

    읽을 수 있는 JSON 문자열을 얻으려면 curl 명령 뒤에 | json_pp를 추가하십시오. json_pp 명령은 일반적으로 대부분의 Linux 배포판에 기본적으로 설치되는 JSON 전처리기입니다.

    curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • 인스턴스에 대해 사용할 수 있는 이미지를 JSON 형식으로 리턴하려면 GET Images API를 호출하십시오. 최소 하나의 오브젝트가 리턴되어야 합니다.

    curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • 계정에 이미 작성된 VPC를 JSON 형식으로 보려면 GET VPCs API를 호출하십시오.

    curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    

API를 사용하여 리소스를 작성하는 방법을 알아보려면 CLI및 API를 사용하여 VPC 리소스 작성 을 참조하십시오.