네이버 클라우드 플랫폼의 상품 사용 방법을 보다 상세하게 제공하고, 다양한 API의 활용을 돕기 위해 [설명서][API 참조서]를 구분하여 제공하고 있습니다.

CloudDB API 개요

네이버 클라우드 플랫폼은 NAVER의 최신 컴퓨팅 기술과 운영 노하우가 축적된 클라우드 서비스입니다. 네이버 클라우드 플랫폼에서 제공하는 여러 가지 상품군 중에 솔루션 상품을 이용할 수 있도록 제공하는 응용 프로그램 인터페이스(API)를 네이버 클라우드 플랫폼 API라고 합니다. 네이버 클라우드 플랫폼 API는 RESTful 형태로 제공됩니다. HTTP 방식의 GET/POST 메서드 호출을 통해서 이루어집니다.

CloudDB API는 CloudDB for MSSQL, CloudDB for MySQL, CloudDB for Redis에서 공통으로 사용할 수 있습니다.

공통설정

  • {CloudDB_API_URL}
https://ncloud.apigw.ntruss.com/clouddb/v1
  • Request header
Header Description
x-ncp-apigw-timestamp 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(millisecond)로 나타낸 것이다.
APIGW 서버와 시간차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주
x-ncp-apigw-api-key API Gateway에서 발급받은 키
x-ncp-iam-access-key NCP에서 발급받은 API Key 또는 IAM에서 발급받은 AccessKey
x-ncp-apigw-signature-v1 위 예제의 Body를 AccessKey와 맵핑되는 SecretKey로 암호화한 서명
HMAC 암호화 알고리즘은 HmacSHA256 사용

API References

1. DMS는 Data Migration Service의 약자로, 온프레미스에서 운영하던 데이터베이스를 CloudDB로 복구하거나 CloudDB에서 자동 백업된 백업 파일을 오브젝트 스토리지로 옮길 수 있는 서비스입니다. 해당 서비스는 API Gateway를 이용한 API이며, 오브젝트 스토리지에 버킷을 생성한 후 사용할 수 있습니다. 대용량 데이터베이스도 단 몇 분의 서비스 중지 시간만으로 클라우드 데이터베이스로 옮길 수 있습니다.
2. DMS는 Amazon S3 API 호환 시스템으로부터 복구 가능합니다. 작업할 오브젝트 스토리지 정보를 저장후 사용할 수 있습니다.
3. 오브젝트 스토리지의 백업 파일을 내부 백업 스토리지로 다운로드한 후 데이터베이스 복구 작업을 수행할 수 있습니다.(데이터베이스 복구는 해당 데이터베이스의 IO 요건을 모두 만족하는 스토리지 시스템으로부터만 복구할 수 있습니다.)
4. 자동으로 매일 백업되는 전체 백업과 트랜젝션 로그 백업을 오브젝트 스토리지로 옮길 수 있습니다.
5. 대용량 파일을 내부 백업스토리지로 옮기거나 복구하는 명령의 상태를 조회할 수 있습니다.

CloudDB

createCloudDBInstance

  • API명

    인스턴스생성

  • action

    createCloudDBInstance
    
  • 설명
         CloudDB 인스턴스 생성합니다.
    
  • 요청 파라미터
파라미터명 간략 설명 타입 제약 필수여부
cloudDBImageProductCode CloudDB이미지상품코드 String   No
dbKindCode DB유형코드 String   Yes
collation 문자셋 String Default : (Korean_Wansung_CI_AS) No
cloudDBProductCode CloudDB상품코드 String Default : 최소사양으로 선택 No
dataStorageTypeCode 데이터스토리지유형코드 String Default : SSD No
isHa 고가용성여부 Boolean default : true No
cloudDBServerName CloudDB서버이름 String   Conditional
cloudDBServiceName CloudDB서비스이름 String   Yes
hostIp 호스트IP String   Conditional
cloudDBBasicName CloudDB기본이름 String   Conditional
cloudDBUserName CloudDB유저이름 String   Conditional
cloudDBUserPassword CloudDB유저암호 String   Conditional
cloudDBPort CloudDB포트 Integer   No
cloudDBConfigGroupNo CloudDB설정그룹번호 String default : 0 (mssql_2016_default ) No
isBackup 백업여부 Boolean default : false No
backupFileRetentionPeriod 백업파일보관기간 Integer default : 1일 (1~30까지 입력가능) No
isAutomaticBackup 자동 Backup여부 Boolean defualt : true No
backupTime Backup 시간 String HHMM 15분단위로 내림 1707 -> 1700 Conditional
regionNo 리전번호 String KR리전만가능 No
zoneNo ZONE번호 String KR-1 ZONE만가능 No
responseFormatType response의 결과 format 설정 String   No
  • cloudDBImageProductCode

    • getCloudDBImageProductListRequest API를 통해 얻을수 있습니다.
  • cloudDBProductCode

    • getCloudDBProductList API를 통해서 필요한 입력값을 조회할 수 있습니다.
  • dbKindCode

    • MYSQL, MSSQL, REDIS 중 선택 가능합니다.
  • collation

    • Korean_Wansung_CI_AS, SQL_Latin1_General_CP1_CI_AS 중 선택가능하며 MSSQL에서만 선택합니다.
  • dataStorageTypeCode

    • HDD, SSD 코드중 입력가능 합니다.
  • isHa

    • REDIS, MSSQL만 선택가능며, MSSQL은 설정 불가능 합니다.
  • cloudDBServerName

    • MSSQL의 경우에는 자동으로 이름이 생성되며, MYSQL, REDIS는 직접 입력해야합니다.
  • cloudDBServiceName

    • 사용자가 정의하는 클라우드 데이터베이스 서비스 이름입니다.
  • hostIp

    • MSSQL, REDIS는 호스트 IP설정 불가능, MYSQL만 가능 합니다.
  • cloudDBBasicName

    • MYSQL에서만 설정가능합니다.
  • cloudDBUserName

    • MYSQL, MSSQL에서만 설정가능하며, 데이터베이스 접속시 사용되는 userid입니다.
  • cloudDBUserPassword

    • MYSQL, MSSQL에서만 설정가능하며, 데이터베이스 접속시 사용되는 password입니다.
  • cloudDBPort

    • (MSSQL)1433, (MYSQL) 3306, (REDIS) 6379, 가용포트 10000 ~ 20000으로 validation 체크합니다. 기본 포트번호는 공격에 취약할 수 있습니다.
  • cloudDBConfigGroupNo

    • getCloudDBConfigGroupList API를 이용해서 조회가능하며 MSSQL에서만 설정 가능합니다. 입력하지 않거나, 사용자가 생성한 설정 그룹 번호를 넣습니다.
  • isBackup

    • MYSQL, MSSQL에서는 백업여부 true고정, REDIS에서만 설정가능, isHa(고가용성)값이 true이면 이면 true, false 선택은 불가능 합니다.
  • backupFileRetentionPeriod

    • 백업 파일 보관일자
  • isAutomaticBackup

    • 자동 백업 여부 (MSSQL의 경우 isHa값이 ture일 경우 반드시 설정되어야 합니다.)
  • backupTime

    • isAutomaticFullBackup이 false일 경우 필수로 입력해야 합니다. 0430처럼 백업을 시작하는 시간을 15분 단위로 설정합니다.
  • regionNo

    • Server API인 getRegionList를 통해 얻을수 있습니다.
  • zoneNo

    • Server API인 getZoneList를 통해 얻을수 있습니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/createCloudDBInstance?backupTime=1900&cloudDBPort=11433&cloudDBServiceName=msqa1&cloudDBUserName=msqa&cloudDBUserPassword=%211P%40ssw0rd&dbKindCode=MSSQL
      
    • 응답

      <createCloudDBInstanceResponse>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <totalRows>1</totalRows>
         <cloudDBInstanceList>
            <cloudDBInstance>
               <cloudDBInstanceNo>1057304</cloudDBInstanceNo>
               <cloudDBServiceName>msqa1</cloudDBServiceName>
               <dbKindCode>MSSQL</dbKindCode>
               <engineVersion>MSSQL 2016 standard edition</engineVersion>
               <cpuCount>2</cpuCount>
               <memorySize>4294967296</memorySize>
               <dataStorageType>
                  <code>SSD</code>
                  <codeName>SSD</codeName>
               </dataStorageType>
               <licenseCode>SPLA</licenseCode>
               <cloudDBPort>11433</cloudDBPort>
               <isHa>true</isHa>
               <cloudDBInstanceStatusName>creating</cloudDBInstanceStatusName>
               <collation />
               <createDate>2018-11-09T17:20:00+0900</createDate>
               <cloudDBImageProductCode>SPSWMSSQLWINNT01</cloudDBImageProductCode>
               <cloudDBProductCode>SPSVRDBAAS000013</cloudDBProductCode>
               <isCloudDBConfigNeedReboot>false</isCloudDBConfigNeedReboot>
               <isCloudDBNeedReboot>false</isCloudDBNeedReboot>
               <zone>
                  <zoneNo>3</zoneNo>
                  <zoneName>KR-2</zoneName>
                  <zoneCode>KR-2</zoneCode>
                  <zoneDescription>평촌 zone</zoneDescription>
                  <regionNo>1</regionNo>
               </zone>
               <region>
                  <regionNo>1</regionNo>
                  <regionCode>KR</regionCode>
                  <regionName>Korea</regionName>
               </region>
               <cloudDBConfigList />
               <cloudDBConfigGroupList />
               <accessControlGroupList>
                  <accessControlGroup>
                     <accessControlGroupConfigurationNo>67517</accessControlGroupConfigurationNo>
                     <accessControlGroupName>cloud-mssql-mntk</accessControlGroupName>
                     <accessControlGroupDescription>Group for cloud MSSQL service 'msqa1' (automatically created)</accessControlGroupDescription>
                     <isDefault>false</isDefault>
                     <createDate>2018-11-09T17:20:35+0900</createDate>
                  </accessControlGroup>
               </accessControlGroupList>
               <cloudDBServerInstanceList>
                  <cloudDBServerInstance>
                     <cloudDBServerInstanceNo>1057305</cloudDBServerInstanceNo>
                     <cloudDBServerInstanceStatusName>creating</cloudDBServerInstanceStatusName>
                     <cloudDBServerName>m-1057304-001</cloudDBServerName>
                     <cloudDBServerRole>
                        <code>M</code>
                        <codeName>Master</codeName>
                     </cloudDBServerRole>
                     <privateDnsName>mssql-108go.cdb.ntruss.com</privateDnsName>
                     <publicDnsName />
                     <dataStorageSize>0</dataStorageSize>
                     <createDate>2018-11-09T17:20:00+0900</createDate>
                     <uptime>2018-11-09T17:20:00+0900</uptime>
                  </cloudDBServerInstance>
                  <cloudDBServerInstance>
                     <cloudDBServerName>m-1057304-002</cloudDBServerName>
                     <cloudDBServerRole>
                        <code>H</code>
                        <codeName>Hidden Master</codeName>
                     </cloudDBServerRole>
                  </cloudDBServerInstance>
               </cloudDBServerInstanceList>
            </cloudDBInstance>
         </cloudDBInstanceList>
      </createCloudDBInstanceResponse>
      

