ucloud server API v

Similar documents
Q

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Microsoft Word - wiseCLOUD_v2.4_InstallGuide.docx

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

ucloud autoscaling API

ucloud packaging 예제템플릿 V1.0 ( ) KT 문서생성일 : ver1.0

Network seminar.key

bn2019_2

PowerPoint 프레젠테이션

워드표준 가이드

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

개정이력 개정일자 Version 개정사유 개정내용 신규작성전면개정일부내용수정일부내용수정전면개정 AZ 추가에따른매뉴얼수정상품소개삭제

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

1217 WebTrafMon II

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

슬라이드 1

untitled

Remote UI Guide

Windows Server 2012

TTA Journal No.157_서체변경.indd

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

0. 들어가기 전

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Secure Programming Lecture1 : Introduction

PowerPoint Presentation

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Microsoft Word - NAT_1_.doc

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Windows 8에서 BioStar 1 설치하기

vm-웨어-앞부속

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

JVM 메모리구조

희망브리지

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

open-api.md 2/14/2019 Deflow Open Api 1. 목록 (GET) /v1/order/list - 주문내역조회 (GET) /v1/order/complete/list - 거래내역조회 (POST) /v1/order/cancel - 주문취소 (GET)

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Mars OS System Administration Guide

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

운영체제실습_명령어

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

PowerPoint 프레젠테이션

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

게시판 스팸 실시간 차단 시스템

SMB_ICMP_UDP(huichang).PDF


본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

슬라이드 1

Microsoft Word - src.doc

