인스턴스에서 메타데이터 가져오기
대부분의 경우 실행 중인 인스턴스에서 메타데이터를 수집하여 다른 가상 서버 인스턴스를 부트스트랩하는 데 사용하고자 합니다. 다른 경우에는 네트워크 첨부 파일이나 볼륨 첨부 파일에 대한 정보를 수집해야 할 수도 있습니다. 메타데이터 서비스에 대한 액세스를 사용 설정하고, ID 액세스 토큰을 만들고, 메타데이터를 검색하는 일반적인 절차와 단계별 지침을 검토하세요.
인스턴스의 메타데이터에 액세스하는 일반적인 절차
표 1은 메타데이터에 액세스하는 단계에 대해 설명합니다. 이 정보는 각 단계의 컨텍스트와 해당 단계를 완료하는 데 필요한 특정 정보에 대한 링크를 제공합니다. 실제 환경에서는 3~5단계가 시스템 시작 시 인스턴스의 초기화 소프트웨어에 의해, 또는 cloud-init을 사용하여 실행될 가능성이 더 높습니다.
| 단계 | 컨텍스트 | 호출된 서비스 | 사용자 조치 |
|---|---|---|---|
| 1 | IBM Cloud | VPC UI, CLI, API | 메타데이터 서비스에 대한 액세스는 기본적으로 비활성화되어 있습니다. 콘솔의 기존 인스턴스, CLI 또는 API에서 메타데이터 서비스에 대한 액세스를 활성화할 수 있습니다. |
| 2 | IBM Cloud |
|
일반적인 시작 절차를 따라 인스턴스에 로그인하십시오. |
| 3 | VPC 인스턴스 | 메타데이터 서비스 | curl 명령을 실행하여 메타데이터 토큰 서비스를 호출하고, 이를 통해 ID 액세스 토큰을 획득합니다. |
| 4 | VPC 인스턴스 | 메타데이터 서비스 | curl 명령을 실행하여 메타데이터 서비스를 호출하여 인스턴스 정보를 검색합니다. 이전 단계의 토큰이 전달되고 메타데이터가 리턴됩니다. |
| 5 | VPC 인스턴스 |
|
이전 단계에서 리턴된 JSON을 구문 분석하여 사용자 데이터를 획득하십시오. |
인스턴스에서 메타데이터에 액세스하는 엔드투엔드 절차
실행 중인 인스턴스 찾기 및 콘솔에서 메타데이터 서비스에 대한 액세스 활성화하기
-
IBM Cloud 콘솔에서 탐색 메뉴 아이콘
아이콘 > 인프라
> 컴퓨팅 > 가상 서버 인스턴스를 클릭합니다.
-
목록에서 실행 중인 인스턴스를 찾습니다. 인스턴스 이름을 클릭하면 해당 인스턴스의 세부 정보를 확인할 수 있습니다. 개요 탭에서 고급 구성 세부정보로 스크롤한 다음 토글을 클릭하여 메타데이터 서비스에 대한 액세스를 허용합니다.
-
인스턴스에 이미 유동 IP 주소(네트워킹 탭에 표시됨)가 있는 경우 해당 주소를 사용하여 서버에 대한 보안 연결을 설정합니다. 플로팅 IP 주소가 없는 경우 IP 주소를 할당합니다. 자세한 내용은 가상 서버 인스턴스 만들기 항목의 다음 단계를 참조하세요.
실행 중인 인스턴스 찾기 및 CLI에서 메타데이터 서비스 액세스 활성화하기
-
IBM Cloud CLI에 로그인하세요.
-
ibmcloud is instances명령어를 사용하여 실행 중인 인스턴스를 찾으면 해당 지역에서 사용 가능한 인스턴스가 나열됩니다.$ ibmcloud is instances Listing instances in all resource groups and region us-south under account Test Account as user test.user@ibm.com... ID Name Status Reserved IP Floating IP Profile Image VPC Zone Confidential Compute Mode Enable Secure Boot Resource group Reservation Name Cluster Network ID Cluster Network Name Cluster Network Attachments 0717_9c55d9d2-0685-4300-b475-49eb1b8c1faf my-virtual-server-1 running 10.240.0.6 - bx2-2x8 ibm-ubuntu-24-04-2-minimal-amd64-1 my-test-vpc us-south-1 disabled false defaults - - - - 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 my-virtual-server-2 running 10.240.64.11 169.47.94.48 bx2-2x8 ibm-ubuntu-24-04-6-minimal-amd64-3 my-test-vpc us-south-2 disabled false defaults - - - - 0727_d7ff31ef-75ed-42c6-b0fb-a5837a63d722 my-virtual-server-3 running 10.240.64.12 52.116.204.232 bx2-2x8 ibm-redhat-9-2-minimal-amd64-5 my-test-vpc us-south-2 disabled false defaults - - - -메타데이터 서비스는 모든 재고 및 사용자 정의 이미지, 그리고 CPU 프로파일에서 지원됩니다.
-
ibmcloud is instance명령을 실행하여 메타데이터 서비스에 대한 액세스가 활성화되어 있는지 확인합니다. 다음 예제는false값을 보여줍니다.$ ibmcloud is instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Getting instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 under account Test Account as user test.user@ibm.com... ID 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Name my-virtual-server-2 CRN crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Status running Availability policy on host failure restart Confidential Compute Mode disabled Enable Secure Boot false Startable true Profile bx2-2x8 Architecture amd64 vCPU Manufacturer intel vCPUs 2 Memory(GiB) 8 Bandwidth(Mbps) 4000 Volume bandwidth(Mbps) 1000 Network bandwidth(Mbps) 3000 Lifecycle Reasons Code Message - - Lifecycle State stable Metadata service Enabled Protocol Response hop limit false http 1 Image ID Name r006-aa2af291-45b3-4f18-801c-8b7985e928f7 ibm-ubuntu-24-04-6-minimal-amd64-3 Numa Count 1 VPC ID Name r006-01030e3c-2663-4f7d-ac55-651929dafe37 my-test-vpc Zone us-south-2 Resource group ID Name 6edefe513d934fdd872e78ee6a8e73ef defaults Created 2025-03-06T19:24:02+00:00 Network Attachments Interface Name ID Subnet Subnet ID Floating IP VNI Reserved IP Primary eth0 0727-a3ff4d3e-be95-4a52-8025-b55b3c3285ea my-subnet-01 0727-f24237f5-bdf0-4b94-ab4c-167a44b8bcb5 169.47.94.48 0727-dda9244a-64b9-421b-87e9-70549a70b4c3 10.240.64.11 Boot volume ID Name Attachment ID Attachment name r006-9afd6e01-0466-4e7b-a38b-75bf39469a42 eat-client-poc-boot-1741289020000 0727-241f39a8-3573-4ebc-b512-33508eb970c9 undaunted-starved-slander-galleria Reservation Affinity Policy automatic Reservation Affinity Pool - Reservation - Health State ok -
--metadata-service true옵션과 함께ibmcloud is instance-update명령을 실행하여 메타데이터 서비스에 대한 액세스를 활성화합니다.$ ibmcloud is instance-update 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 --metadata-service true Updating instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 under account Test Account as user test.user@ibm.com... ID 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Name my-virtual-server-2 CRN crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Status running Availability policy on host failure restart Confidential Compute Mode disabled Enable Secure Boot false Startable true Profile bx2-2x8 Architecture amd64 vCPU Manufacturer intel vCPUs 2 Memory(GiB) 8 Bandwidth(Mbps) 4000 Volume bandwidth(Mbps) 1000 Network bandwidth(Mbps) 3000 Lifecycle Reasons Code Message - - Lifecycle State stable Metadata service Enabled Protocol Response hop limit true http 1 Image ID Name r006-aa2af291-45b3-4f18-801c-8b7985e928f7 ibm-ubuntu-24-04-6-minimal-amd64-3 Numa Count 1 VPC ID Name r006-01030e3c-2663-4f7d-ac55-651929dafe37 my-test-vpc Zone us-south-2 Resource group ID Name 6edefe513d934fdd872e78ee6a8e73ef defaults Created 2025-03-06T19:24:02+00:00 Network Attachments Interface Name ID Subnet Subnet ID Floating IP VNI Reserved IP Primary eth0 0727-a3ff4d3e-be95-4a52-8025-b55b3c3285ea my-subnet-01 0727-f24237f5-bdf0-4b94-ab4c-167a44b8bcb5 169.47.94.48 0727-dda9244a-64b9-421b-87e9-70549a70b4c3 10.240.64.11 Boot volume ID Name Attachment ID Attachment name r006-9afd6e01-0466-4e7b-a38b-75bf39469a42 eat-client-poc-boot-1741289020000 0727-241f39a8-3573-4ebc-b512-33508eb970c9 undaunted-starved-slander-galleria Reservation Affinity Policy automatic Reservation Affinity Pool - Reservation - Health State ok -
인스턴스에 이미 유동 IP 주소가 있는 경우 해당 주소를 사용하여 서버에 대한 보안 연결을 설정합니다. 플로팅 IP 주소가 없는 경우 IP 주소를 할당합니다. 자세한 내용은 가상 서버 인스턴스 만들기 항목의 다음 단계를 참조하세요.
실행 중인 인스턴스 찾기 및 API로 메타데이터 서비스 액세스 활성화하기
-
지역에서 사용 가능한 인스턴스를 나열하여 실행 중인 인스턴스를 찾습니다. 응답에서 인스턴스 ID를 선택합니다.
curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token" -
선택한 인스턴스의 정보를 검색하여 메타데이터 서비스에 대한 액세스가 활성화되어 있는지 확인합니다.
curl -X GET "$vpc_api_endpoint/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token"API 응답은
metadata_service섹션에"enabled": false으로 표시됩니다.{ "availability_policy": { "host_failure": "restart", "host_maintenance": null }, "bandwidth": 4000, "boot_volume_attachment": { "device": { "id": "0727-241f39a8-3573-4ebc-b512-33508eb970c9-mzpzd" }, "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6/volume_attachments/0727-241f39a8-3573-4ebc-b512-33508eb970c9", "id": "0727-241f39a8-3573-4ebc-b512-33508eb970c9", "name": "undaunted-starved-slander-galleria", "volume": { "crn": "crn:v1:bluemix:public:is:us-south-2:a/a1234567::volume:r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "id": "r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "name": "eat-client-poc-boot-1741289020000", "resource_type": "volume" } }, "confidential_compute_mode": "disabled", "created_at": "2025-03-06T19:24:02.000Z", "crn": "crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "disks": [], "enable_secure_boot": false, "health_reasons": [], "health_state": "ok", "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "id": "0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "image": { "crn": "crn:v1:bluemix:public:is:us-south:a/a1234567::image:r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "href": "https://us-south.iaas.cloud.ibm.com/v1/images/r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "id": "r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "name": "ibm-ubuntu-24-04-6-minimal-amd64-3", "resource_type": "image" }, "lifecycle_reasons": [], "lifecycle_state": "stable", "memory": 8, "metadata_service": { "enabled": false, "protocol": "http", "response_hop_limit": 1 } . . . } -
인스턴스를 요청하여 메타데이터 서비스에 액세스할 수 있도록 설정합니다
PATCH /instances인스턴스를 요청하여 메타데이터 서비스에 액세스할 수 있도록 설정합니다.curl -X PATCH "$vpc_api_endpoint/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6?version=2025-05-13&generation=2" \ -H "Authorization: Bearer $iam_token" \ -d '{ "metadata_service": { "enabled": true, "protocol": "http", "response_hop_limit": 1 } }` -
인스턴스에 이미 유동 IP 주소가 있는 경우 해당 주소를 사용하여 서버에 대한 보안 연결을 설정합니다. 플로팅 IP 주소가 없는 경우 IP 주소를 할당합니다. 자세한 내용은 인스턴스에 로그인 하기를 참조하세요.
가상 서버 인스턴스에 대한 보안 연결 설정하기
Linux
다음 예는 Linux-기반 서버 인스턴스에 연결하는 데 사용할 명령 구문을 보여줍니다.
ssh -i <path to your private key file> <default-user-account>@<floating ip address>
WINDOWS
Windows 사용자는 메타데이터 서비스에 액세스하고 이를 사용하기 위해 추가적인 요구 사항이 있습니다. 자세한 내용은 ‘메타데이터 서비스 사용을 위한 Windows 서버 설정’을 참조하십시오.
서버가 Windows OS를 실행하는 경우 RDP 클라이언트를 사용하여 서버에 연결합니다.
자세한 정보는 Linux 인스턴스에 연결 또는 Windows 인스턴스에 연결을 참조하십시오.
메타데이터 서비스에서 정보 수집
가상 서버 인스턴스에서 신원 API에 요청하여 신원 토큰을 검색합니다. 토큰을 얼마나 오래 유효하게 유지할지 지정합니다. 예를 들어 3600초(1시간)를 지정할 수 있습니다.
export identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/identity/v1/token?version=2022-03-01"\
-H "Metadata-Flavor: ibm"\
-H "Accept: application/json"\
-d '{
"expires_in": 3600
}' | jq -r '(.access_token)'`
응답은 ID 액세스 토큰을 제공합니다. 구문 분석기는 이를 .access_token 파일에 저장합니다.
이 예에서는 jqMIT 라이센스를 통해 라이센스가 부여된 써드파티 도구인 를 구문 분석기로 사용합니다. 일부 운영 체제에서는 기본적으로 jq 가 포함되어 있지 않습니다. 사용하기 전에 jq 를 설치하거나 다른 JSON 파서를 대신 사용하십시오.
초기화 정보 검색하기
신원 토큰을 획득한 후에는 이제 메타데이터 서비스에 API 요청을 보내 초기화 정보를 수집할 수 있습니다:
curl -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance/initialization?version=2024-11-12"\
-H "Accept: application/json"\
-H "Authorization: Bearer $identity_token"\
| jq -r
API 응답에는 가상 서버를 프로비저닝할 때 지정한 SSH 키 및 사용자 데이터와 같은 정보가 포함되어 있습니다. 비밀번호를 구성한 경우에는 해당 정보도 리턴됩니다. 이 정보를 사용하여 새 가상 서버 인스턴스를 부트스트랩할 수 있습니다.
인스턴스 정보 검색
GET "/metadata/v1/instance" 요청을 보내 인스턴스에 대한 상세 정보를 가져옵니다.
curl -X GET "$vpc_metadata_api_endpoint/metadata/v1/instance?version=2025-04-22" -H "Authorization: Bearer $identity_token"
응답은 네트워크 인터페이스, 컴퓨팅 프로파일 및 볼륨 연결을 비롯한, 인스턴스에 대한 모든 세부사항을 나열합니다.
{
"boot_volume_attachment": {
"id": "a8a15363-a6f7-4f01-af60-715e85b28141",
"name": "my-boot-volume-attachment",
"volume": {
"crn": "crn:[...]",
"id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
"name": "my-boot-volume"
}
},
"created_at": "2021-10-19T16:11:57Z",
"crn": "crn:[...]",
"disks": [],
"id": "eb1b7391-2ca2-4ab5-84a8-b92157a633b0",
"image": {
"crn": "crn:[...]",
"id": "9aaf3bcb-dcd7-4de7-bb60-24e39ff9d366",
"name": "my-image"
},
"memory": 8,
"name": "my-instance",
"network_interfaces": [
{
"id": "7ca88dfb-8962-469d-b1de-1dd56f4c3275",
"name": "my-network-interface",
"primary_ipv4_address": "10.0.0.32",
"resource_type": "network_interface",
"subnet": {
"crn": "crn:[...]",
"id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4",
"name": "my-subnet",
"resource_type": "subnet"
}
}
],
"primary_network_interface": {
"id": "7ca88dfb-8962-469d-b1de-1dd56f4c3275",
"name": "my-network-interface",
"primary_ipv4_address": "10.0.0.32",
"resource_type": "network_interface",
"subnet": {
"crn": "crn:[...]",
"id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4",
"name": "my-subnet",
"resource_type": "subnet"
}
},
"profile": {
"name": "bx2-2x8"
},
"resource_type": "instance",
"vcpu": {
"architecture": "amd64",
"count": 2
},
"volume_attachments": [
{
"id": "a8a15363-a6f7-4f01-af60-715e85b28141",
"name": "my-boot-volume-attachment",
"volume": {
"crn": "crn:[...]",
"id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
"name": "my-boot-volume"
}
},
{
"id": "e77125cb-4df0-4988-a878-531ae0ae0b70",
"name": "my-volume-attachment-1",
"volume": {
"crn": "crn:[...]",
"id": "2cc091f5-4d46-48f3-99b7-3527ae3f4392",
"name": "my-data-volume"
}
}
],
"volume_bandwidth_qos_mode": "weighted",
"vpc": {
"crn": "crn:[...]",
"id": "f0aae929-7047-46d1-92e1-9102b07a7f6f",
"name": "my-vpc",
"resource_type": "vpc"
},
"zone": {
"name": "us-south-1"
}
}
- 다른 API 메서드를 사용하여 볼륨 및 네트워크 첨부 파일과 같은 인스턴스에 대한 자세한 정보를 검색하거나 SSH 키, 배치 그룹 또는 가상 네트워크 인터페이스에 대한 정보를 수집할 수 있습니다. 자세한 내용은 메타데이터 서비스 API 참조 및 메타데이터 서비스 정보 요약을 참조하세요.
다음 표에는 인스턴스에 대한 특정 정보를 얻기 위해 수행할 수 있는 API GET 요청에 대한 더 많은 메서드가 나와 있습니다.
| API 엔드포인트 | 설명 |
|---|---|
/metadata/v1/instance/cluster_network_attachments |
클러스터 네트워크 첨부 파일 목록 |
/metadata/v1/instance/cluster_network_attachments/{id} |
클러스터 네트워크 연결 정보 가져오기 |
/metadata/v1/instance/network_attachments |
네트워크 첨부 파일 목록 |
/metadata/v1/instance/network_attachments/{id} |
네트워크 첨부 파일 검색 |
/metadata/v1/instance/network_interfaces |
인스턴스의 모든 네트워크 인터페이스에 대한 메타데이터를 나열합니다. |
/metadata/v1/instance/network_interfaces/{id} |
ID로 네트워크 인터페이스에 대한 메타데이터를 검색합니다. |
/metadata/v1/instance/software_attachments |
인스턴스에 첨부된 모든 소프트웨어에 대한 메타데이터를 나열합니다. |
/metadata/v1/instance/software_attachments/{id} |
ID를 기준으로 소프트웨어 첨부 파일의 메타데이터를 가져옵니다. |
/metadata/v1/instance/volume_attachments |
특정 인스턴스의 모든 볼륨 연결에 대한 메타데이터를 나열합니다. |
/metadata/v1/instance/volume_attachment/{id} |
ID로 볼륨 연결에 대한 메타데이터를 검색합니다. |
다음 단계
인스턴스에 대한 신뢰할 수 있는 프로필을 사용하고, 해당 ID 액세스 토큰을 기반으로 IAM이 활성화된 다른 서비스에 대한 IAM 토큰을 생성합니다. 신뢰할 수 있는 프로파일을 사용하여 IAM 사용 서비스 호출을 참조하십시오.