deleteCloudDBServerInstance

  • API명

    인스턴스삭제

  • action

    deleteCloudDBServerInstance

  • 설명

     CloudDB 서버 인스턴스를 삭제합니다. (Slave 삭제 기능으로 현재 MYSQL 만 지원합니다.)
    
  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
cloudDBInstanceNo CloudDb 인스턴스번호 String Yes
responseFormatType response의 결과 format 설정 String No
  • cloudDBInstanceNo

    • 삭제하려는 CloudDB의 인스턴스 번호입니다. getCloudDBInstanceList API를 실행하여 response 결과에서 삭제하려는 CloudDB의 인스턴스 번호를 얻어 사용합니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/deleteCloudDBServerInstance?cloudDBInstanceNo=743149
      
    • 응답

      <deleteCloudDBServerInstanceResponse>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <totalRows>1</totalRows>
         <cloudDBInstanceList>
            <cloudDBInstance>
               <cloudDBInstanceNo>653558</cloudDBInstanceNo>
               <cloudDBServiceName>cnctest</cloudDBServiceName>
               <dbKindCode>MYSQL</dbKindCode>
               <engineVersion>MYSQL5.7.19</engineVersion>
               <cpuCount>2</cpuCount>
               <dataStorageType>
                  <code>SSD</code>
                  <codeName>SSD</codeName>
               </dataStorageType>
               <licenseCode>GPL</licenseCode>
               <cloudDBPort>3306</cloudDBPort>
               <isHa>true</isHa>
               <backupTime>12:00</backupTime>
               <backupFileRetentionPeriod>2</backupFileRetentionPeriod>
               <cloudDBInstanceStatusName>running</cloudDBInstanceStatusName>
               <collation />
               <createDate>2018-02-13T11:14:00+0900</createDate>
               <cloudDBImageProductCode>SPSWMYSQLLINUX01</cloudDBImageProductCode>
               <cloudDBProductCode>SPSVRDBAAS000001</cloudDBProductCode>
               <isCloudDBConfigNeedReboot>false</isCloudDBConfigNeedReboot>
               <isCloudDBNeedReboot>false</isCloudDBNeedReboot>
               <zone>
                  <zoneNo>2</zoneNo>
                  <zoneName>KR-1</zoneName>
                  <zoneCode>KR-1</zoneCode>
                  <zoneDescription>가산 zone</zoneDescription>
                  <regionNo>1</regionNo>
               </zone>
               <region>
                  <regionNo>1</regionNo>
                  <regionCode>KR</regionCode>
                  <regionName>Korea</regionName>
               </region>
               <cloudDBConfigList>
                  <cloudDBConfig>
                     <configName>character_set_server</configName>
                     <configValue>utf8mb4</configValue>
                  </cloudDBConfig>
                  <cloudDBConfig>
                     <configName>event_scheduler</configName>
                     <configValue>OFF</configValue>
                  </cloudDBConfig>
                  <cloudDBConfig>
                     <configName>group_concat_max_len</configName>
                     <configValue>102400</configValue>
                  </cloudDBConfig>
                  <cloudDBConfig>
                     <configName>sql-mode</configName>
                     <configValue>STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</configValue>
                  </cloudDBConfig>
               </cloudDBConfigList>
               <cloudDBConfigGroupList />
               <accessControlGroupList>
                  <accessControlGroup>
                     <accessControlGroupConfigurationNo>34525</accessControlGroupConfigurationNo>
                     <accessControlGroupName>cloud-db-e0ae</accessControlGroupName>
                     <accessControlGroupDescription>Group for cloud DB service 'cnctest' (automatically created)</accessControlGroupDescription>
                     <isDefault>false</isDefault>
                     <createDate>2018-02-13T11:14:14+0900</createDate>
                  </accessControlGroup>
               </accessControlGroupList>
               <cloudDBServerInstanceList>
                  <cloudDBServerInstance>
                     <cloudDBServerInstanceNo>653559</cloudDBServerInstanceNo>
                     <cloudDBServerInstanceStatusName>running</cloudDBServerInstanceStatusName>
                     <cloudDBServerName>cnctest-001</cloudDBServerName>
                     <cloudDBServerRole>
                        <code>M</code>
                        <codeName>Master</codeName>
                     </cloudDBServerRole>
                     <privateDnsName>db-ju7n.cdb.ntruss.com</privateDnsName>
                     <publicDnsName />
                     <dataStorageSize>0</dataStorageSize>
                     <createDate>2018-02-13T11:14:00+0900</createDate>
                     <uptime>2018-02-13T11:16:00+0900</uptime>
                  </cloudDBServerInstance>
                  <cloudDBServerInstance>
                     <cloudDBServerName>cnctest-002</cloudDBServerName>
                     <cloudDBServerRole>
                        <code>H</code>
                        <codeName>Hidden Master</codeName>
                     </cloudDBServerRole>
                  </cloudDBServerInstance>
                  <cloudDBServerInstance>
                     <cloudDBServerInstanceNo>743149</cloudDBServerInstanceNo>
                     <cloudDBServerInstanceStatusName>deleting</cloudDBServerInstanceStatusName>
                     <cloudDBServerName>cnctest-004</cloudDBServerName>
                     <cloudDBServerRole>
                        <code>S</code>
                        <codeName>Slave</codeName>
                     </cloudDBServerRole>
                     <privateDnsName>db-mlnd.cdb.ntruss.com</privateDnsName>
                     <publicDnsName />
                     <dataStorageSize>0</dataStorageSize>
                     <createDate>2018-04-17T15:48:00+0900</createDate>
                     <uptime>2018-04-17T15:52:00+0900</uptime>
                  </cloudDBServerInstance>
                  <cloudDBServerInstance>
                     <cloudDBServerInstanceNo>814921</cloudDBServerInstanceNo>
                     <cloudDBServerInstanceStatusName>running</cloudDBServerInstanceStatusName>
                     <cloudDBServerName>cnctest-005</cloudDBServerName>
                     <cloudDBServerRole>
                        <code>S</code>
                        <codeName>Slave</codeName>
                     </cloudDBServerRole>
                     <privateDnsName>db-orq9.cdb.ntruss.com</privateDnsName>
                     <publicDnsName />
                     <dataStorageSize>10737418240</dataStorageSize>
                     <usedDataStorageSize>5</usedDataStorageSize>
                     <createDate>2018-06-11T00:50:00+0900</createDate>
                     <uptime>2018-06-11T00:53:00+0900</uptime>
                  </cloudDBServerInstance>
               </cloudDBServerInstanceList>
            </cloudDBInstance>
         </cloudDBInstanceList>
      </deleteCloudDBServerInstanceResponse>
      

getCloudDBInstanceList

  • API명

    CloudDB 인스턴스 정보 조회

  • action

    getCloudDBInstanceList

  • 설명

     CloudDB 인스턴스 정보 조회합니다. (해당하는 ZoneNo에 서버가 없으면 출력되지 않습니다. )
    
  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