업데이트일 : Server CIP 기능가이드 목차서비스소개 CIP 사용방법 Inter-AZ 신청방법 CIP 고객 VM 설정방법 서비스소개 본문서는 KT ucloud server 의부가기능인 Cloud Internal Path ( 이하 CIP 이라함

C# Programming Guide - Types

gcloud storage 사용자가이드 1 / 17

슬라이드 1

SRC PLUS 제어기 MANUAL

PowerPoint 프레젠테이션

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

SBR-100S User Manual

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

untitled

ZConverter Standard Proposal

6강.hwp

Microsoft Word doc

Week13

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

3장

vm-웨어-01장

RHEV 2.2 인증서 만료 확인 및 갱신

정적으로 설치된 mod_ssl 모듈확인 동적으로 설치된 mod_ssl 모듈확인 웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다. 동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libe

Packstack 을이용한 Openstack 설치

Microsoft Word - release note-VRRP_Korean.doc

APOGEE Insight_KR_Base_3P11

4S 1차년도 평가 발표자료

PowerPoint 프레젠테이션

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

벤처연구사업(전동휠체어) 평가

Subnet Address Internet Network G Network Network class B networ

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

VMware vsphere

Solaris System Administration

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

워드표준 가이드

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

Mango220 Android How to compile and Transfer image to Target

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

PowerPoint 프레젠테이션

Microsoft PowerPoint - 2.Catalyst Switch Intrastructure Protection_이충용_V1 0.ppt [호환 모드]

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

단계

TCP.IP.ppt


PCServerMgmt7

Interstage5 SOAP서비스 설정 가이드

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Transcription:

ucloud server API v 1.2 2012. 4

목 차 1. 개요...2 1. 1 UCLOUD SERVER API 개요... 2 1. 2 API 요청... 2 1.2.1 인증서명서... 3 1.2.2 명령어유형... 4 1.2.3 파라미터... 4 1.3 API 응답... 5 1.3.1 API 응답포맷... 5 1.3.2 ASYNCHRONOUS COMMANDS RESPONSE... 6 1.3.3 ERROR HANDLING... 8 2.API 사용팁 (QUICK START)...10 2.1 VM 생성및접속... 10 2.2 DATA DISK VOLUME 추가생성... 11 2.3 공인 IP 추가할당... 11 2.4 LOAD BALANCER 설정... 11 3. 명령어...13 3.1 VM(VIRTUAL MACHINE)... 13 3.1.1 LISTAVAILABLEPRODUCTTYPES (*)... 13 3.1.2 DEPLOYVIRTUALMACHINE (A) (*)... 15 3.1.3 DESTROYVIRTUALMACHINE (A)... 20 3.1.4 REBOOTVIRTUALMACHINE(A)... 22 3.1.5 STOPVIRTUALMACHINE (A)... 24 3.1.6 STARTVIRTUALMACHINE (A)... 27 3.1.7 RESETPASSWORDFORVIRTUALMACHINE (A)... 29 3.1.8 LISTVIRTUALMACHINES... 31

3.2 VOLUME... 34 3.2.1 CREATEVOLUME (A) (*)... 34 3.2.2 ATTACHVOLUME (A)... 38 3.2.2 DETACHVOLUME (A)... 40 3.2.4 DELETEVOLUME (A)... 41 3.2.5 LISTVOLUMES... 43 3.3 ADDRESS... 45 3.3.1 ASSOCIATEIPADDRESS (*)... 45 3.3.2 DISASSOCIATEIPADDRESS (A)... 48 3.3.3 LISTPUBLICIPADDRESSES... 50 3.4 PORTFOWARDING... 52 3.4.1 CREATEPORTFORWARDINGRULE (A)... 52 3.4.2 DELETEPORTFORWARDINGRULE (A)... 54 3.4.3 LISTPORTFORWARDINGRULES... 56 3.4.4 CREATEFIREWALLRULE (A)... 57 3.4.5 DELETEFIREWALLRULE (A)... 59 3.4.6 LISTFIREWALLRULES... 61 3.5 LOAD BALANCER... 64 3.5.1 CREATELOADBALANCERRULE (A)... 64 3.5.2 UPDATELOADBALANCERRULE (A)... 66 3.5.3 DELETELOADBALANCERRULE (A)... 68 3.5.4 LISTLOADBALANCERRULES... 70 3.5.5 ASSIGNTOLOADBALANCERRULE (A)... 71 3.5.6 REMOVEFROMLOADBALANCERRULE (A)... 73 3.5.6 LISTLOADBALANCERRULEINSTANCES... 73 3.6 ACCOUNT... 77 3.6.1 LISTACCOUNTS... 77 3.7 ASYNCH JOB... 80 3.7.1 QUERYASYNCJOBRESULT... 80 3.8 EVENT... 82 3.8.1 LISTEVENTS... 82 3.9 SNAPSHOT... 84

3.9.1 CREATESNAPSHOT (A)... 84 3.9.2 DELETESNAPSHOT (A)... 86 3.9.3 LISTSNAPSHOTS... 87 3.10 TEMPLATE... 89 3.10.1 CREATETEMPLATE(A)... 89 3.10.2 DELETETEMPLATE(A)... 92 3.10.3 UPDATETEMPLATE... 93 3.10.4 LISTTEMPLATE... 95

Revision History Version 변경사항작성일 1.1 공식배포버전 2012 년 2 월 17 일 1.1.1 Preminum 서비스의 Disk Offering 내용추가 2012 년 2 월 22 일 1.2 Firewall, Snapshot, Template API 추가 deployvirtualmachine API 에 runsysprep 파라미터추가 2012 년 4 월 13 일 1

1. 개요 본문서는 ucloud server API 규격을제시한다. API 요청 / 응답메시지와공개하고있는명령어설명및예시를포함하고있다. 본규격은 CloudStack Version 2.2.13 버전과호환성을지원한다. 이용자는 API 를활용하여클라우드컴퓨팅자원생성및관리를수행할수있다. 1. 1 ucloud server API 개요 ucloud server API 는 REST 형태로제공된다. 컴퓨팅자원 (Vurtual Machine[ 이하 VM], Disk 볼륨, Public IP) 등에대한요청은표준 HTTP 방식의 GET 메소드호출을통해서이루어진다. 1. 2 API 요청 API 요청메시지는아래와같이구성된다. (1)API URL + (2) 요청명령어 + (3) 명령어파라미터 + (4) 응답포맷 + (5)API Key + (6) 인증서명서 각필드의값과내용은아래표와같다. Field Description (1) API URL - ucloud server API URL - Value : https://api.ucloudbiz.olleh.com/server/v1/client/api? (2) 요청명령어 - 컴퓨팅자원요청명령어 ( 생성, 삭제, 조회및기타명령 ) - Syntax : command= 명령어이름, [ 상세설명은 3 장참조 ] (3) 명령어파라미터 - 요청명령어관련파라미터 - Syntax : [&field=value]*, [ 상세설명은 3 장참조 ] (4) 응답포맷 - XML, JSON 응답포맷을지원한다. [Optional 필드 ] - Syntax : &response=[xml json], default 는 xml. (5) API Key - 사용자계정별 API Key (ucloudbiz site 에서확인 ) - Syntax : &apikey=apikey (6) 인증서명서 - API 요청메시지수행권한여부를체크하는인증서명서 - Syntax : &signature= 인증서명서 * API Key, Secret Key 확인 (1) https://ucloudbiz.olleh.com 로그인 (2) 클라우드콘솔선택 (3) API Key 관리메뉴선택 2

API 요청 Sample https://api.ucloudbiz.olleh.com/server/v1/client/api?command=listvirtualmachines&name=vm_3 3111&state=Running&response=xml&apiKey=miVr6X&signature=ZC1u%2B03yj592LZ%2BgmA3 ac%2fqthws%3d API 요청 Sample 분석 (1) https://api.ucloudbiz.olleh.com/server/v1/client/api? API URL (2) command=listvirtualmachines 요청명령어 (3) &name=vm_33111&state=running 명령어파라미터 (4) &response=xml 응답포맷 (5) &apikey=mivr6x API Key (6) &signature=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d 인증서명서 1.2.1 인증서명서 ucloud server 에서는 API Key 와인증서명서로인증을수행한다. 사용자별로발급되는 Secret Key 와 HMAC SHA-1 알고리즘그리고명령문자열 (2 번 ~5 번 ) 을이용하여 인증서명서를생성한다. [ 인증서명서생성 ] Secret Key 예 : keokzhd 명령문자열예 : command=listvirtualmachines&name=vm_33111&state=running &response=xml&apikey=mivr6x (1) 명령문자열의각필드와값을 URL 인코딩한다. URL 인코딩 : 공백문자가 %20 으로인코딩되도록해야한다. [ + 안됨 ] API 요청메시지 : API_URL + URL 인코딩된문자열 + &signature= 인증서명서 (2) 명령문자열을소문자로변경한다. (3) 필드이름을기준으로알파벳순으로정렬한다. apikey=mivr6x&command=listvirtualmachines&name=vm_33111&response=xml&state=ru nning (4) Secret Key 와 HMAC SHA - 1 해시알고리즘을이용하여명령문자열을암호화한다. 아래는 java sample code 이다. 3

Mac mac = Mac.getInstance ( "HmacSHA1" ); SecretKeySpec keyspec = new SecretKeySpec(secretkey.getBytes(), "HmacSHA1"); mac.init( keyspec ); mac.update ( commandstring.getbytes() ); byte[] encryptedbytes = mac.dofinal(); Sample_URL http://docs.cloud.com/cloudstack_documentation/developer's_guide%3a_cl oudstack#signing_api_requests (5) 마지막으로얻어진바이트배열을 Base64 인코딩후, 다시 UTF - 8 로 URL 인코딩을 수행한다. 생성된인증서명서와 API 요청메시지는다음과같다. 인증서명서 : ZC1u%2B03yj592LZ%2BgmA3ac%2FQThws%3D API 요청메시지 : https://api.ucloudbiz.olleh.com/server/v1/client/api?command=listvirtualma chines&name=vm_33111&state=running&response=xml&apikey=mivr6x &signautre=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d 1.2.2 명령어유형 VM / DISK 볼륨생성과같이실행소요시간이긴명령은비동기명령어로이외의명령은동기명령어로수행한다. 3 장에서기술하고있는비동기명령어에 (A) 를표시하여구분하고있다. CloudStack 에존재하지않는명령어및명령어파라미터설명하는부분에는 (*) 를표시하여기술하고있다. 1.2.3 파라미터 API 요청시수행되는파라미터는앞에서언급한것과같이쌍 (field=value) 으로존재하며 대소문자사용규칙은다음과같다. field : 대소문자구별안함, command 만대소문자구별. value : 대소문자구별함. 4

1.3 API 응답 지원하고있는응답포맷설명과명령유형 ( 동기명령어, 비동기명령어 ) 에따른 API 응답확인절차를기술한다. 1.3.1 API 응답포맷 API 응답포맷으로 xml, json 을지원하며, API 요청시 response=xml 과같이응답포맷을지정할수있다. 명령수행결과에해당필드정보가없을경우, 정의된필드와값이표시되지않을수있다. 다음표는응답포맷예제이다. Response Format xml Sample <listipaddressesresponse> <allocatedipaddress> <ipaddress>192.168.10.141</ipaddress> <allocated>2009-09-18t13:16:10-0700</allocated> <zoneid>4</zoneid> <zonename>wc</zonename> <issourcenat>true</issourcenat> </allocatedipaddress> </listipaddressesresponse> json { "listipaddressesresponse" : { "allocatedipaddress" : [ { "ipaddress" : "192.168.10.141", "allocated" : "2009-09-18T13:16:10-0700", "zoneid" : "4", "zonename" : "WC", "issourcenat" : "true" } ] } } 5

1.3.2 Asynchronous Commands Response VM / DISK 볼륨생성과같이실행소요시간이긴명령은비동기명령어로이외의 명령은동기명령어로수행한다. 동기 / 비동기명령 API 응답확인절차는다르며아래와 같다. API 명령어 응답확인절차 동기명령어 비동기명령어 (1) API 요청으로명령수행 (2) 명령수행결과확인 (1) API 요청으로명령수행 (2) jobid ( 작업 ID) 반홖확인 (3) queryasyncjobresult 명령수행 ( jobid 인자로젂달 ) (4) 명령수행진행확인 ( jobstatus) 0: 진행중, 1: 성공, 2: 실패 [ jobresult 에결과표시 ] ** jobstatus 가 1 또는 2 가될때까지주기적으로 (3), (4) 수행하여명령결과를확인한다. 비동기명령결과예는다음과같다. 비동기명령확인 Sample (1) API 요청 ( 명령수행 ) https://api.ucloudbiz.olleh.com/server/v1/client/api? command=listvirtualmachines &name=vm_33111&state=running&response=xml &apikey=mivr6x &signature=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d (2) 명령응답반홖 <deployvirtualmachineresponse> <jobid> 37120 </ jobid> <id> 100 </ id> </ deployvirtualmachineresponse> (3) queryasyncjobresult 수행 https://api.ucloudbiz.olleh.com/server/v1/client/api? command=queryasyncjobresult&jobid=37120 &apikey=h6kxwcratdqfwf3xa &signature=z5f11yym6yzqomy9b%2f4%3d 6

(4) jobstatus = 0 [ 진행중 ] <queryasyncjobresult> <jobid>37120</jobid> <jobstatus>0</jobstatus> <jobprocstatus>1</jobprocstatus> <queryasyncjobresult> (4) jobstatus = 1 [ 성공 ] <queryasyncjobresultresponse cloud-stack-version="2.2.1.66"> <jobid>37120</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <virtualmachine> <id>100</id> <state>running</state>.. </virtualmachine> </jobresult> </queryasyncjobresultresponse> (4) jobstatus = 2 [ 실패 ] <queryasyncjobresult> <jobid>37120</jobid> <jobstatus>2</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>551</jobresultcode> <jobresulttype>text</jobresulttype> <jobresult> Unable to deploy virtual machine id = 10 due to not enough capacity </jobresult> <queryasyncjobresult> 7

1.3.3 Error Handling API 요청이잘못되거나처리도중오류가발생하면 Error 정보를응답으로반환한다. Error 정보는오류코드 <errorcode> 와오류텍스트 <errortext> 로구성되어있다. <?xml version="1.0" encoding="utf-8"?> <listvirtualmachinesresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>401</errorcode> <errortext>unable to verify user credentials and/or request signature</errortext> </listvirtualmachinesresponse> 현재지원하는에러코드는다음과같다. Error Code Description 401 AUTHENTICATION_ERROR 406 MALICIOUS_CODE_INJECTION 430 MALFORMED_PARAMETER_ERROR 431 PARAM_ERROR 432 UNSUPPORTED_ACTION_ERROR 433 PAGE_LIMIT_EXCEED 503 EXCESSIVE_TRAFFIC_ERROR 504 INTERNAL_ERROR (TIMEOUT) 530 INTERNAL_ERROR 531 ACCOUNT_ERROR 532 ACCOUNT_RESOURCE_LIMIT_ERROR 533 INSUFFICIENT_CAPACITY_ERROR 534 RESOURCE_UNAVAILABLE_ERROR 535 RESOURCE_ALLOCATION_ERROR 536 RESOURCE_IN_USE_ERROR 537 NETWORK_RULE_CONFLICT_ERROR 8

[Example 1] <?xml version="1.0" encoding="iso-8859-1"?> <deployvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>431</errorcode> <errortext>unable to find zone by id=2111</errortext> </deployvirtualmachineresponse> [Example 2] <?xml version="1.0" encoding="iso-8859-1"?> <errorresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>432</errorcode> <errortext>the given command does not exist</errortext> </errorresponse> 9

2. API 사용팁 (Quick Start) 이장에서는 ucloud server API 사용하여활용할수있는몇가지팁을기술하였다. 2.1 VM 생성및접속 VM 을생성하여접속하기위해서는다음의과정을수행한다. (1) listavailableproducttypes 명령으로 ucloud server 에서제공하는상품목록조회한다. ( 자세한내용은 3.1.1 참조 ) (2) deployvirtualmachine 명령으로 VM 생성한다. ( 상세내용 : 3.1.2 참조 ) (3) queryasyncjobresult 명령으로 VM 생성완료확인한다 - 응답결과에서 id<vm ID>, password< 패스워드 > 필드확인 (4) listpublicipaddresses 명령으로공인 IP 정보 [id, ip 주소 ] 확인한다. - 응답결과에서 id<publicipaddress ID>, ipaddress<ip 주소 > 정보확인 - ( 상세내용 : 3.3.3 참조 ) (5) createportforwardingrule 로 22 번 (ssh 접속포트 ) 외부오픈 ( 상세내용 : 3.4.1 참조 ) - 공인 IP ID, publicport(22), 생성 VM ID, privateport(22), protocol (TCP) 요청 ( 윈도우 VM 의경우 mstsc 로접속하는 3389 port 를외부오픈 ) (6) queryasyncjobresult 명령으로포트포워딩생성완료확인한다 - 응답결과에서 ipaddress<publicipaddress>, publicport, privateport 필드확인 (7) putty, mstsc 와같은 terminal 을통해생성된 VM 에접속 - 접속 IP : 포트포워딩생성시사용한 IP 주소 - 접속포트 : 포트포워딩생성시사용한 publicport 22 ( 또는 3389) - 접속계정 : root ( 또는 Administrator) - 접속패스워드 : VM 생성완료응답시, password [ (3) 번항목 ] 10

2.2 DATA DISK Volume 추가생성 VM 생성시만들어지는기본스토리지 (ROOT Volume, Data Volume) 이외에추가적인 DATA DISK Volume 생성하여 VM 에서사용하기위해서는다음과정을수행한다. (1) createvolume 명령으로추가스토리지를생성한다. ( 상세내용 : 3.2.1 참조 ) (2) queryasyncjobresult 명령으로응답결과완료확인한다. (3) attachvolume 명령으로특정 VM 에생성한스토리지연결한다. - id <Disk Volume ID>, virtualmachineid <VM ID> 요청 - ( 상세내용 : 3.2.2 참조 ) (4) queryasyncjobresult 명령으로응답결과완료확인한다. (5) 추가된스토리지는 VM 에서 fdisk 명령어로확인가능. mount 하여사용 2.3 공인 IP 추가할당상품청약시할당받은기본공인 IP 이외에추가적인 IP 할당필요시다음명령을수행한다. (1) associateipaddress 명령으로공인 IP 할당받는다. ( 상세내용 : 3.3.1 참조 ) (2) queryasyncjobresult 명령으로응답결과완료확인한다. 2.4 Load Balancer 설정 VM 의로드밸런싱을설정을위한절차는다음과같다. (1) listpublicipaddresses 명령수행한다. ( 상세내용 : 3.3.3 참조 ) - LoadBalancer 로사용할 IP 를선택한다. (2) createloadbalancerrule 명령으로 Load Balancer Rule 을생성한다. - ( 상세내용 : 3.5.1 참조 ) (3) queryasyncjobresult 명령으로응답결과완료확인한다. - Load Balancer Rule 정보 (id, name, publicid, publicport,...) 를확인한다 11

(4) assigntoloadbalancerrule 명령으로 VM 을로드밸런싱에등록한다. - id<lb ID>, virtualmachineids<vm ID> 요청 - ( 상세내용 : 3.5.2 참조 ) (5) queryasyncjobresult 명령으로응답결과완료확인한다. 12

3. 명령어 이장에서는명령어와명령어파라미터정보및명령에대한응답을기술하였다. 기능별로그룹핑하여이해를돕고자하였다. Example 에사용되는 ${API_URL} 변수는 ucloud server API URL (https://api.ucloudbiz.olleh.com/server/v1/client/api?) 이다. 3.1 VM(Virtual Machine) VM 관련명령어를기술한다. 3.1.1 listavailableproducttypes (*) ucloud server 상품으로제공되는목록조회시사용하는명령어로사용자는결과목록중하나를선택하여, VM 으로생성가능한 templateid, serviceofferingid, diskofferingid, zoneid 의조합을확인할수있있다. 디스플레이되는 diskofferingid 는 VM 생성시에만사용할수있으며추가적인 Volume 생성과관련한정보는 createvoumle 설명을참조한다. 상품의가격정보는 API 로제공되지않으며 ucloudbiz site 를방문하여확인가능하다. 명령어파라미터 : 없음, 응답결과항목 Response Name Description productid 상품구성 ID [ 예 : 2-830-76-25 ] - zoneid-templateid-serviceofferingid-diskofferingid productstate 상품사용가능여부, [ available stop ] serviceofferingid 제공하는 cpu, memory 조합의 ID serviceoffering 설명 [ 예 premium 2vCore 2G RAM ] serviceofferingdesc - standard, premium 서비스설명 - CPU 와메모리사양표시 templateid 제공하는 OS 에대한관리 ID templatedesc template 설명, [ 예 : WIN2003 KOR ENT SP2 32bit ] diskofferingid 제공하는 disk 에대한 ID [ VM 생성시에만사용가능 ] diskofferingdesc diskoffering 에대한설명, [ 예 : Windows OS(50GB)] zoneid 제공하는 zone ID zonedesc zone ID 에대한설명 13

Example Sample Request ${API_URL}command=listAvailableProductTypes&apiKey=90kjkkr_HCg5B&signature=I HenaA0uYC%2Fy5j37FEkUd4fg%3D Sample Response <?xml version="1.0" encoding="utf-8"?> <listavailableproducttypesresponse> <count>272</count> <producttypes> <e> <productid>1-309-11-19</productid> <productstate>availabe</productstate> <serviceofferingid>11</serviceofferingid> <serviceofferingdesc>standard 1core 1GB Instance, Virt</serviceofferingdesc> <templateid>309</templateid> <templatedesc>win2003 KOR ENT SP2 32bit</templatedesc> <diskofferingid>19</diskofferingid> <diskofferingdesc>windows OS(50GB)</diskofferingdesc> <zoneid>1</zoneid> <zonedesc>zone1</zonedesc> </e> </listavailableproducttypesresponse> 14

3.1.2 deployvirtualmachine (A) (*) VM 을생성및기동수행명령어로, 상품리스트명령 (listavailableproducttypes) 결과를이용하여명령을요청한다. usageplantype( 약정정보파라미터 ) 에따른각상품의가격정보는 ucloudbiz site 에서확인가능하다. 명령어파라미터 Parameter Name Description Required serviceofferingid 서비스제공 ID [ CPU, Memory 조합 : 2 core 1GB Mem ] TRUE templateid 템플릿 ID [ OS : WIN2003 KOR ENT SP2 32bit ] TRUE diskofferingid 디스크제공 ID TRUE zoneid zone ID (** 상품리스트에나오는 zoneid 만가능 ) TRUE oneyear(1 년약정 ), monthly( 무약정-월단위요금 ), usageplantype hourly( 시간요금 ) : (* default : hourly) FALSE runsysprep 사용자 custom 윈도우 OS 이미지사용시 sysprep 연동수행여부. true/false (*default : true) FALSE account 특정 account 에 VM 생성. domainid 파라미터와함께사용 FALSE domainid 특정 domainid 에 VM 생성. account 파라미터와함께사용 FALSE group VM 에대한옵션그룹 FALSE hostid VM 배포하는대상호스트 ID - 루트관리자만사용 FALSE hypervisor VM 배포하는하이퍼바이저 FALSE keypair VM 에로그인하는 SSH 키 FALSE name VM 호스트이름 FALSE displayname VM 표시이름 FALSE ipaddress 기본 VM 네트워크를위한 IP 주소 FALSE iptonetworklist IP 와네트워크간매핑정보. FALSE keyboard VM 키보드유형. [de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be, no, pt,uk,us] 중택 1 가능 FALSE networkids VM 에서사용되는네트워크목록 FALSE securitygroupids VM 에적용될보안그룹의목록. VM 이기본네트워크지원 zone 에서생성될때에만사용됨. securitygroupnames 파라미터와같이사용안함 FALSE securitygroupna mes VM 에적용될보안그룹의목록. VM 이기본네트워크지원 zone 에서생성될때에만사용됨. securitygroupids FALSE 15

파라미터와같이사용안함 size userdata DATA DISK 볼륨에대한임의의크기. diskofferingid 가필수파라미터이어현재지원안함. VM 생성후, 자동설정및수행할수있는명령문자열. 최대 2KB 까지 BASE64 인코딩하여사용 FALSE FALSE 응답결과항목 Response Name jobid jobstatus id cpunumber cpuspeed cpuused created displayname account domain domainid forvirtualnetwork group groupid guestosid haenable hostid hostname hypervisor ipaddress isodisplaytext isoid isoname memory name Description 현재보류중인비동기작업 ID 현재보류중인비동기작업상태 VM ID VM CPU 수 VM CPU 의속도현재사용하는 VM 의 CPU 양 VM 생성날짜와시간 VM 표시이름 VM 이속한계정 VM 이속한도메인이름 VM 이속한도메인 ID 서비스제공에대한가상네트워크 VM 그룹이름 VM 그룹 ID VM 운영체제유형 ID 고가용성이홗성화되면 true, 그외 false VM 호스트 ID VM 호스트이름관련하이퍼바이저 VM IP 주소 VM 에부착된 ISO 의대체표시텍스트 VM 에연결된 ISO 의 ID VM 에부착된 ISO 의이름 VM 에할당된메모리 VM 이름 16

networkkbsread networkkbswrite password passwordenabled rootdeviceid rootdevicetype serviceofferingid serviceofferingname state templatedisplaytext templateid templatename zoneid zonename nic(*) id broadcasturi gateway ipaddress isdefault isolationuri macaddress netmask networkid traffictype type securitygroup(*) id account description domain domainid name ingressrule(*) account VM 으로들어오는네트워크트래픽 VM 에서나가는네트워크트래픽 VM 암호 VM 암호홗성화정보. 홗성화된경우 true, 그외는 fasle 루트볼륨의장치 ID 루트볼륨의장치유형 VM 서비스제공 ID VM 서비스제공이름 VM 상태 VM 템플릿표시텍스트 VM 템플릿 ID VM 템플릿이름 VM 이속한 zone 의 ID VM 이속한 zone 의이름 VM 과관련네트워크정보목록 NIC ID NIC 의브로드캐스트 URI NIC 의게이트웨이 NIC 의 IP 주소 default NIC 이면 true, 그렇지않은경우 fasle NIC 의아이솔레이션 URI NIC MAC 주소 NIC 의넷마스크해당네트워크의 ID NIC 의트래픽유형 NIC 의종류 VM 과관련된보안그룹목록보안그룹의 ID 보안그룹을소유하는계정보안그룹의설명보안그룹의도메인이름보안그룹의도메인 ID 보안그룹의이름보안그룹과관련된진입규칙목록진입규칙을소유하는계정 17

cidr endport icmpcode icmptype protocol ruleid securitygroupname startport 진입규칙의기본 IP 주소에대해 CIDR 표기법진입규칙의종료 IP ICMP 메시지응답에대한코드 ICMP 메시지응답종류진입규칙의프로토콜진입규칙의 ID 보안그룹이름진입규칙의시작 IP Example Sample 1 VM 생성 Request ${API_URL}command=deployVirtualMachine&diskofferingid=31&serviceofferingid=73&te mplateid=46&zoneid=3&apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 VM 생성 Response <?xml version="1.0" encoding="iso-8859-1"?> <deployvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37120</jobid> <id>31627</id> </deployvirtualmachineresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=37120&apiKey=h6KXWcRAtdqfwF 3xA&signature=z5F11yym6YZqOmY9b%2F4%3D Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37120</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> 18

<virtualmachine> <id>31669</id> <name>i-172-31669-vm</name> <displayname>i-172-31669-vm</displayname> <account>test_m123456_s1234</account> <domainid>4</domainid> <domain>epc_user</domain> <created>2011-12-27t16:34:00+0900</created> <state>running</state> <haenable>true</haenable> <zoneid>3</zoneid> <zonename>test-staging-kr-1</zonename> <templateid>460</templateid> <templatename>t2 CentOS 5.4 64-bit</templatename> <templatedisplaytext>t2 CentOS 5.4 64-bit</templatedisplaytext> <passwordenabled>true</passwordenabled> <serviceofferingid>73</serviceofferingid> <serviceofferingname>tier2 1core 2GB Instance. Virtual Networking</serviceofferingname> <cpunumber>1</cpunumber> <cpuspeed>2000</cpuspeed> <memory>2048</memory> <guestosid>14</guestosid> <rootdeviceid>0</rootdeviceid> <rootdevicetype>iscsilun</rootdevicetype> <password>py3ysigaq</password> <nic> <id>10737</id> <networkid>625</networkid> <netmask>255.255.0.0</netmask> <gateway>172.27.0.1</gateway> <ipaddress>172.27.182.175</ipaddress> <traffictype>guest</traffictype> <type>virtual</type> <isdefault>true</isdefault> <macaddress>02:00:6c:00:00:00</macaddress> </nic> <hypervisor>xenserver</hypervisor> </virtualmachine> </jobresult> </queryasyncjobresultresponse> 19

3.1.3 destroyvirtualmachine (A) 생성한 VM 을삭제한다. 응답결과항목은 VM 생성과동일하다 (**1 년약정과무약정으로 생성된 VM 은생성당일삭제가불가하다 ) 명령어파라미터 Parameter Name Description Required id VM ID TRUE Example Sample 1 VM 삭제 Request ${API_URL}command=destroyVirtualMachine&id=31669&apiKey=hmL3yALU4r &signature=i4ssnfn0pgl3e0%2fikvvm4ikzv%2bc%3d Sample 2 VM 삭제 Response <?xml version="1.0" encoding="iso-8859-1"?> <destroyvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37237</jobid> </destroyvirtualmachineresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=37237&apiKey=hmL3yALU4r&sign ature=s3sdc3tdcnrat9drugzl24cyqwa%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37237</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> 20

<jobresult> <virtualmachine> <id>31669</id> <name>i-172-31669-vm</name> <displayname>i-172-31669-vm</displayname> <account>test_m123456_s1234</account> <domainid>4</domainid> <domain>epc_user</domain> <created>2011-12-27t16:34:00+0900</created> <state>destroyed</state> <haenable>true</haenable> <zoneid>3</zoneid> <zonename>test-staging-kr-1</zonename> <templateid>460</templateid> <templatename>t2 CentOS 5.4 64-bit</templatename> <templatedisplaytext>t2 CentOS 5.4 64-bit</templatedisplaytext> <passwordenabled>true</passwordenabled> <serviceofferingid>73</serviceofferingid> <serviceofferingname>tier2 1core 2GB Instance. Virtual Networking</serviceofferingname> <cpunumber>1</cpunumber> <cpuspeed>2000</cpuspeed> <memory>2048</memory> <cpuused>0.09%</cpuused> <networkkbsread>33</networkkbsread> <networkkbswrite>10</networkkbswrite> <guestosid>14</guestosid> <rootdeviceid>0</rootdeviceid> <rootdevicetype>iscsilun</rootdevicetype> <nic> <id>10737</id> <networkid>625</networkid> <netmask>255.255.0.0</netmask> <gateway>172.27.0.1</gateway> <ipaddress>172.27.182.175</ipaddress> <traffictype>guest</traffictype> <type>virtual</type> <isdefault>true</isdefault> <macaddress>02:00:6c:00:00:00</macaddress> </nic> <hypervisor>xenserver</hypervisor> </virtualmachine> 21

</jobresult> </queryasyncjobresultresponse> 3.1.4 rebootvirtualmachine(a) VM 을재부팅한다. 명령어파라미터 Parameter Name Description Required id VM ID TRUE 응답결과항목 : deployvirtualmachine 과결과동일. Example Sample 1 VM 재부팅 Request ${API_URL}command=rebootVirtualMachine&id=31232&apiKey=hmL3yALU4r&signat ure=nh0djfuwpdzpmlpirwlfbd7nhus%3d Sample 2 VM 재부팅 Response <?xml version="1.0" encoding="iso-8859-1"?> <rebootvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37232</jobid> </rebootvirtualmachineresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=37232&apiKey=hmL3yALU4r&sign ature=sx6oodjsbtcznetks8nbvdzmtco%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> 22

<jobid>37232</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <virtualmachine> <id>31232</id> <name>i-172-31232-vm</name> <displayname>i-172-31232-vm</displayname> <account>test_m123456_s1234</account> <domainid>4</domainid> <domain>epc_user</domain> <created>2011-12-19t11:19:29+0900</created> <state>running</state> <haenable>true</haenable> <zoneid>3</zoneid> <zonename>test-staging-kr-1</zonename> <templateid>460</templateid> <templatename>t2 CentOS 5.4 64-bit</templatename> <templatedisplaytext>t2 CentOS 5.4 64-bit</templatedisplaytext> <passwordenabled>true</passwordenabled> <serviceofferingid>73</serviceofferingid> <serviceofferingname>tier2 1core 2GB Instance. Virtual Networking</serviceofferingname> <cpunumber>1</cpunumber> <cpuspeed>2000</cpuspeed> <memory>2048</memory> <cpuused>0.09%</cpuused> <networkkbsread>3359708</networkkbsread> <networkkbswrite>3359710</networkkbswrite> <guestosid>14</guestosid> <rootdeviceid>0</rootdeviceid> <rootdevicetype>iscsilun</rootdevicetype> <nic> <id>10240</id> <networkid>625</networkid> <netmask>255.255.0.0</netmask> <gateway>172.27.0.1</gateway> <ipaddress>172.27.200.146</ipaddress> <traffictype>guest</traffictype> <type>virtual</type> 23

<isdefault>true</isdefault> <macaddress>02:00:4b:00:00:00</macaddress> </nic> <hypervisor>xenserver</hypervisor> </virtualmachine> </jobresult> </queryasyncjobresultresponse> 3.1.5 stopvirtualmachine (A) VM 을중지한다. 명령어파라미터 Parameter Name Description Required id VM ID TRUE forced 강제수행선택사항 FALSE 응답결과항목 : deployvirtualmachine 과결과동일. Example Sample 1 VM 중지 Request ${API_URL}command=stopVirtualMachine&id=31232&apiKey=hmL3yALU4r &signature=grjkrjdqyezmot2o2c01vkcodv4%3d Sample 2 VM 중지 Response <?xml version="1.0" encoding="iso-8859-1"?> <stopvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37225</jobid> </stopvirtualmachineresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=37223&apiKey=hmL3yALU4r&sign ature=nnxdowy2s6kqudsqktvovsg4jai%3d 24

Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37225</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <virtualmachine> <id>31232</id> <name>i-172-31232-vm</name> <displayname>i-172-31232-vm</displayname> <account>test_m123456_s1234</account> <domainid>4</domainid> <domain>epc_user</domain> <created>2011-12-19t11:19:29+0900</created> <state>stopped</state> <haenable>true</haenable> <zoneid>3</zoneid> <zonename>test-staging-kr-1</zonename> <templateid>460</templateid> <templatename>t2 CentOS 5.4 64-bit</templatename> <templatedisplaytext>t2 CentOS 5.4 64-bit</templatedisplaytext> <passwordenabled>true</passwordenabled> <serviceofferingid>73</serviceofferingid> <serviceofferingname>tier2 1core 2GB Instance. Virtual Networking</serviceofferingname> <cpunumber>1</cpunumber> <cpuspeed>2000</cpuspeed> <memory>2048</memory> <cpuused>0.09%</cpuused> <networkkbsread>3359705</networkkbsread> <networkkbswrite>3359697</networkkbswrite> <guestosid>14</guestosid> <rootdeviceid>0</rootdeviceid> <rootdevicetype>iscsilun</rootdevicetype> <nic> <id>10240</id> <networkid>625</networkid> <netmask>255.255.0.0</netmask> <gateway>172.27.0.1</gateway> 25

<ipaddress>172.27.200.146</ipaddress> <traffictype>guest</traffictype> <type>virtual</type> <isdefault>true</isdefault> <macaddress>02:00:4b:00:00:00</macaddress> </nic> <hypervisor>xenserver</hypervisor> </virtualmachine> </jobresult> </queryasyncjobresultresponse> 26

3.1.6 startvirtualmachine (A) VM 을시작한다. 명령어파라미터 Parameter Name Description Required id VM ID TRUE 응답결과항목 : deployvirtualmachine 과결과동일 Example Sample 1 VM 생성 Request ${API_URL}command=startVirtualMachine&id=31232&apiKey=hmL3yALU4r &signature=ubrwtt8h22yi8msjfzunouyyfyw%3d Sample 2 VM 생성 Response <?xml version="1.0" encoding="iso-8859-1"?> <startvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37223</jobid> </startvirtualmachineresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=37223&apiKey=hmL3yALU4r&sig nature=nnxdowy2s6kqudsqktvovsg4jai%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37227</jobid> <jobstatus>1</jobstatus> 27

<jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <virtualmachine> <id>31232</id> <name>i-172-31232-vm</name> <displayname>i-172-31232-vm</displayname> <account>test_m123456_s1234</account> <domainid>4</domainid> <domain>epc_user</domain> <created>2011-12-19t11:19:29+0900</created> <state>running</state> <haenable>true</haenable> <zoneid>3</zoneid> <zonename>test-staging-kr-1</zonename> <templateid>460</templateid> <templatename>t2 CentOS 5.4 64-bit</templatename> <templatedisplaytext>t2 CentOS 5.4 64-bit</templatedisplaytext> <passwordenabled>true</passwordenabled> <serviceofferingid>73</serviceofferingid> <serviceofferingname>tier2 1core 2GB Instance. Virtual Networking</serviceofferingname> <cpunumber>1</cpunumber> <cpuspeed>2000</cpuspeed> <memory>2048</memory> <cpuused>0.1%</cpuused> <networkkbsread>3359706</networkkbsread> <networkkbswrite>3359701</networkkbswrite> <guestosid>14</guestosid> <rootdeviceid>0</rootdeviceid> <rootdevicetype>iscsilun</rootdevicetype> <nic> <id>10240</id> <networkid>625</networkid> <netmask>255.255.0.0</netmask> <gateway>172.27.0.1</gateway> <ipaddress>172.27.200.146</ipaddress> <traffictype>guest</traffictype> <type>virtual</type> <isdefault>true</isdefault> <macaddress>02:00:4b:00:00:00</macaddress> 28

</nic> <hypervisor>xenserver</hypervisor> </virtualmachine> </jobresult> </queryasyncjobresultresponse> 3.1.7 resetpasswordforvirtualmachine (A) VM 에대한비밀번호초기화수행한다. 비밀번호초기화시 VM 은 reboot 된다. 명령어파라미터 Parameter Name Description Required id VM ID TRUE 응답결과항목 : deployvirtualmachine 과결과동일. Example Sample 1 패스워드초기화 Request ${API_URL}command=resetPasswordForVirtualMachine&id=31232&apiKey=hmL3yAL U4r&signature=2GOhbGuHKf%2BpMGQnHGZb4M7C9k0%3D Sample 2 패스워드 Response <?xml version="1.0" encoding="iso-8859-1"?> <resetpasswordforvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37224</jobid> </resetpasswordforvirtualmachineresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=37224&apiKey=hmL3yALU4r&sign ature=mq5n87ozpyvhxm5mtqa8v06khwi%3d Sample 4 비동기명령상태 Response 29

<?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37224</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <virtualmachine> <id>31232</id> <name>i-172-31232-vm</name> <displayname>i-172-31232-vm</displayname> <account>test_m123456_s1234</account> <domainid>4</domainid> <domain>epc_user</domain> <created>2011-12-19t11:19:29+0900</created> <state>running</state> <haenable>true</haenable> <zoneid>3</zoneid> <zonename>test-staging-kr-1</zonename> <templateid>460</templateid> <templatename>t2 CentOS 5.4 64-bit</templatename> <templatedisplaytext>t2 CentOS 5.4 64-bit</templatedisplaytext> <passwordenabled>true</passwordenabled> <serviceofferingid>73</serviceofferingid> <serviceofferingname>tier2 1core 2GB Instance. Virtual Networking</serviceofferingname> <cpunumber>1</cpunumber> <cpuspeed>2000</cpuspeed> <memory>2048</memory> <cpuused>0.08%</cpuused> <networkkbsread>24</networkkbsread> <networkkbswrite>14</networkkbswrite> <guestosid>14</guestosid> <rootdeviceid>0</rootdeviceid> <rootdevicetype>iscsilun</rootdevicetype> <password>ht9spvutx</password> <nic> <id>10240</id> <networkid>625</networkid> <netmask>255.255.0.0</netmask> <gateway>172.27.0.1</gateway> 30

<ipaddress>172.27.200.146</ipaddress> <traffictype>guest</traffictype> <type>virtual</type> <isdefault>true</isdefault> <macaddress>02:00:4b:00:00:00</macaddress> </nic> <hypervisor>xenserver</hypervisor> </virtualmachine> </jobresult> </queryasyncjobresultresponse></jobresult> </queryasyncjobresultresponse> 3.1.8 listvirtualmachines 생성한 VM 목록을조회한다. 명령어파라미터 Parameter Name Description Required account 계정이름 FALSE domainid 도메인 ID. FALSE forvirtualnetwork 가상네트워크유형 [ true false] FALSE groupid 그룹 ID FALSE hostid 호스트 ID FALSE hypervisor 관련하이퍼바이저 FALSE id VM ID FALSE isrecursive 도메인 ID 와같이사용됨. true 인경우도메인 ID 에포함된모듞 VM 나열. 디폴트는 false FALSE keyword List by keyword FALSE name VM 이름 FALSE networkid 네트워크 ID FALSE page 페이지번호 FALSE pagesize 페이지크기 FALSE podid POD ID FALSE state VM 상태 FALSE storageid Storage ID FALSE 31

zoneid zone ID FALSE 응답결과항목 : deployvirtualmachine 과결과동일. Example Sample Request ${API_URL}command=listVirtualMachines&state=Stopped&apiKey=hmL3yALU4r&sign ature=9v82nnfrhwwto1ohmmgq0%2ffmg38%3d Sample Response <?xml version="1.0" encoding="iso-8859-1"?> <listvirtualmachinesresponse cloud-stack-version="2.2.13.20111117130644"> <count>1</count> <virtualmachine> <id>31626</id> <name>i-172-31626-vm</name> <displayname>i-172-31626-vm</displayname> <account>test_m123456_s1234</account> <domainid>4</domainid> <domain>epc_user</domain> <created>2011-12-26t18:04:12+0900</created> <state>stopped</state> <haenable>true</haenable> <zoneid>3</zoneid> <zonename>test-staging-kr-1</zonename> <templateid>460</templateid> <templatename>t2 CentOS 5.4 64-bit</templatename> <templatedisplaytext>t2 CentOS 5.4 64-bit</templatedisplaytext> <passwordenabled>true</passwordenabled> <serviceofferingid>73</serviceofferingid> <serviceofferingname>tier2 1core 2GB Instance. Virtual Networking</serviceofferingname> <cpunumber>1</cpunumber> <cpuspeed>2000</cpuspeed> <memory>2048</memory> <guestosid>14</guestosid> <rootdeviceid>0</rootdeviceid> 32

<rootdevicetype>iscsilun</rootdevicetype> <nic> <id>10648</id> <networkid>625</networkid> <netmask>255.255.0.0</netmask> <gateway>172.27.0.1</gateway> <ipaddress>172.27.181.98</ipaddress> <traffictype>guest</traffictype> <type>virtual</type> <isdefault>true</isdefault> <macaddress>02:00:2c:00:00:00</macaddress> </nic> <hypervisor>xenserver</hypervisor> </virtualmachine> </listvirtualmachinesresponse> 33

3.2 Volume DISK Volume 관련명령어를기술한다. 3.2.1 createvolume (A) (*) VM 생성시만들어진 Volume 이외에추가적인 Volume 을생성한다. ucloud server 에서제공하는 DISK Volume 을이용하여생성한후, 특정 VM 에 attach 하여사용한다. usageplantype( 약정정보파라미터 ) 에따른각상품의가격정보는 ucloudbiz site 에서확인가능하다. 추가가능한 Volumne 은다음과같으며, createvolume 명령호출시만사용가능하다. premium 서버와 standard 서버에서사용하는디스크가아래표와같이다르다. 즉, standard 디스크는 premium 서버에 attach 불가하며, premium 디스크도 standard 서버에 attach 불가하다. 용량 standard diskofferingid preminum 50 GB 29 124 100 GB 30 109 150 GB 31 110 200 GB 32 111 250 GB 33 112 300 GB 34 113 명령어파라미터 Parameter Name Description Required name DISK Volume 이름 TRUE diskofferingid DISK Volume 제공 ID TRUE zoneid zone ID (** 상품리스트에나오는 zoneid 만가능 ) TRUE 34

usageplantype account domainid monthly( 무약정-월단위요금 ), hourly( 시간요금 ) : (* default : hourly) 특정 account 에 DISK Volume 생성. domainid 파라미터와함께사용특정 domainid 에 DISK Volume 생성. account 파라미터와함께사용 FALSE FALSE FALSE size 임의의볼륨크기 FALSE snapshotid DISK Volume 에대한스냅샷 ID. FALSE 응답결과항목 Response Name jobid jobstatus Description 현재보류중인비동기작업 ID 현재보류중인비동기작업상태 id DISK Volume ID account DISK Volume 관련계정 attached DISK Volume 에 VM 에연결된시간 created DISK Volume 이만들어진시간 destroyed 논리볼륨을파괴여부상태여부 deviceid VM 에연결된 DISK Volume 의장치 ID diskofferingdisplaytext 디스크제공의표시텍스트 diskofferingid 디스크의 ID 제공 diskofferingname 디스크제공의이름 domain DISK Volume 이속해있는도메인 domainid DISK Volume 이속해있는도메인의 ID hypervisor DISK Volume 이속한하이퍼바이저 isextractable DISK Volume 이추출여부표시 [ true false ] name DISK Volume 이름 serviceofferingdisplaytext 루트디스크에대한서비스제공의표시텍스트 serviceofferingid 루트디스크에대한서비스제공의 ID serviceofferingname 루트디스크에대한서비스제공의이름 size DISK Volume 크기 35

snapshotid state storage storagetype type virtualmachineid vmdisplayname vmname vmstate zoneid zonename DISK Volume 이만들어진에서스냅샷 ID DISK Volume 상태 DISK Volume 을호스팅하는주저장장치의이름공유또는로컬저장소 DISK Volume 종류 ( 루트또는 DATADISK) VM 의 ID VM 의표시이름 VM 의이름 VM 의상태 zone ID zone 이름 Example Sample 1 Request ${API_URL} command=createvolume&zoneid=2&name=sotest002&account=test_m123456_s1234& diskofferingid=24&domainid=2&apikey=hml3yalu4r&signature=0%2fgjchafxlwaho Sq%2B1UNla%2BfQI4%3D Sample 2 Response <?xml version="1.0" encoding="utf-8"?> <createvolumeresponse cloud-stack-version="2.2.13.20111117130644"> <id>34332</id> <jobid>124787</jobid> </createvolumeresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=124787&apiKey=hmL3yALU4r&sig nature=%2bpy3poro6dp14dkjnfhdynd%2blh4%3d Sample 4 비동기명령상태 Response 36

<?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>124787</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <volume> <id>34332</id> <name>sotest002</name> <zoneid>2</zoneid> <zonename>kr-1</zonename> <type>datadisk</type> <size>53687091200</size> <created>2011-12-30t17:47:56+0900</created> <state>allocated</state> <account>test_m123456_s1234</account> <domainid>2</domainid> <domain>epc_user</domain> <storagetype>shared</storagetype> <hypervisor>none</hypervisor> <diskofferingid>24</diskofferingid> <diskofferingname>windows-root-50</diskofferingname> <diskofferingdisplaytext>windows%20os%20%2850gb%29</diskofferingdisplaytext> <storage>none</storage> <destroyed>false</destroyed> <isextractable>false</isextractable> </volume> </jobresult> </queryasyncjobresultresponse> 37

3.2.2 attachvolume (A) 생성한 DISK Volume 을 VM 에연결한다. 생성한 DISK 가 premium 인경우에는 preminum 서버 (VM) 에 standard 인경우에는 standard server(vm) 에연결해야한다. 다른유형의서버에 DISK Volume 연결이불가하다. 명령어파라미터 Parameter Name Description Required id DISK Volume ID TRUE virtualmachineid VM ID TRUE DISK Volume 에매핑될 deviceid. deviceid 파라미터미사용시 순차적으로사용가능한다음 deviceid 가선택됨. [OS 가 deviceid 리눅스인경우 ] 1 : / dev /xvdb, 2 : / dev / xvdc, 4 : / dev / xvde, 5 : / dev/ xvdf *, 6 : / dev / xvdg, 7 : / dev /xvdh, 8 : / dev / xvdi, 9: / dev / xvdj FALSE 응답결과항목 : createvolume 과결과동일. Example Sample 1 Request ${API_URL}command=attachVolume&id=34332&virtualmachineid=18658&apiKey=hmL 3yALU4r&signature=KeLsxqPu7u6UevgQtjTZ0GBdmPA%3D Sample 2 Response <?xml version="1.0" encoding="iso-8859-1"?> <attachvolumeresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>124788</jobid> </attachvolumeresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=124788&apiKey=hmL3yALU4r&sig 38

nature=nsm0grzcdnplq6ngdigzrlov4h8%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>124788</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <volume> <id>34332</id> <name>sotest002</name> <zoneid>2</zoneid> <zonename>kr-1</zonename> <type>datadisk</type> <deviceid>2</deviceid> <virtualmachineid>18658</virtualmachineid> <vmname>i-3032-18658-vm</vmname> <vmdisplayname>test1212</vmdisplayname> <vmstate>running</vmstate> <size>53687091200</size> <created>2011-12-30t17:47:56+0900</created> <state>ready</state> <account>test_m123456_s1234</account> <domainid>2</domainid> <domain>epc_user</domain> <storagetype>shared</storagetype> <hypervisor>xenserver</hypervisor> <diskofferingid>24</diskofferingid> <diskofferingname>windows-root-50</diskofferingname> <diskofferingdisplaytext>windows%20os%20%2850gb%29</diskofferingdisplaytext> <storage>p16c2v3</storage> <attached>2011-12-30t17:50:57+0900</attached> <destroyed>false</destroyed> <isextractable>false</isextractable> </volume> </jobresult> </queryasyncjobresultresponse> 39

3.2.2 detachvolume (A) DISK Volume 을 VM 에서분리한다. (** VM 생성시같이할당된 DISK Volume 의분리는 불가하다 ) 명령어파라미터 Parameter Name Description Required deviceid VM 의 device ID FALSE id DISK Volume ID FALSE virtualmachineid VM ID FALSE 응답결과항목 : createvolume 과결과동일. Example Sample 1 Request ${API_URL}command=detachVolume&id=34332&apiKey=hmL3yALU4r&signature=4UJ B%2FaHpwfoD9792lHjx0En0mYs%3D Sample 2 Response <?xml version="1.0" encoding="utf-8"?> <detachvolumeresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>124789</jobid> </detachvolumeresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=124789&apiKey=hmL3yALU4r&sig nature=7amdpklrk0ezmcjtyerhrh6bxt8%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> 40

<queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>124789</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <volume> <id>34332</id> <name>sotest002</name> <zoneid>2</zoneid> <zonename>kr-1</zonename> <type>datadisk</type> <size>53687091200</size> <created>2011-12-30t17:47:56+0900</created> <state>ready</state> <account>test_m123456_s1234</account> <domainid>2</domainid> <domain>epc_user</domain> <storagetype>shared</storagetype> <hypervisor>xenserver</hypervisor> <diskofferingid>24</diskofferingid> <diskofferingname>windows-root-50</diskofferingname> <diskofferingdisplaytext>windows%20os%20%2850gb%29</diskofferingdisplaytext> <storage>p16c2v3</storage> <destroyed>false</destroyed> <isextractable>false</isextractable> </volume> </jobresult> </queryasyncjobresultresponse 3.2.4 deletevolume (A) DISK Volume 을삭제한다. (** 무약정으로생성된 Volume 은생성당일삭제가불가하며, VM 생성시같이할당된 DISK Volume 은삭제불가하다 ) 명령어파라미터 Parameter Name Description Required id DISK Volume ID TRUE 41

응답결과항목 Response Name jobid jobstatus displaytext success Description 현재보류중인비동기작업 ID 현재보류중인비동기작업상태성공또는실패와관련된텍스트성공여부 [true false] Example Sample 1 Request ${API_URL}command=deleteVolume&id=34332&apiKey=hmL3yALU4r&signature=q08 MjJUxYnEcl5cQLyZdPes4jNM%3D Sample 2 Response <?xml version="1.0" encoding="utf-8"?> <deletevolumeresponse cloud-stack-version="2.2.13.20111117130644"> <success>true</success> </deletevolumeresponse> 42

3.2.5 listvolumes 사용자가보유하고있는 DISK Volume 을조회한다. 명령어파라미터 Parameter Name Description Required account 계정이름 FALSE domainid 도메인 ID. FALSE hostid 지정된호스트 ID 에대한 DISK Volume 목록요청 FALSE id DISK Volume ID FALSE isrecursive 도메인 ID 와같이사용됨. true 인경우도메인 ID 에포함된모듞볼륨나열. 디폴트는 false FALSE keyword 키워드 FALSE name DISK Volume 이름 FALSE page 페이지번호 FALSE pagesize 페이지크기 FALSE podid DISK Volume 이속하는포드 ID FALSE type DISK Volume 종류 FALSE virtualmachineid 연결된 VM ID FALSE zoneid zone ID FALSE 응답결과항목 : createvolume 과결과동일. Example Sample 1 Request ${API_URL} command=listvolumes&apikey=hml3yalu4r&signature=n2o%2fbccnb6lpzvumn65x %2BaHYWqs%3D 43

Sample 2 Response <?xml version="1.0" encoding="utf-8"?> <listvolumesresponse> <count>1</count> <volume> <e> <account>test_m123456_s1234</account> <created>2011-12-29t14:31:23+0900</created> <destroyed>false</destroyed> <deviceid>0</deviceid> <domain>epc_user</domain> <domainid>2</domainid> <hypervisor>xenserver</hypervisor> <id>34276</id> <isextractable>false</isextractable> <name>root-19526</name> <serviceofferingdisplaytext>minimum%201core%202gb%20instance%2c%20virtual%20 Networking</serviceofferingdisplaytext> <serviceofferingid>13</serviceofferingid> <serviceofferingname>minimum%201core%202gb%20instance%2c%20virtual%20netw orking</serviceofferingname> <size>53687091200</size> <state>ready</state> <storage>p16c2v2</storage> <storagetype>shared</storagetype> <type>root</type> <virtualmachineid>19526</virtualmachineid> <vmdisplayname>i-3032-19526-vm</vmdisplayname> <vmname>i-3032-19526-vm</vmname> <vmstate>running</vmstate> <zoneid>2</zoneid> <zonename>kr-1</zonename> </e> </volume> </listvolumesresponse> 44

3.3 Address 공인 IP 관련명령어를기술한다. 3.3.1 associateipaddress (*) 새로운공인 IP 를추가한다. usageplantype( 약정정보파라미터 ) 에따른가격정보는 ucloudbiz site 에서확인가능하다. 명령어파라미터 Parameter Name Description Required zoneid zone ID (* 상품리스트에나오는 zoneid 만가능 ) TRUE usageplantype monthly( 무약정-월단위요금 ), hourly( 시간요금 ) : (* default : hourly) FALSE account 추가된 IP 를할당할계정 FALSE domainid 추가된 IP 를할당할도메인의 ID FALSE networkid 추가된 IP 와연관되는네트워크 ID FALSE 응답결과항목 Response Name Description jobid 현재보류중인비동기작업 ID jobstatus 현재보류중인비동기작업상태 id 공인 IP 주소 ID account 공인 IP 주소와관련된계정 allocated 공인 IP 주소를취득날짜 associatednetworkid 공인 IP 주소와관련된네트워크의 ID domain 공인 IP 주소와관련된도메인 domainid 공인 IP 주소와관련된도메인 ID forvirtualnetwork 공인 IP 주소에대한가상네트워크 ipaddress 공인 IP 주소 issourcenat 소스 NAT 여부 [ true false ] isstaticnat 정적 NAT 여부 [ true false ] 45

networkid state virtualmachinedisplay name virtualmachineid virtualmachinename vlanid vlanname zoneid zonename 공인 IP 가속한네트워크의 ID 공인 IP 주소상태공인 IP 가할당된 VM 표시이름공인 IP 가할당된 VM ID 공인 IP 가할당된 VM 이름공인 IP 주소와연관된 VLAN 의 ID 공인 IP 주소와연결된 VLAN 공인 IP 주소에속한 zone ID 공인 IP 주소에속한 zone 이름 Example Sample 1 Request ${API_URL}command=associateIpAddress&zoneid=2&apiKey=hmL3yALU4r&signature= UcL0H%2FSKjc7yeiEHw%2BlmJnWpOzY%3D Sample 2 Response <?xml version="1.0" encoding="utf-8"?> <associateipaddressresponse cloud-stack-version="2.2.13.20111117130644"> <id>2912</id> <jobid>124790</jobid> </associateipaddressresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=124790&apiKey=hmL3yALU4r&sig nature=ra7i0kqzikxmoy0vt68wmgrwkxy%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>124790</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> 46

<jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <ipaddress> <id>2912</id> <ipaddress>14.63.219.28</ipaddress> <allocated>2011-12-30t17:59:15+0900</allocated> <zoneid>2</zoneid> <zonename>kr-1</zonename> <issourcenat>false</issourcenat> <account>test_m123456_s1234</account> <domainid>2</domainid> <domain>epc_user</domain> <forvirtualnetwork>true</forvirtualnetwork> <isstaticnat>false</isstaticnat> <associatednetworkid>1812</associatednetworkid> <networkid>330</networkid> <state>allocating</state> </ipaddress> </jobresult> </queryasyncjobresultresponse<jobresulttype>object</jobresulttype> <jobresult> <virtualmachine> <id>31232</id> <name>i-172-31232-vm</name> <displayname>i-172-31232-vm</displayname> <account>test_m123456_s1234</account> <domainid>4</domainid> <domain>epc_user</domain> <created>2011-12-19t11:19:29+0900</created> <state>running</state> <haenable>true</haenable> <zoneid>3</zoneid> <zonename>test-staging-kr-1</zonename> <templateid>460</templateid> <templatename>t2 CentOS 5.4 64-bit</templatename> <templatedisplaytext>t2 CentOS 5.4 64-bit</templatedisplaytext> <passwordenabled>true</passwordenabled> <serviceofferingid>73</serviceofferingid> <serviceofferingname>tier2 1core 2GB Instance. Virtual Networking</serviceofferingname> <cpunumber>1</cpunumber> 47

<cpuspeed>2000</cpuspeed> <memory>2048</memory> <cpuused>0.09%</cpuused> <networkkbsread>3359708</networkkbsread> <networkkbswrite>3359710</networkkbswrite> <guestosid>14</guestosid> <rootdeviceid>0</rootdeviceid> <rootdevicetype>iscsilun</rootdevicetype> <nic> <id>10240</id> <networkid>625</networkid> <netmask>255.255.0.0</netmask> <gateway>172.27.0.1</gateway> <ipaddress>172.27.200.146</ipaddress> <traffictype>guest</traffictype> <type>virtual</type> <isdefault>true</isdefault> <macaddress>02:00:4b:00:00:00</macaddress> </nic> <hypervisor>xenserver</hypervisor> </virtualmachine> </jobresult> </queryasyncjobresultresponse> 3.3.2 disassociateipaddress (A) 사용중인공인 IP 반환한다. ( 반납한다.) 반환이불가하다 ) (** 무약정으로추가된공인 IP 는추가당일 명령어파라미터 Parameter Name Description Required id 공인 IP 의 ID TRUE 응답결과항목 Response Name jobid jobstatus displaytext success Description 현재보류중인비동기작업 ID 현재보류중인비동기작업상태성공또는실패와관련된텍스트성공여부 [true false] 48

Example Sample 1 Request ${API_URL}command=disassociateIpAddress&id=2912&apiKey=hmL3yALU4r&signatur e=yjiz6bq80wpxcosijlyhbw%2fc29k%3d Sample 2 Response <?xml version="1.0" encoding="utf-8"?> <disassociateipaddressresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>124791</jobid> </disassociateipaddressresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=124791&apiKey=hmL3yALU4r&sig nature=hfsb0bwimcgjhuyohv2gvqmw09y%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>124791</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <success>true</success> </jobresult> </queryasyncjobresultresponse> 49

3.3.3 listpublicipaddresses 사용중인공인 IP 를조회한다. 명령어파라미터 Parameter Name Description Required account 계정이름 TRUE allocatedonly 할당된공인 IP 주소로제한검색결과 FALSE domainid 도메인 ID FALSE forvirtualnetwork IP 주소에대한가상네트워크 FALSE id 공인 IP 주소 ID FALSE ipaddress 공인 IP 주소 FALSE keyword 키워드로목록 FALSE page 페이지번호 FALSE pagesize 페이지크기 FALSE vlanid VLAN ID 로모듞공용 IP 주소 FALSE zoneid zone ID FALSE 응답결과항목 : associateipaddress 와결과동일. Example Sample 1 Request ${API_URL}command=listPublicIpAddresses&apiKey=hmL3yALU4r&signature=c6TVga TFxQDYpcEpxONeTaU4PJo%3D Sample 2 Response <?xml version="1.0" encoding="iso-8859-1"?> <listpublicipaddressesresponse cloud-stack-version="2.2.13.20111117130644"> <count>1</count> <publicipaddress> <id>2779</id> 50

<ipaddress>14.63.219.129</ipaddress> <allocated>2011-12-29t16:05:25+0900</allocated> <zoneid>2</zoneid> <zonename>kr-1</zonename> <issourcenat>false</issourcenat> <account>test_m123456_s1234</account> <domainid>2</domainid> <domain>epc_user</domain> <forvirtualnetwork>true</forvirtualnetwork> <isstaticnat>false</isstaticnat> <associatednetworkid>1812</associatednetworkid> <networkid>330</networkid> <state>allocated</state> </publicipaddress> </listpublicipaddressesresponse> 51

3.4 PortFowarding 포트포워딩관련명령을기술한다. 사용자가생성한 VM 에접속하거나 VM 에서제공하는서비스를이용하기위해서는공인 IP 의특정포트와 VM 의서비스포트매핑정보를등록하여야한다. 3.4.1 createportforwardingrule (A) 포트포워딩규칙을만든다. (** 설정가능한 port : 1~10999, 12501~65535 번 ) 명령어파라미터 Parameter Name Description Required ipaddressid 포트포워딩규칙의공인 IP 주소 ID TRUE privateport 포트포워딩규칙의개인포트범위의시작포트 TRUE protocol 포트 fowarding 규칙에대한프로토콜. [ TCP UDP] TRUE publicport 포트포워딩규칙의공개포트범위의시작포트 TRUE virtualmachineid 포트포워딩규칙을위한 VM ID TRUE cidrlist Firewall 에등록할 source cidrlist ( 미기입시, 모듞 IP 허용정 ) FALSE openfirewall publicport 에자동 Firewall 설정여부 ( * default :true) FALSE privateendport 포트포워딩규칙의개인포트범위의끝포트 FALSE publicendport 포트포워딩규칙의공개포트범위의끝포트 FALSE 응답결과항목 Response Name id cidrlist ipaddress ipaddressid privateendport privateport Description 포트포워딩규칙 ID source cidrlist 포트포워딩규칙에대한공인 IP 주소포트포워딩규칙에대한공개 IP 주소 ID 포트포워딩규칙의개인포트범위의끝포트포트포워딩규칙의개인포트범위의시작포트 52

protocol publicendport publicport state virtualmachinedis playname virtualmachineid virtualmachinena me 포트포워딩규칙의프로토콜포트포워딩규칙의공개포트범위의끝포트포트포워딩규칙의공개포트범위의시작포트규칙의상태포트포워딩규칙에대한 VM 의표시이름포트포워딩규칙에대한 VM ID 포트포워딩규칙에대한 VM 의이름 Example Sample 1 Request ${API_URL}command=createPortForwardingRule&ipaddressid=374&publicport=80&virtu almachineid=31686&privateport=80&protocol=tcp&apikey=hml3yalu4r&signature=h smvqmwnvc7gqhn9sb8ovapcuds%3d Sample 2 Response <?xml version="1.0" encoding="iso-8859-1"?> <createportforwardingruleresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37530</jobid> <id>13749</id> </createportforwardingruleresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=37530&apiKey=hmL3yALU4r&sign ature=kc%2fowxvix7y%2bijosacyuhri%2bqy8%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37530</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> 53

<jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <portforwardingrule> <id>13749</id> <privateport>80</privateport> <privateendport>80</privateendport> <protocol>tcp</protocol> <publicport>80</publicport> <publicendport>80</publicendport> <virtualmachineid>31686</virtualmachineid> <virtualmachinename>i-172-31686-vm</virtualmachinename> <virtualmachinedisplayname>i-172-31686-vm</virtualmachinedisplayname> <ipaddressid>374</ipaddressid> <ipaddress>14.63.253.244</ipaddress> <state>active</state> <cidrlist> </cidrlist> </portforwardingrule> </jobresult> </queryasyncjobresultresponse> 3.4.2 deleteportforwardingrule (A) 포트포워딩규칙을삭제한다. 명령어파라미터 Parameter Name Description Required id 포트포워딩규칙 ID TRUE 응답결과항목 Response Name jobid jobstatus displaytext Description 현재보류중인비동기작업 ID 현재보류중인비동기작업상태성공또는실패와관련된텍스트 54

success 성공여부 [true false] Example Sample 1 Request ${API_URL}command=deletePortForwardingRule&id=13749&apiKey=hmL3yALU4r&sig nature=tdujmp410lshyvq6tzwnvwcbgbe%3d Sample 2 Response <?xml version="1.0" encoding="iso-8859-1"?> <deleteportforwardingruleresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37531</jobid> </deleteportforwardingruleresponse> Sample 3 비동기명령상태 Request ${API_URL}command=queryAsyncJobResult&jobid=37531&apiKey=hmL3yALU4r&sign ature=vbgnxosjnn3e1k6ql7z80gv3g9k%3d Sample 4 비동기명령상태 Response <?xml version="1.0" encoding="iso-8859-1"?> <queryasyncjobresultresponse cloud-stack-version="2.2.13.20111117130644"> <jobid>37531</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <success>true</success> </jobresult> </queryasyncjobresultresponse> 55