1. 사전 준비
1-1 API 인증 토큰 발급
사용자 로컬 머신의 터미널에 접속합니다. 아래 명령에서 ACCESS_KEY와 ACCESS_SECRET_KEY를 각각 '액세스 키'와 '보안 액세스 키' 값으로 수정합니다. 그 다음 아래 API 인증 토큰을 발급받는 명령을 실행합니다.
API 사용 준비 문서를 참고하여 API 인증 토큰을 발급하시기 바랍니다.
export API_TOKEN=$(curl -s -X POST -i https://iam.kakaocloud.com/identity/v3/auth/tokens -H "Content-Type: application/json" -d \
'{
"auth": {
"identity": {
"methods": [
"application_credential"
],
"application_credential": {
"id": "{ACCESS_KEY}",
"secret": "{ACCESS_SECRET_KEY}"
}
}
}
}' | grep x-subject-token | awk -v RS='\r\n' '{print $2}')
1-2 발급받은 API 인증 토큰을 확인합니다.
echo $API_TOKEN
2. API 명령어 사용 예시(인스턴스)
1. 인스턴스 이미지 조회
curl -s -X GET 'https://image.kr-central-2.kakaocloud.com/api/v1/images' \
-H 'Accept: application/json' \
-H 'X-Auth-Token: [토큰 값]' | jq -r '.images[] | "\(.name) \(.id)"'
2. 인스턴스 flavor 조회
curl -s -X GET 'https://bcs.kr-central-2.kakaocloud.com/api/v1/flavors' \
-H 'Accept: application/json' \
-H 'X-Auth-Token: [너의 토큰]' | jq -r '.flavors[] | "\(.name) \(.id)"'
3. 키페어 목록 조회
curl -s -X GET 'https://bcs.kr-central-2.kakaocloud.com/api/v1/keypairs' \
-H 'Accept: application/json' \
-H 'X-Auth-Token: [너의 토큰]' | jq -r '.keypairs[] | "\(.name) \(.id)"' | sort
4. VPC, 서브넷 조회
curl -s -X GET 'https://vpc.kr-central-2.kakaocloud.com/api/v1/vpcs' \
-H 'Accept: application/json' \
-H 'X-Auth-Token: [너의 토큰]' | \
jq -r '.vpcs[] | "\(.name) \(.id)"' | sort
curl -s -X GET 'https://vpc.kr-central-2.kakaocloud.com/api/v1/subnets' \
-H 'Accept: application/json' \
-H 'X-Auth-Token: [너의 토큰]' | jq -r '.subnets[] | "\(.name) \(.id)"' | sort
5. 보안 그룹 조회
curl -s -X GET 'https://network.kr-central-2.kakaocloud.com/api/v1/security-groups' \
-H 'Accept: application/json' \
-H 'X-Auth-Token: [너의 토큰]' | jq -r '.security_groups[] | "\(.name) \(.id)"' | sort
6. 인스턴스 생성 명령어(예시)
curl -X POST 'https://bcs.kr-central-2.kakaocloud.com/api/v1/instances' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Auth-Token: {{X-Auth-Token}}' \
-d '{
"instance": {
"name": "{{인스턴스 이름}}",
"count": 1,
"image_id": "{{이미지 ID (image_id)}}",
"flavor_id": "{{플레이버 ID (flavor_id)}}",
"availability_zone": "{{가용 영역 (zone)}}",
"subnets": [
{
"id": "{{서브넷 ID}}"
}
],
"key_name": "{{키페어 이름 (key_name)}}",
"security_groups": [
{
"name": "{{보안 그룹 이름}}"
}
],
"volumes": [
{
"is_delete_on_termination": true,
"size": {{볼륨 크기 (GB)}},
"source_type": "image",
"uuid": "{{이미지 ID (image_id)}}"
}
]
}
}'
7. 빠른 작업 시(토큰만 발급)
curl -X POST 'https://bcs.kr-central-2.kakaocloud.com/api/v1/instances' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Auth-Token: {{X-Auth-Token}}' \
-d '{
"instance": {
"name": "vm-felix-apitest",
"count": 1,
"image_id": "044eae16-ecc2-4f74-9345-5a9fe90d80a9",
"flavor_id": "8adaa6de-c42a-40b8-bc55-3cb36d8d8829",
"availability_zone": "kr-central-2-a",
"subnets": [
{
"id": "520a3bd6-b9cf-4ded-aa26-112d5a29463f"
}
],
"key_name": "kpkp-felix-test",
"security_groups": [
{
"name": "d06afc82-f39b-4fac-bced-c3619c98c6c1"
}
],
"volumes": [
{
"is_delete_on_termination": true,
"size": 10,
"source_type": "image",
"uuid": "044eae16-ecc2-4f74-9345-5a9fe90d80a9"
}
]
}
}'
'카카오클라우드' 카테고리의 다른 글
| AWS RDS MySQL와 카카오클라우드 MySQL 간 데이터 마이그레이션 (0) | 2026.01.03 |
|---|---|
| 카카오클라우드 인그레스 컨트롤러, DNS 서비스의 이해 (0) | 2025.10.30 |
| 카카오클라우드 쿠버네티스 Istio 환경 구축 (0) | 2025.07.04 |
| 카카오클라우드 쿠버네티스 인그레스 컨트롤러 배포 및 DNS 서비스 활용 (0) | 2025.06.30 |
| 카카오클라우드 OpenStack 구성을 이용한 Project Resource Quota 확인 (0) | 2025.05.30 |