pageNo 페이지번호 integer No
pageSize 페이지사이즈 integer No
dbKindCode DB유형코드 String MYSQL, MSSQL, REDIS Yes
searchFilterName 검색필터이름 String No
searchFilterValue 검색필터값 String No
regionNo 리전번호 String No
zoneNo zone번호 String No
responseFormatType response의 결과 format 설정 String No
  • pageNo

    • 건수가 많을 경우 페이지 사이즈에 해당하는 페이지 번호
  • pageSize

    • 한 페이지에서 조회할 페이지 사이즈
  • dbKindCode

    • 조회할 CloudDB의 종류 선택 (MSSQL, MYSQL, REDIS) 입력 합니다.
  • searchFilterName

    • 조회할 CloudDB의 필터링할 이름을 입력합니다.
  • searchFilterValue

    • 조회할 CloudDB의 필터링할 값을 입력합니다.
  • regionNo

    • Server API인 getRegionList를 통해 얻을수 있습니다.
  • zoneNo

    • Server API인 getZoneList를 통해 얻을수 있습니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

       {CloudDB_API_URL}/getCloudDBInstanceList?dbKindCode=MSSQL
      
    • 응답

      <getCloudDBInstanceListResponse>
                 <returnCode>0</returnCode>
                 <returnMessage>success</returnMessage>
                 <totalRows>3</totalRows>
             <cloudDBInstanceList>
                <cloudDBInstance>
                   <cloudDBInstanceNo>1057304</cloudDBInstanceNo>
                   <cloudDBServiceName>msqa1</cloudDBServiceName>
                   <dbKindCode>MSSQL</dbKindCode>
                   <engineVersion>MSSQL 2016 standard edition</engineVersion>
                   <cpuCount>2</cpuCount>
                   <dataStorageType>
                      <code>SSD</code>
                      <codeName>SSD</codeName>
                   </dataStorageType>
                   <licenseCode>SPLA</licenseCode>
                   <cloudDBPort>11433</cloudDBPort>
                   <isHa>true</isHa>
                   <cloudDBInstanceStatusName>running</cloudDBInstanceStatusName>
                   <collation>Korean_Wansung_CI_AS</collation>
                   <createDate>2018-11-09T17:20:00+0900</createDate>
                   <cloudDBImageProductCode>SPSWMSSQLWINNT01</cloudDBImageProductCode>
                   <cloudDBProductCode>SPSVRDBAAS000013</cloudDBProductCode>
                   <isCloudDBConfigNeedReboot>false</isCloudDBConfigNeedReboot>
                   <isCloudDBNeedReboot>false</isCloudDBNeedReboot>
                   <zone>
                      <zoneNo>3</zoneNo>
                      <zoneName>KR-2</zoneName>
                      <zoneCode>KR-2</zoneCode>
                      <zoneDescription>평촌 zone</zoneDescription>
                      <regionNo>1</regionNo>
                   </zone>
                   <region>
                      <regionNo>1</regionNo>
                      <regionCode>KR</regionCode>
                      <regionName>Korea</regionName>
                   </region>
                   <cloudDBConfigList />
                   <cloudDBConfigGroupList>
                      <cloudDBConfigGroup>
                         <configGroupNo>0</configGroupNo>
                         <configGroupType>system</configGroupType>
                         <configGroupName>mssql_2016_default</configGroupName>
                      </cloudDBConfigGroup>
                   </cloudDBConfigGroupList>
                   <accessControlGroupList>
                      <accessControlGroup>
                         <accessControlGroupConfigurationNo>67517</accessControlGroupConfigurationNo>
                         <accessControlGroupName>cloud-mssql-mntk</accessControlGroupName>
                         <accessControlGroupDescription>Group for cloud MSSQL service 'msqa1' (automatically created)</accessControlGroupDescription>
                         <isDefault>false</isDefault>
                         <createDate>2018-11-09T17:20:35+0900</createDate>
                      </accessControlGroup>
                   </accessControlGroupList>
                   <cloudDBServerInstanceList>
                      <cloudDBServerInstance>
                         <cloudDBServerInstanceNo>1057305</cloudDBServerInstanceNo>
                         <cloudDBServerInstanceStatusName>running</cloudDBServerInstanceStatusName>
                         <cloudDBServerName>m-1057304-001</cloudDBServerName>
                         <cloudDBServerRole>
                            <code>M</code>
                            <codeName>Master</codeName>
                         </cloudDBServerRole>
                         <privateDnsName>mssql-108go.cdb.ntruss.com</privateDnsName>
                         <publicDnsName />
                         <dataStorageSize>107374182400</dataStorageSize>
                         <usedDataStorageSize>649068544</usedDataStorageSize>
                         <createDate>2018-11-09T17:20:00+0900</createDate>
                         <uptime>2018-11-09T17:28:00+0900</uptime>
                      </cloudDBServerInstance>
                      <cloudDBServerInstance>
                         <cloudDBServerName>m-1057304-002</cloudDBServerName>
                         <cloudDBServerRole>
                            <code>H</code>
                            <codeName>Hidden Master</codeName>
                         </cloudDBServerRole>
                      </cloudDBServerInstance>
                   </cloudDBServerInstanceList>
                </cloudDBInstance>
                <cloudDBInstance>
                   <cloudDBInstanceNo>1057235</cloudDBInstanceNo>
                   <cloudDBServiceName>msqa</cloudDBServiceName>
                   <dbKindCode>MSSQL</dbKindCode>
                   <engineVersion>MSSQL 2016 standard edition</engineVersion>
                   <cpuCount>2</cpuCount>
                   <dataStorageType>
                      <code>SSD</code>
                      <codeName>SSD</codeName>
                   </dataStorageType>
                   <licenseCode>SPLA</licenseCode>
                   <cloudDBPort>11433</cloudDBPort>
                   <isHa>true</isHa>
                   <cloudDBInstanceStatusName>running</cloudDBInstanceStatusName>
                   <collation>Korean_Wansung_CI_AS</collation>
                   <createDate>2018-11-09T17:10:00+0900</createDate>
                   <cloudDBImageProductCode>SPSWMSSQLWINNT01</cloudDBImageProductCode>
                   <cloudDBProductCode>SPSVRDBAAS000013</cloudDBProductCode>
                   <isCloudDBConfigNeedReboot>false</isCloudDBConfigNeedReboot>
                   <isCloudDBNeedReboot>false</isCloudDBNeedReboot>
                   <zone>
                      <zoneNo>3</zoneNo>
                      <zoneName>KR-2</zoneName>
                      <zoneCode>KR-2</zoneCode>
                      <zoneDescription>평촌 zone</zoneDescription>
                      <regionNo>1</regionNo>
                   </zone>
                   <region>
                      <regionNo>1</regionNo>
                      <regionCode>KR</regionCode>
                      <regionName>Korea</regionName>
                   </region>
                   <cloudDBConfigList />
                   <cloudDBConfigGroupList>
                      <cloudDBConfigGroup>
                         <configGroupNo>0</configGroupNo>
                         <configGroupType>system</configGroupType>
                         <configGroupName>mssql_2016_default</configGroupName>
                      </cloudDBConfigGroup>
                   </cloudDBConfigGroupList>
                   <accessControlGroupList>
                      <accessControlGroup>
                         <accessControlGroupConfigurationNo>67514</accessControlGroupConfigurationNo>
                         <accessControlGroupName>cloud-mssql-mnrn</accessControlGroupName>
                         <accessControlGroupDescription>Group for cloud MSSQL service 'msqa' (automatically created)</accessControlGroupDescription>
                         <isDefault>false</isDefault>
                         <createDate>2018-11-09T17:10:26+0900</createDate>
                      </accessControlGroup>
                   </accessControlGroupList>
                   <cloudDBServerInstanceList>
                      <cloudDBServerInstance>
                         <cloudDBServerInstanceNo>1057237</cloudDBServerInstanceNo>
                         <cloudDBServerInstanceStatusName>running</cloudDBServerInstanceStatusName>
                         <cloudDBServerName>m-1057235-001</cloudDBServerName>
                         <cloudDBServerRole>
                            <code>M</code>
                            <codeName>Master</codeName>
                         </cloudDBServerRole>
                         <privateDnsName>mssql-108ej.cdb.ntruss.com</privateDnsName>
                         <publicDnsName />
                         <dataStorageSize>107374182400</dataStorageSize>
                         <usedDataStorageSize>649068544</usedDataStorageSize>
                         <createDate>2018-11-09T17:10:00+0900</createDate>
                         <uptime>2018-11-09T17:17:00+0900</uptime>
                      </cloudDBServerInstance>
                      <cloudDBServerInstance>
                         <cloudDBServerName>m-1057235-002</cloudDBServerName>
                         <cloudDBServerRole>
                            <code>H</code>
                            <codeName>Hidden Master</codeName>
                         </cloudDBServerRole>
                      </cloudDBServerInstance>
                   </cloudDBServerInstanceList>
                </cloudDBInstance>
                <cloudDBInstance>
                   <cloudDBInstanceNo>1010059</cloudDBInstanceNo>
                   <cloudDBServiceName>kimms2</cloudDBServiceName>
                   <dbKindCode>MSSQL</dbKindCode>
                   <engineVersion>MSSQL 2016 standard edition</engineVersion>
                   <cpuCount>2</cpuCount>
                   <dataStorageType>
                      <code>SSD</code>
                      <codeName>SSD</codeName>
                   </dataStorageType>
                   <licenseCode>SPLA</licenseCode>
                   <cloudDBPort>1433</cloudDBPort>
                   <isHa>true</isHa>
                   <cloudDBInstanceStatusName>running</cloudDBInstanceStatusName>
                   <collation>Korean_Wansung_CI_AS</collation>
                   <createDate>2018-10-18T22:19:00+0900</createDate>
                   <cloudDBImageProductCode>SPSWMSSQLWINNT01</cloudDBImageProductCode>
                   <cloudDBProductCode>SPSVRDBAAS000013</cloudDBProductCode>
                   <isCloudDBConfigNeedReboot>false</isCloudDBConfigNeedReboot>
                   <isCloudDBNeedReboot>false</isCloudDBNeedReboot>
                   <zone>
                      <zoneNo>3</zoneNo>
                      <zoneName>KR-2</zoneName>
                      <zoneCode>KR-2</zoneCode>
                      <zoneDescription>평촌 zone</zoneDescription>
                      <regionNo>1</regionNo>
                   </zone>
                   <region>
                      <regionNo>1</regionNo>
                      <regionCode>KR</regionCode>
                      <regionName>Korea</regionName>
                   </region>
                   <cloudDBConfigList />
                   <cloudDBConfigGroupList>
                      <cloudDBConfigGroup>
                         <configGroupNo>0</configGroupNo>
                         <configGroupType>system</configGroupType>
                         <configGroupName>mssql_2016_default</configGroupName>
                      </cloudDBConfigGroup>
                   </cloudDBConfigGroupList>
                   <accessControlGroupList>
                      <accessControlGroup>
                         <accessControlGroupConfigurationNo>64403</accessControlGroupConfigurationNo>
                         <accessControlGroupName>cloud-mssql-lnd7</accessControlGroupName>
                         <accessControlGroupDescription>Group for cloud MSSQL service 'kimms2' (automatically created)</accessControlGroupDescription>
                         <isDefault>false</isDefault>
                         <createDate>2018-10-18T22:19:52+0900</createDate>
                      </accessControlGroup>
                   </accessControlGroupList>
                   <cloudDBServerInstanceList>
                      <cloudDBServerInstance>
                         <cloudDBServerInstanceNo>1010060</cloudDBServerInstanceNo>
                         <cloudDBServerInstanceStatusName>running</cloudDBServerInstanceStatusName>
                         <cloudDBServerName>m-1010059-001</cloudDBServerName>
                         <cloudDBServerRole>
                            <code>M</code>
                            <codeName>Master</codeName>
                         </cloudDBServerRole>
                         <privateDnsName>mssql-uqcb.cdb.ntruss.com</privateDnsName>
                         <publicDnsName />
                         <dataStorageSize>107374182400</dataStorageSize>
                         <usedDataStorageSize>704643072</usedDataStorageSize>
                         <createDate>2018-10-18T22:19:00+0900</createDate>
                         <uptime>2018-10-18T22:28:00+0900</uptime>
                      </cloudDBServerInstance>
                      <cloudDBServerInstance>
                         <cloudDBServerName>m-1010059-002</cloudDBServerName>
                         <cloudDBServerRole>
                            <code>H</code>
                            <codeName>Hidden Master</codeName>
                         </cloudDBServerRole>
                      </cloudDBServerInstance>
                      <cloudDBServerInstance>
                         <cloudDBServerInstanceNo>1014783</cloudDBServerInstanceNo>
                         <cloudDBServerInstanceStatusName>running</cloudDBServerInstanceStatusName>
                         <cloudDBServerName>m-1010059-003</cloudDBServerName>
                         <cloudDBServerRole>
                            <code>S</code>
                            <codeName>Slave</codeName>
                         </cloudDBServerRole>
                         <privateDnsName>mssql-uqcb-r001.cdb.ntruss.com</privateDnsName>
                         <publicDnsName />
                         <dataStorageSize>107374182400</dataStorageSize>
                         <usedDataStorageSize>701497344</usedDataStorageSize>
                         <createDate>2018-10-20T11:11:00+0900</createDate>
                         <uptime>2018-10-20T11:19:00+0900</uptime>
                      </cloudDBServerInstance>
                   </cloudDBServerInstanceList>
                </cloudDBInstance>
             </cloudDBInstanceList>
          </getCloudDBInstanceListResponse>
      

getCloudDBConfigGroupList

  • API NAME

    CloudDB 구성 그룹 선택

  • action

    getCloudDBConfigGroupList
    
  • Description

     usefulCloudDB 구성 그룹 선택
    
  • Request parameters

파라미터명 간략 설명 타입 제약 필수여부
dbKindCode DBkind code String MySQL, MSSQL, REDIS Yes
responseFormatType response result format setting String response result format setting No
  • dbKindCode

    • MSSQL MySQL Redis
  • responseFormatType

    • API 실행 결과에 응답 할 형식을 정의합니다. JSON과 XML 중에서 선택할 수 있습니다.
  • Request

     <?xml version="1.0" encoding="UTF-8"?>
    <getCloudDBConfigGroupListResponse>
      <returnCode>0</returnCode>
      <returnMessage>success</returnMessage>
      <totalRows>1</totalRows>
      <cloudDBConfigGroupList>
        <cloudDBConfigGroup>
          <configGroupNo>0</configGroupNo>
          <configGroupType>system</configGroupType>
          <configGroupName>mssql_2016_default</configGroupName>
        </cloudDBConfigGroup>
      </cloudDBConfigGroupList>
    </getCloudDBConfigGroupListResponse>
    

getCloudDBImageProductList

  • API명

    상품이미지리스트

  • action

    getCloudDBImageProductList

  • 설명

     사용 가능한 CloudDB 이미지 상품 리스트 조회
    
  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
exclusionProductCode 제외할상품코드 string Min : 1, Max : 20 No
productCode 조회할상품코드 string Min : 1, Max : 20 No
dbKindCode DB유형코드 string MYSQL, MSSQL, REDIS Yes
regionNo 리전번호 string No
responseFormatType response의 결과 format 설정 String No
  • exclusionProductCode

    • 제외할 상품 코드를 20개까지 명시할 수 있습니다.
  • productCode

    • 조회할 상품 코드를 20개까지 명시할 수 있습니다.
  • dbKindCode

    • 조회할 CloudDB의 종류 선택 (MSSQL, MYSQL, REDIS) 입력 합니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/getCloudDBImageProductList?dbKindCode=MSSQL
      
    • 응답

      <getCloudDBImageProductListResponse>
         <requestId>661a3159-6afc-4f7d-ac1f-4b425cb59232</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <productList>
            <product>
               <productCode>SPSWMSSQLWINNT01</productCode>
               <productName>MSSQL 2016 standard edition</productName>
               <productType>
                  <code>WINNT</code>
                  <codeName>Windows NT</codeName>
               </productType>
               <productDescription>Windows Server 2012r2 with MSSQL 2016 standard edition</productDescription>
               <infraResourceType>
                  <code>SW</code>
                  <codeName>Software</codeName>
               </infraResourceType>
               <cpuCount>0</cpuCount>
               <memorySize>0</memorySize>
               <baseBlockStorageSize>53687091200</baseBlockStorageSize>
               <platformType>
                  <code>WND64</code>
                  <codeName>Windows 64 Bit</codeName>
               </platformType>
               <osInformation>Windows Server 2012r2 with MSSQL 2016 standard edition</osInformation>
               <dbKindCode>MSSQL</dbKindCode>
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
         </productList>
         <totalRows>1</totalRows>
      </getCloudDBImageProductListResponse>
      

getCloudDBProductListRequest

  • API명

    상품리스트

  • action

    getCloudDBProductListRequest

  • 설명

     사용 가능한 CloudDB 상품 리스트 조회
    
  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
exclusionProductCode 제외할상품코드 string Min : 1, Max : 20 No
cloudDBImageProductCode 조회할 이미지 상품 코드 string Yes
productCode 조회할상품코드 string No
regionNo 리전번호 string No
zoneNo 존 번호 string No
responseFormatType response의 결과 format 설정 String No
  • exclusionProductCode
    • 제외할 상품 코드를 20개까지 명시할 수 있습니다.
  • cloudDBImageProductCode
    • getCloudDBImageProductList에서 얻은 코드값을 넣습니다.
  • productCode
    • 조회할 상품코드입니다.
  • regionNo
    • Server API인 getRegionList를 통해 얻을수 있습니다.
  • zoneNo

    • Server API인 getZoneList를 통해 얻을수 있습니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/getCloudDBProductListRequest?cloudDBImageProductCode=SPSWMSSQLWINNT01
      
    • 응답

      <getCloudDBProductListResponse>
         <requestId>09228255-0e4e-42ce-93ad-3a3d3c80ee74</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <productList>
            <product>
               <productCode>SPSVRDBAAS000013</productCode>
               <productName>vCPU 2EA, Memory 4GB</productName>
               <productType>
                  <code>STAND</code>
                  <codeName>Standard</codeName>
               </productType>
               <productDescription>vCPU 2EA, Memory 4GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>2</cpuCount>
               <memorySize>4294967296</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000017</productCode>
               <productName>vCPU 2EA, Memory 8GB</productName>
               <productType>
                  <code>STAND</code>
                  <codeName>Standard</codeName>
               </productType>
               <productDescription>vCPU 2EA, Memory 8GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>2</cpuCount>
               <memorySize>8589934592</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000014</productCode>
               <productName>vCPU 4EA, Memory 8GB</productName>
               <productType>
                  <code>STAND</code>
                  <codeName>Standard</codeName>
               </productType>
               <productDescription>vCPU 4EA, Memory 8GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>4</cpuCount>
               <memorySize>8589934592</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000018</productCode>
               <productName>vCPU 4EA, Memory 16GB</productName>
               <productType>
                  <code>STAND</code>
                  <codeName>Standard</codeName>
               </productType>
               <productDescription>vCPU 4EA, Memory 16GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>4</cpuCount>
               <memorySize>17179869184</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000015</productCode>
               <productName>vCPU 8EA, Memory 16GB</productName>
               <productType>
                  <code>STAND</code>
                  <codeName>Standard</codeName>
               </productType>
               <productDescription>vCPU 8EA, Memory 16GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>8</cpuCount>
               <memorySize>17179869184</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000019</productCode>
               <productName>vCPU 8EA, Memory 32GB</productName>
               <productType>
                  <code>STAND</code>
                  <codeName>Standard</codeName>
               </productType>
               <productDescription>vCPU 8EA, Memory 32GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>8</cpuCount>
               <memorySize>34359738368</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000016</productCode>
               <productName>vCPU 16EA, Memory 32GB</productName>
               <productType>
                  <code>STAND</code>
                  <codeName>Standard</codeName>
               </productType>
               <productDescription>vCPU 16EA, Memory 32GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>16</cpuCount>
               <memorySize>34359738368</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000029</productCode>
               <productName>vCPU 8EA, Memory 64GB</productName>
               <productType>
                  <code>HIMEM</code>
                  <codeName>High Memory</codeName>
               </productType>
               <productDescription>vCPU 8EA, Memory 64GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>8</cpuCount>
               <memorySize>68719476736</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000030</productCode>
               <productName>vCPU 16EA, Memory 64GB</productName>
               <productType>
                  <code>HIMEM</code>
                  <codeName>High Memory</codeName>
               </productType>
               <productDescription>vCPU 16EA, Memory 64GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>16</cpuCount>
               <memorySize>68719476736</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000031</productCode>
               <productName>vCPU 16EA, Memory 128GB</productName>
               <productType>
                  <code>HIMEM</code>
                  <codeName>High Memory</codeName>
               </productType>
               <productDescription>vCPU 16EA, Memory 128GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>16</cpuCount>
               <memorySize>137438953472</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
            <product>
               <productCode>SPSVRDBAAS000032</productCode>
               <productName>vCPU 24EA, Memory 128GB</productName>
               <productType>
                  <code>HIMEM</code>
                  <codeName>High Memory</codeName>
               </productType>
               <productDescription>vCPU 24EA, Memory 128GB</productDescription>
               <infraResourceType>
                  <code>DBAAS</code>
                  <codeName>Cloud DB</codeName>
               </infraResourceType>
               <cpuCount>24</cpuCount>
               <memorySize>137438953472</memorySize>
               <baseBlockStorageSize>107374182400</baseBlockStorageSize>
               <osInformation />
               <diskType>
                  <code>NET</code>
                  <codeName>Network Storage</codeName>
               </diskType>
               <dbKindCode />
               <addBlockStorageSize>0</addBlockStorageSize>
            </product>
         </productList>
         <totalRows>11</totalRows>
      </getCloudDBProductListResponse>
      

rebootCloudDBServerInstance

  • API명

    재시작

  • action

    rebootCloudDBServerInstance

  • 설명

     데이터베이스를 리부팅하거나 장애조치 합니다.
    
  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
cloudDBServerInstanceNo CloudDb 서버 인스턴스번호 string Yes
isWithFailover failover 여부 bool No
isRebootNow 지금 재부팅 여부 bool No
rebootTime 재부팅 예약시간 string Conditional
responseFormatType response의 결과 format 설정 string No
  • cloudDBServerInstanceNo

    • getCloudDBInstanceList API로 조회한 cloudDBServerRole CodeName이 Master인 cloudDBServerInstanceNo를 입력합니다.
  • isWithFailover

    • MSSQL만 지원하며, 기본값은 false입니다. 다른 CloudDb에서는 입력값이 무시됩니다.
  • isRebootNow

    • MSSQL만 지원하며, 기본값은 true입니다.
  • rebootTime

    • MSSQL만 지원하며, 2018-05-30T00:00:00+0900의 형식으로 입력하며, 현재시간+5분부터 입력 가능합니다. isRebootNow가 false일 경우 필수값입니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/rebootCloudDBServerInstance?cloudDBServerInstanceNo=1057305
      
    • 응답

      <rebootCloudDBServerInstanceResponse>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <totalRows>1</totalRows>
         <cloudDBInstanceList>
            <cloudDBInstance>
               <cloudDBInstanceNo>1057304</cloudDBInstanceNo>
               <cloudDBServiceName>msqa1</cloudDBServiceName>
               <dbKindCode>MSSQL</dbKindCode>
               <engineVersion>MSSQL 2016 standard edition</engineVersion>
               <cpuCount>2</cpuCount>
               <dataStorageType>
                  <code>SSD</code>
                  <codeName>SSD</codeName>
               </dataStorageType>
               <licenseCode>SPLA</licenseCode>
               <cloudDBPort>11433</cloudDBPort>
               <isHa>true</isHa>
               <cloudDBInstanceStatusName>restarting</cloudDBInstanceStatusName>
               <collation>Korean_Wansung_CI_AS</collation>
               <rebootScheduleTime>2018-11-13T10:51:36+0900</rebootScheduleTime>
               <createDate>2018-11-09T17:20:00+0900</createDate>
               <cloudDBImageProductCode>SPSWMSSQLWINNT01</cloudDBImageProductCode>
               <cloudDBProductCode>SPSVRDBAAS000013</cloudDBProductCode>
               <isCloudDBConfigNeedReboot>false</isCloudDBConfigNeedReboot>
               <isCloudDBNeedReboot>false</isCloudDBNeedReboot>
               <zone>
                  <zoneNo>3</zoneNo>
                  <zoneName>KR-2</zoneName>
                  <zoneCode>KR-2</zoneCode>
                  <zoneDescription>평촌 zone</zoneDescription>
                  <regionNo>1</regionNo>
               </zone>
               <region>
                  <regionNo>1</regionNo>
                  <regionCode>KR</regionCode>
                  <regionName>Korea</regionName>
               </region>
               <cloudDBConfigList />
               <cloudDBConfigGroupList>
                  <cloudDBConfigGroup>
                     <configGroupNo>0</configGroupNo>
                     <configGroupType>system</configGroupType>
                     <configGroupName>mssql_2016_default</configGroupName>
                  </cloudDBConfigGroup>
               </cloudDBConfigGroupList>
               <accessControlGroupList>
                  <accessControlGroup>
                     <accessControlGroupConfigurationNo>67517</accessControlGroupConfigurationNo>
                     <accessControlGroupName>cloud-mssql-mntk</accessControlGroupName>
                     <accessControlGroupDescription>Group for cloud MSSQL service 'msqa1' (automatically created)</accessControlGroupDescription>
                     <isDefault>false</isDefault>
                     <createDate>2018-11-09T17:20:35+0900</createDate>
                  </accessControlGroup>
               </accessControlGroupList>
               <cloudDBServerInstanceList>
                  <cloudDBServerInstance>
                     <cloudDBServerInstanceNo>1057305</cloudDBServerInstanceNo>
                     <cloudDBServerInstanceStatusName>restarting</cloudDBServerInstanceStatusName>
                     <cloudDBServerName>m-1057304-001</cloudDBServerName>
                     <cloudDBServerRole>
                        <code>M</code>
                        <codeName>Master</codeName>
                     </cloudDBServerRole>
                     <privateDnsName>mssql-108go.cdb.ntruss.com</privateDnsName>
                     <publicDnsName />
                     <dataStorageSize>107374182400</dataStorageSize>
                     <usedDataStorageSize>649068544</usedDataStorageSize>
                     <createDate>2018-11-09T17:20:00+0900</createDate>
                     <uptime>2018-11-09T17:28:00+0900</uptime>
                  </cloudDBServerInstance>
                  <cloudDBServerInstance>
                     <cloudDBServerName>m-1057304-002</cloudDBServerName>
                     <cloudDBServerRole>
                        <code>H</code>
                        <codeName>Hidden Master</codeName>
                     </cloudDBServerRole>
                  </cloudDBServerInstance>
               </cloudDBServerInstanceList>
            </cloudDBInstance>
         </cloudDBInstanceList>
      </rebootCloudDBServerInstanceResponse>
      

flushCloudDBInstance

  • API명

데이터삭제

  • action

    flushCloudDBInstance

  • 설명

    Redis 데이터를 삭제합니다.

  • 요청 파라미터
파라미터명 간략 설명 타입 제약 필수여부
cloudDBInstanceNo 클라우드DB인스턴스번호 String REDIS Yes
  • Example
  • 요청

    {CloudDB_API_URL}/flushCloudDBInstance?cloudDBInstanceNo=1010270
    
  • 응답

    <flushCloudDBInstanceResponse>
       <returnCode>0</returnCode>
       <returnMessage>success</returnMessage>
       <totalRows>1</totalRows>
       <cloudDBInstanceList>
      <cloudDBInstance>
         <cloudDBInstanceNo>1010270</cloudDBInstanceNo>
         <cloudDBServiceName>testab</cloudDBServiceName>
         <dbKindCode>REDIS</dbKindCode>
         <engineVersion>REDIS 4.0.2</engineVersion>
         <cpuCount>4</cpuCount>
         <memorySize>3221225472</memorySize>
         <licenseCode>BSD</licenseCode>
         <cloudDBPort>6379</cloudDBPort>
         <isHa>true</isHa>
         <backupTime>12:30</backupTime>
         <backupFileRetentionPeriod>1</backupFileRetentionPeriod>
         <cloudDBInstanceStatusName>settingup</cloudDBInstanceStatusName>
         <collation />
         <createDate>2018-10-18T23:15:00+0900</createDate>
         <cloudDBImageProductCode>SPSWREDISLINUX01</cloudDBImageProductCode>
         <cloudDBProductCode>SPSVRDBAAS000008</cloudDBProductCode>
         <isCloudDBConfigNeedReboot>false</isCloudDBConfigNeedReboot>
         <isCloudDBNeedReboot>false</isCloudDBNeedReboot>
         <zone>
            <zoneNo>2</zoneNo>
            <zoneName>KR-1</zoneName>
            <zoneCode>KR-1</zoneCode>
            <zoneDescription>가산 zone</zoneDescription>
            <regionNo>1</regionNo>
         </zone>
         <region>
            <regionNo>1</regionNo>
            <regionCode>KR</regionCode>
            <regionName>Korea</regionName>
         </region>
         <cloudDBConfigList>
            <cloudDBConfig>
               <configName>hash-max-ziplist-entries</configName>
               <configValue>512</configValue>
            </cloudDBConfig>
            <cloudDBConfig>
               <configName>hash-max-ziplist-value</configName>
               <configValue>64</configValue>
            </cloudDBConfig>
            <cloudDBConfig>
               <configName>list-max-ziplist-entries</configName>
               <configValue>512</configValue>
            </cloudDBConfig>
            <cloudDBConfig>
               <configName>list-max-ziplist-value</configName>
               <configValue>64</configValue>
            </cloudDBConfig>
            <cloudDBConfig>
               <configName>maxmemory-policy</configName>
               <configValue>volatile-lru</configValue>
            </cloudDBConfig>
            <cloudDBConfig>
               <configName>zset-max-ziplist-entries</configName>
               <configValue>128</configValue>
            </cloudDBConfig>
            <cloudDBConfig>
               <configName>zset-max-ziplist-value</configName>
               <configValue>64</configValue>
            </cloudDBConfig>
         </cloudDBConfigList>
         <cloudDBConfigGroupList />
         <accessControlGroupList>
            <accessControlGroup>
               <accessControlGroupConfigurationNo>64420</accessControlGroupConfigurationNo>
               <accessControlGroupName>cloud-redis-lnj2</accessControlGroupName>
               <accessControlGroupDescription>Group for cloud Redis service 'testab' (automatically created)</accessControlGroupDescription>
               <isDefault>false</isDefault>
               <createDate>2018-10-18T23:15:50+0900</createDate>
            </accessControlGroup>
         </accessControlGroupList>
         <cloudDBServerInstanceList>
            <cloudDBServerInstance>
               <cloudDBServerInstanceNo>1010271</cloudDBServerInstanceNo>
               <cloudDBServerInstanceStatusName>settingup</cloudDBServerInstanceStatusName>
               <cloudDBServerName>testafe-001</cloudDBServerName>
               <cloudDBServerRole>
                  <code>M</code>
                  <codeName>Master</codeName>
               </cloudDBServerRole>
               <privateDnsName>redis-uqiv.cdb.ntruss.com</privateDnsName>
               <publicDnsName />
               <dataStorageSize>0</dataStorageSize>
               <createDate>2018-10-18T23:15:00+0900</createDate>
               <uptime>2018-10-18T23:18:00+0900</uptime>
            </cloudDBServerInstance>
            <cloudDBServerInstance>
               <cloudDBServerName>testafe-002</cloudDBServerName>
               <cloudDBServerRole>
                  <code>H</code>
                  <codeName>Hidden Master</codeName>
               </cloudDBServerRole>
            </cloudDBServerInstance>
         </cloudDBServerInstanceList>
      </cloudDBInstance>
       </cloudDBInstanceList>
      </flushCloudDBInstanceResponse>
    

getCloudDBConfigGroupList

  • API명

    설정그룹리스트

  • action

    getCloudDBConfigGroupList

  • 설명

     사용 가능한 CloudDB Config group 조회
    
  • 요청 파라미터

파라미터명 간략 설명 타입 제약 Data Type
dbKindCode DB유형코드 String MYSQL, MSSQL, REDIS Yes
responseFormatType response의 결과 format 설정 String No
  • dbKindCode

    • MYSQL, MSSQL, REDIS 중 선택 가능합니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/getCloudDBConfigGroupList?dbKindCode=MSSQL
      
    • 응답

      <getCloudDBConfigGroupListResponse>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <totalRows>2</totalRows>
         <cloudDBConfigGroupList>
            <cloudDBConfigGroup>
               <configGroupNo>0</configGroupNo>
               <configGroupType>system</configGroupType>
               <configGroupName>mssql_2016_default</configGroupName>
            </cloudDBConfigGroup>
            <cloudDBConfigGroup>
               <configGroupNo>19</configGroupNo>
               <configGroupType>user</configGroupType>
               <configGroupName>ldhtest</configGroupName>
            </cloudDBConfigGroup>
         </cloudDBConfigGroupList>
      </getCloudDBConfigGroupListResponse>
      

DMS

setObjectStorageInfo

  • API명

    DMS오브젝트스토리지설정저장

  • action

    setObjectStorageInfo

  • 설명

    오브젝트스토리지정보를 설정합니다. (파일 업로드 다운로드를 위해 반드시 설정되어야 하며, NCloud 나 Amazon S3 호환 API 오브젝트스토리지, 아카이브스토리지로부터 복구할 수 있습니다.) 현재 DMS는 MSSQL 만 지원되고 있습니다.

  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
objectStorageAccessKey s3 api access key String Yes
objectStorageSecretKey s3 api secret key String Yes
endpoint 접근URL String Yes
bucketName 폴더이름 String Yes
responseFormatType response의 결과 format 설정 String No
  • objectStorageAccessKey

    • s3 API 호환 access key입니다. 네이버 클라우드 오브젝트 스토리지의 경우 포털 > 마이페이지 > 인증키 관리에서 키를 만들 수 있습니다.
  • objectStorageSecretKey

    • s3 API 호환 secret key입니다. 네이버 클라우드 오브젝트 스토리지의 경우 access key 옆 secret key 보기를 통해 확인할 수 있습니다.
  • endpoint

  • bucketName

    • DMS에서 사용할 오브젝트스토리지의 bucket 이름입니다. bucket은 윈도우즈 시스템의 드라이브(C:)와 같은 개념이며, 전체 오브젝트 스토리지에서 유일합니다. 네이버 클러우드 오브젝트 스토리지 콘솔에서 버킷을 만들고 해당 이름을 입력합니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/setObjectStorageInfo?objectStorageAccessKey=1vC3VPgZ1X6e4nqSd0TK&objectStorageSecretKey=PGgM0dXAGOXlavgKVbXeqTpzWBLlqqRSgYA701K6&endpoint=https%3A%2F%2Fkr.objectstorage.ncloud.com&bucketName=kimmsobj
      
    • 응답

      <setObjectStorageInfoResponse>
         <requestId>899ef374-bea9-4806-9fef-fdd97e3fb7d6</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
      </setObjectStorageInfoResponse>
      

downloadDmsFile

  • API명

    오브젝트스토리지->내부백업스토리지다운로드

  • action

    downloadDmsFile

  • 설명

    setObjectStorageInfo를 이용해 저장한 정보를 이용해 Amazon S3 호환 스토리지부터 내부 복구용 스토리지로 백업 파일을 다운로드합니다. 내부 복구용 스토리지로 파일이 옮겨져야 해당 백업파일을 이용해 데이터베이스를 복구할 수 있습니다. 예제 출력에서 requestNo를 저장 후 getDmsOperation API를 이용해 진행 상태를 조회할 수 있습니다.

  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
cloudDBInstanceNo 클라우드DB인스턴스번호 string Yes
fileName 파일이름 string Yes
responseFormatType response의 결과 format 설정 string No
  • cloudDBInstanceNo

    • 클라우드DB인스턴스 번호입니다. 인스턴스 리스트로부터 구할수 있으며, MSSQL의 경우 DB Server 이름이 m-1010059-001 이라면, 1010059가 cloudDBInstanceNo입니다.
  • fileName

    • 다운로드할 파일이름을 입력합니다. S3 오브젝트스토리지의 bucket 하위 파일이름입니다. 폴더 이름을 포함할 경우 해당 폴더이름에 subfolder/BackupFile.Bak 등과 같이 입력할 수 있습니다. folder 명 없이 파일이름만 쓸 경우 구분자 없이 파일 이름만 입력 합니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 입력

      {CloudDB_API_URL}/downloadDmsFile?cloudDBInstanceNo=1010059&fileName=filename.full
      
    • 출력

      <downloadDmsFileResponse>
         <requestId>57a350ef-bbb0-4ff6-8e08-5de3ad7795d5</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <requestNo>781996</requestNo>
      </downloadDmsFileResponse>
      

uploadDmsFile

  • API명

    내부백업스토리지->오브젝트스토리지업로드

  • action

    uploadDmsFile

  • 설명

    운영중이던 데이터베이스는 자동으로 백업을 수행하게 되고, 해당 백업파일을 오브젝트스토리지로 업로드합니다. (downloadDmsFile 이 참조하는 내부 복구전용 디렉토리와 uploadDmsFile이 참조하는 백업 디렉토리는 백업 파일의 안정성 문제로 서로 다른 물리적 경로입니다.)

  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
cloudDBInstanceNo 클라우드DB인스턴스번호 string Yes
fileName 파일이름 string Yes
responseFormatType response의 결과 format 설정 string No
  • cloudDBInstanceNo

    • 클라우드DB인스턴스번호 입력합니다.
  • fileName

    • getBackupList API를 이용해 조회한 파일이름 입력합니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/uploadDmsFile?cloudDBInstanceNo=1010059&fileName=newRestoreDb_20181019_160029.full
      
    • 응답

      <uploadDmsFileResponse>
         <requestId>38b59004-e63e-43de-ba55-fdfa02ff716d</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <requestNo>782184</requestNo>
      </uploadDmsFileResponse>
      

getObjectStorageBackupList

  • API명

    내부백업스토리지파일리스트(사용자)

  • action

    getObjectStorageBackupList

  • 설명

    오브젝트스토리지에서 내부 백업스토리로 올린 백업 파일 리스트를 조회합니다. 데이터베이스 리스토어는 내부 백업스토리지로 옮겨진 파일을 대상으로 진행할 수 있습니다. 내부 백업스토리지 파일은 15일 후 완전히 삭제되며, 사용자가 삭제할 수 없습니다. (같은 파일명으로 오브젝트스토리지로부터 내부 백업스토리지로 다운로드 명령을 수행하면, 새로운 파일로 변경됩니다.) 리스트를 출력해 온프레미스, 오브젝트스토리지, 내부 백업스토리지의 용량이 같은지 확인합니다.

  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
cloudDBInstanceNo 클라우드DB인스턴스번호 string Yes
folderName 폴더이름 string Yes
responseFormatType response의 결과 format 설정 string No
  • cloudDBInstanceNo

    • 클라우드DB인스턴스번호 입력합니다.
  • folderName

    • 폴더이름 입력합니다. 공백이나 /를 입력하면, 내부 백업스토리지의 root 폴더가 조회됩니다. 해당 폴더는 bucket의 root에 해당합니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/getObjectStorageBackupList?cloudDBInstanceNo=1010059&folderName=/
      
    • 응답

      <getObjectStorageBackupListResponse>
         <requestId>6a232815-2f74-4e19-8324-ac2f951bbd43</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <totalRows>1</totalRows>
         <dmsFileList>
            <dmsFile>
               <fileLength>2906624</fileLength>
               <lastWriteTime>2018-11-10T17:03:53+0900</lastWriteTime>
               <fileName>CloudControl.full</fileName>
            </dmsFile>
         </dmsFileList>
      </getObjectStorageBackupListResponse>
      

getBackupList

  • API명

    내부백업스토리지파일리스트(자동백업)

  • action

    getBackupList

  • 설명

     자동 백업 리스트를 조회합니다.
    
  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
cloudDBInstanceNo 클라우드DB인스턴스번호 String Yes
databaseName 데이터베이스이름 String No
type 백업유형코드 String No
responseFormatType response의 결과 format 설정 String No
  • cloudDBInstanceNo

    • 클라우드DB인스턴스번호를 입력합니다.
  • databaseName

    • 데이터베이스 이름을 입력합니다.
  • type

    • D(Database), L (TrasactionLog)
  • Example

    • 요청

      {CloudDB_API_URL}/getBackupList?cloudDBInstanceNo=1057304
      
    • 응답

      <getBackupListResponse>
         <requestId>6f416c7f-dd74-42fc-b067-02553147e8da</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <totalRows>2</totalRows>
         <backupFileList>
            <backupFile>
               <hostName>m-1057304-001</hostName>
               <fileName>msdb_20181109_173443.full</fileName>
               <databaseName>msdb</databaseName>
               <firstLsn>137000000047600037</firstLsn>
               <lastLsn>137000000050000001</lastLsn>
               <backupType>
                  <code>D</code>
                  <codeName>Database Log</codeName>
               </backupType>
               <backupStartTime>2018-11-09T17:34:44+0900</backupStartTime>
               <backupEndTime>2018-11-09T17:34:44+0900</backupEndTime>
            </backupFile>
            <backupFile>
               <hostName>m-1057304-001</hostName>
               <fileName>msdb_20181110_000108.full</fileName>
               <databaseName>msdb</databaseName>
               <firstLsn>137000000080600017</firstLsn>
               <lastLsn>137000000081500001</lastLsn>
               <backupType>
                  <code>D</code>
                  <codeName>Database Log</codeName>
               </backupType>
               <backupStartTime>2018-11-10T00:03:10+0900</backupStartTime>
               <backupEndTime>2018-11-10T00:03:10+0900</backupEndTime>
            </backupFile>
         </backupFileList>
      </getBackupListResponse>
      

restoreDmsDatabase

  • API명

    리스토어데이터베이스

  • action

    restoreDmsDatabase

  • 설명

    내부 백업스토리지로 옮긴 파일을 이용해 데이터베이스를 복구합니다. 별도로 restore databasea [userdb] with recovery API를 제공하지 않기 때문에 isRecovery 옵션에 주의 합니다. 응답의 requestNo를 getDmsOperation API를 이용해 진행 상태를 조회할 수 있습니다.

  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
cloudDBInstanceNo 클라우드DB인스턴스번호 String Yes
fileName 파일이름 String Yes
isRecovery Recovery여부 Boolean Yes
newDatabaseName 새로운 데이터베이스이름 String Yes
responseFormatType response의 결과 format 설정 String No
  • cloudDBInstanceNo

    • 클라우드DB인스턴스번호 입력합니다.
  • fileName

    • 파일이름 입력합니다. 오브젝트 스토리지의 bucket 하위에 폴더를 만들어 업로드한경우는 subfolder/filename 형식을 취합니다.
  • isRecovery

    • 리스토어시 recovery와 norecovery 모드를 선택합니다. 더 이상 로그 백업을 복구하지 않을 경우 1을 입력하고 restoreDmdLog API를 이용해 추가 로그 리커버리를 수행할 경우 0을 입력 합니다.
  • newDatabaseName

    • restore 할 새로운 database 이름을 입력합니다. 복구 대상 데이터베이스 인스턴스에 중복되지 않는 이름으로 입력 합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/restoreDmsDatabase?cloudDBInstanceNo=1010059&fileName=d1.full&isRecovery=0
      
    • 응답

      <restoreDmsDatabaseResponse>
         <requestId>e7ed561c-50de-4772-8791-c6b9bf5dbe10</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <requestNo>782352</requestNo>
      </restoreDmsDatabaseResponse>
      

restoreDmsTransactionLog

  • API명

    restoreDmsTransactionLog

  • action

    DMS트랜잭션로그복구

  • 설명

    DMS트랜잭션로그복구합니다.

  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
cloudDBInstanceNo 클라우드DB인스턴스번호 String Yes
fileName 파일이름 String Yes
isRecovery Recovery여부 Boolean Yes
newDatabaseName 새로운 데이터베이스이름 String Yes
stopTime stopat time시간 String No
responseFormatType response의 결과 format 설정 String No
  • cloudDBInstanceNo

    • 클라우드DB인스턴스번호 입력합니다.
  • fileName

    • 파일이름 입력합니다.
  • isRecovery

    • 리스토어시 recovery와 norecovery 모드를 선택합니다. 마지막 트랜젝션 로그 백업을 복구할 때 1을 입력 합니다.
  • newDatabaseName

    • restore 할 새로운 database 이름을 입력합니다.
  • stopTime

    • restore 할 시점(stopat)을 입력합니다. yyyy-MM-dd'T'HH:mm:ssZ 포맷으로 입력하고, NULL 값일경우 마지막시간까지 복구합니다. 예: 2018-11-10T10:10:10+0900
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/restoreDmsTransactionLog?cloudDBInstanceNo=1010059&fileName=d1.log&isRecovery=1
      
    • 응답

      <restoreDmsTransactionLogResponse>
         <requestId>55589c37-ba91-42fb-9e8f-fd43b38c603d</requestId>
         <returnCode>0</returnCode>
         <returnMessage>success</returnMessage>
         <requestNo>782402</requestNo>
      </restoreDmsTransactionLogResponse>
      

getDmsOperation

  • API명

    DMS명령수행상태조회

  • action

    getDmsOperation

  • 설명

    DMS상태조회합니다. 예제 응답에서 codeName을 확인합니다.

  • 요청 파라미터

파라미터명 간략 설명 타입 제약 필수여부
requestNo 비동기명령수행번호 string Yes
responseFormatType response의 결과 format 설정 string No
  • requestNo

    • 명령 수행 후 requestNo를 반환 받습니다. 해당 번호를 입력하면 명령 수행 상태를 조회할 수 있습니다.
  • responseFormatType

    • API 실행 결과를 응답 받을 format을 정합니다. xml과 json 중에서 선택 가능합니다.
  • Example

    • 요청

      {CloudDB_API_URL}/getDmsOperation?requestNo=782063
      
    • 응답

      <getDmsOperationResponse>
           <requestId>e358ae1d-f4e4-4c03-8cb9-ac145da595a4</requestId>
           <returnCode>0</returnCode>
           <returnMessage>success</returnMessage>
           <status>
              <code>COMP</code>
              <codeName>completed</codeName>
           </status>
      </getDmsOperationResponse>
      

Example

PostExample

  • 리전의 존 리스트를 출력하는 Post 예제 (Server API 참조)

      public async void PostExample()
      {
        Config config = Config.Instance;
        var postParams = new List<KeyValuePair<string, string>>();
        postParams.Add(new KeyValuePair<string, string>("responseFormatType", "json"));
        postParams.Add(new KeyValuePair<string, string>("regionNo", "1"));
        postParams.Add(new KeyValuePair<string, string>("responseFormatType", "json"));
        AsyncCall asyncCall = new AsyncCall();
        Task<string> result = asyncCall.WebApiCall(config.ncpUrl, GetPostType.POST, "/server/v1/getZoneList", postParams);
        string json = await result;
        Console.WriteLine("* PostResult *");
        Console.WriteLine(json);
      }
    

GetExample

  • MSSQL의 설정그룹 리스트를 출력하는 예제 (CloudDb API 참조)

      public async void GetExample()
      {
          Config config = Config.Instance;
          AsyncCall asyncCall = new AsyncCall();
          Task<string> result = asyncCall.WebApiCall(config.ncpUrl, GetPostType.GET, "/clouddb/v1/getCloudDBConfigGroupList?dbKindCode=MSSQL&responseFormatType=json", "");
          string json = await result;
          Console.WriteLine("* GetResult *");
          Console.WriteLine(json);
      }
    

ConsoleApplicationFullExample

  • 예제에서 accessKey, secureKey, apiKey를 변경한 후 실행

  • Action에서 v1 요청과 v2 요청의 차이는 apiKey 포함 여부입니다. 아래 예제는 v1 예제입니다.

      using System;
      using System.Collections.Generic;
      using System.Threading.Tasks;
      using System.Text;
      using System.Net.Http;
      using System.Threading;
      using System.Security.Cryptography;
    
      namespace ApiExample
      {
          enum GetPostType { POST, GET };
          public class Config
          {
              private static readonly Lazy<Config> lazy =
                  new Lazy<Config>(() => new Config(), LazyThreadSafetyMode.ExecutionAndPublication);
    
              public static Config Instance { get { return lazy.Value; } }
    
              public string accessKey
              {
                  get { return "11vC3VPgZ1X6e4nqSd0TK1"; }
              }
              public string secureKey
              {
                  get { return "1PGgM0dXAGOXlavgKVbXeqTpzWBLlqqRSgYA701K61"; }
              }
              public string apiKey
              {
                  get { return "1r68YnlrFNpdaOYMiL2BLljsmv92YCGw01usfbkiS1"; }
              }
    
              public string ncpUrl
              {
                  get { return @"https://ncloud.apigw.ntruss.com"; }
              }
          }
    
          class Program
          {
              static void Main(string[] args)
              {
                  Program p = new Program();
                  p.PostExample();
                  p.GetExample();
                  Console.ReadKey();
              }
    
              public async void PostExample()
              {
                  Config config = Config.Instance;
                  var postParams = new List<KeyValuePair<string, string>>();
                  postParams.Add(new KeyValuePair<string, string>("responseFormatType", "json"));
                  postParams.Add(new KeyValuePair<string, string>("regionNo", "1"));
                  postParams.Add(new KeyValuePair<string, string>("responseFormatType", "json"));
                  AsyncCall asyncCall = new AsyncCall();
                  Task<string> result = asyncCall.WebApiCall(config.ncpUrl, GetPostType.POST, "/server/v1/getZoneList", postParams);
                  string json = await result;
                  Console.WriteLine("* PostResult *");
                  Console.WriteLine(json);
              }
    
              public async void GetExample()
              {
                  Config config = Config.Instance;
                  AsyncCall asyncCall = new AsyncCall();
                  Task<string> result = asyncCall.WebApiCall(config.ncpUrl, GetPostType.GET, "/clouddb/v1/getCloudDBConfigGroupList?dbKindCode=MSSQL&responseFormatType=json", "");
                  string json = await result;
                  Console.WriteLine("* GetResult *");
                  Console.WriteLine(json);
              }
          }
    
          class AsyncCall
          {
    
              public async Task<string> WebApiCall(string url, GetPostType calltype, string action)
              {
                  return await WebApiCall(url, calltype, action, "");
              }
    
              public async Task<string> WebApiCall(string ncpUrl, GetPostType calltype, string action, List<KeyValuePair<string, string>> parameters)
              {
                  Config config = Config.Instance;
                  string accessKey = config.accessKey;
                  string secureKey = config.secureKey;
                  string apiKey = config.apiKey;
                  string responseString = string.Empty;
                  try
                  {
    
                      using (HttpClient client = new HttpClient())
                      {
                          client.Timeout = TimeSpan.FromMilliseconds(5000);
                          string timestamp = string.Empty;
                          string sig = Auth.Instance.makeSignature(calltype, action, ref timestamp, accessKey, secureKey, apiKey);
                          string url = ncpUrl + action;
    
                          client.DefaultRequestHeaders.Add("x-ncp-apigw-timestamp", timestamp);
                          client.DefaultRequestHeaders.Add("x-ncp-apigw-api-key", apiKey);
                          client.DefaultRequestHeaders.Add("x-ncp-iam-access-key", accessKey);
                          client.DefaultRequestHeaders.Add("x-ncp-apigw-signature-v1", sig);
    
                          if (calltype == GetPostType.POST)
                          {
                              var content = new FormUrlEncodedContent(parameters);
                              var response = await client.PostAsync(url, content);
                              responseString = await response.Content.ReadAsStringAsync();
                          }
                          else
                          {
                              var response = await client.GetAsync(url);
                              responseString = await response.Content.ReadAsStringAsync();
                          }
                      }
                  }
                  catch (Exception ex)
                  {
                      Console.WriteLine("{0}, {1}", ex.Message, ex.StackTrace);
                  }
                  return responseString;
              }
    
              public async Task<string> WebApiCall(string ncpUrl, GetPostType calltype, string action, string parameters)
              {
                  Config config = Config.Instance;
                  string accessKey = config.accessKey;
                  string secureKey = config.secureKey;
                  string apiKey = config.apiKey;
                  string responseString = string.Empty;
                  try
                  {
                      using (HttpClient client = new HttpClient())
                      {
                          client.Timeout = TimeSpan.FromMilliseconds(5000);
                          string timestamp = string.Empty;
                          string sig = Auth.Instance.makeSignature(calltype, action, ref timestamp, accessKey, secureKey, apiKey);
                          string url = ncpUrl + action;
                          client.DefaultRequestHeaders.Add("x-ncp-apigw-timestamp", timestamp);
                          client.DefaultRequestHeaders.Add("x-ncp-apigw-api-key", apiKey);
                          client.DefaultRequestHeaders.Add("x-ncp-iam-access-key", accessKey);
                          client.DefaultRequestHeaders.Add("x-ncp-apigw-signature-v1", sig);
                          if (calltype == GetPostType.POST)
                          {
                              var content = new StringContent(parameters, Encoding.UTF8, "application/json");
                              var response = await client.PostAsync(url, content);
                              responseString = await response.Content.ReadAsStringAsync();
                          }
                          else
                          {
                              var response = await client.GetAsync(url);
                              responseString = await response.Content.ReadAsStringAsync();
                          }
                      }
                  }
                  catch (Exception ex)
                  {
                      Console.WriteLine("{0}, {1}", ex.Message, ex.StackTrace);
                  }
                  return responseString;
              }
          }
    
          class Auth
          {
              private static readonly Lazy<Auth> lazy =
                  new Lazy<Auth>(() => new Auth(), LazyThreadSafetyMode.ExecutionAndPublication);
              Config config;
              public static Auth Instance { get { return lazy.Value; } }
              Auth()
              {
                  config = Config.Instance;
              }
              public string makeSignature(GetPostType calltype, string action, ref string stringtimestamp, string accessKey, string secureKey, string apiKey)
              {
                  if (string.IsNullOrEmpty(action))
                      return "parameter error";
                  long timestamp = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds;
                  string space = " ";
                  string newLine = "\n";
                  string method = calltype == GetPostType.POST ? "POST" : "GET";
                  string url = action;
                  stringtimestamp = timestamp.ToString();
                  string message = new StringBuilder()
                          .Append(method)
                          .Append(space)
                          .Append(url)
                          .Append(newLine)
                          .Append(stringtimestamp)
                          .Append(newLine)
                          .Append(apiKey)
                          .Append(newLine)
                          .Append(accessKey)
                          .ToString();
                  byte[] secretKey = Encoding.UTF8.GetBytes(secureKey);
                  HMACSHA256 hmac = new HMACSHA256(secretKey);
                  hmac.Initialize();
                  byte[] bytes = Encoding.UTF8.GetBytes(message);
                  byte[] rawHmac = hmac.ComputeHash(bytes);
                  return Convert.ToBase64String(rawHmac);
              }
          }
      }
    

SampleAppDownload

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...