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

Auto Scaling API 참조서 바로가기 >>
Auto Scaling 설명서 바로가기 >>

Auto Scaling API 시작 가이드 개요

개요

Auto scaling은 서비스 부하에 따라 자동으로 서버 인스턴스의 수를 늘이고 줄여서 자동 scaling을 하는 서비스입니다.

여기서 scaling이란 서비스 부하가 커지면 이를 감당하기 위해 서비스 능력(capacity)을 늘리는 행위를 뜻합니다.

이 문서는 query API를 이용하여 본 서비스를 시작하는 기초적인 길라잡이를 간단한 시나리오로 하고 있음을 명시합니다.

시나리오 설명

첫 사용자의 길라잡이를 위해 시나리오는 아래와 같이 크게 4 단계로 구성되어 있습니다.

A. Auto Scaling 가입

B. Auto Scaling 설정

C. Auto Scaling group 생성

D. Auto Scaling 삭제

Query API를 이용한 Auto scaling 시작 가이드

Auto Scaling 가입

아래 사이트에 방문해서 네이버 클라우드 플랫폼에 가입합니다.

https://www.ncloud.com/join/type

Auto Scaling 설정

설명서(구, 사용자 가이드) 문서 중 [Networking > Load Balancer API > 서버-로드밸런서 API reference]의 [API 개요] 절을 참고합니다.

Auto Scaling group 생성

Launch Configuration 생성

Launch configuration은 auto scaling이 Ncloud 서버 인스턴스를 생성하여 서비스에 투입하기 위해 사용되는 템플릿(template)입니다. 그 템플릿은 auto scaling이 서버 인스턴스를 생성하기 위한 모든 정보를 포함하고 있습니다.

Launch configuration를 생성하기 위해 다음 요청 파라미터를 지정하여 createLaunchConfiguration 액션을 호출합니다.

  • launchConfigurationName(론치 설정 명): lc-1
  • serverImageProductCode(서버 이미지 상품 코드): SPSW0LINUX000009

상술한 요청 파라미터에 대한 설명은 다음과 같습니다.

  • launchConfigurationName: 론치 설정(Launch configuration)의 식별자 역할을 하는 이름
  • serverImageProductCode: 생성될 서버의 이미지에 설치된 소프트웨어 상품(OS 포함) 코드. SPSW0LINUX000009는 CentOS 서버 코드입니다.

나머지 파라미터인 서버 상품 코드, login key는 지정이 되어 있지 않아서, 디폴트 값이 지정됩니다.
서버의 하드웨어 스펙을 나타내는 서버 상품 코드의 디폴트 값은 최소 사양 값이고, login key의 디폴트 값은 사용자가 마지막으로 지정한 키입니다.
위와 같은 파라미터를 전달하여 Launch configuration를 생성을 요청하는 Query API는 아래 URL과 같습니다.

  http://10.101.61.141/autoscaling/?action=createLaunchConfiguration&launchConfigurationName=lc-1&serverImageProductCode=SPSW0LINUX000009&AUTHPARAMS

호출에 성공하면 그 결과로 HTTP status가 ‘200 OK’인 응답과 함께 HTTP 메시지 본체(message body)로 받은 아래와 같은 XML 문서를 볼 수 있습니다. 최상위 태그는 결과로써 받은 createLaunchConfigurationResponse 객체입니다. 그 객체는 returnCode 태그와 returnMessage 태그를 포함하고 있고, returnMessage 태그의 값이 success이고 returnCode가 0이면 액션이 성공한 것입니다. createLaunchConfigurationResponse 객체는 launchConfigurationList라는 launchConfiguration 객체를 항목을 하는 리스트 객체를 포함하고 있습니다. 그 launchConfiguration 객체에서 새로이 생성한 launch configuration의 내용을 확인할 수 있습니다.

  <?xml version="1.0" encoding="UTF-8"?>
<createLaunchConfigurationResponse>
  <requestId>a3fc6c83-6adf-4c63-b1bc-05ee3c672fc2</requestId>
  <returnCode>0</returnCode>
  <returnMessage>success</returnMessage>
  <totalRows>1</totalRows>
  <launchConfigurationList>
    <launchConfiguration>
      <launchConfigurationName>lc-3</launchConfigurationName>
      <serverImageProductCode>SPSW0LINUX000009</serverImageProductCode>
      <serverProductCode>SPSVRSTAND000043</serverProductCode>
      <memberServerImageNo></memberServerImageNo>
      <loginKeyName>yh-nang-test</loginKeyName>
      <createDate>2014-02-13T13:52:50+0900</createDate>
      <userData></userData>
    </launchConfiguration>
  </launchConfigurationList>
</createLaunchConfigurationResponse>

Auto scaling group 생성

Launch configuration이 생성되면 그 다음으로 auto scaling group을 생성할 수 있습니다. auto scaling group이란 공통의 서비스를 수행하는 서버 인스턴스들의 논리적 그룹으로 설정에 따라 자동으로 횡적인 scalilng이 가능합니다.

auto scaling group를 생성하기 위해 다음 요청 파라미터를 지정하여 createAutoScalingGroup 액션을 호출합니다.

  • autoScalingGroupName(오토스케일링 그룹명): asg-1
  • launchConfigurationName(론치 설정 명): lc-1
  • minSize(최소 사이즈): 3
  • maxSize(최대 사이즈): 10
  • zoneNoList.1(ZONE번호리스트 1번째 항목): 2

상술한 요청 파라미터에 대한 설명은 다음과 같습니다.

  • autoScalingGroupName: auto scaling group의 식별자 역할을 하는 이름
  • launchConfigurationName: 그 그룹 소속 서버 인스턴스들을 생성할 때 필요한 정보를 담은 론치 설정을 지정
  • minSize: 그 그룹이 최소한으로 유지할 그룹 사이즈. desiredCapacity라는 파라미터가 지정되어 있지 않으면 이 minSize 값만큼 서버 인스턴스가 생성됩니다. 따라서 이 시나리오에서는 minSize 값인 3개의 서버 인스턴스가 생성됩니다
  • maxSize: 그 그룹의 가능한 최대 사이즈
  • zoneNoList.N: 서버들이 존재할 zone번호 목록

위와 같은 파라미터를 전달하여 auto scaling group 생성을 요청하는 Query API는 아래 URL과 같습니다.

  http://10.101.61.141/autoscaling/?action=createAutoScalingGroup&autoScalingGroupName=asg-1&launchConfigurationName=lc-1&maxSize=10&minSize=3&zoneNoList.1=2&AUTHPARAMS

호출에 성공하면 그 결과로 HTTP status가 ‘200 OK’인 응답과 함께 message body로 XML 문서 형식의 createAutoScalingGroupResponse 객체를 받습니다.
그 객체 내부의 returnMessage 태그의 값이 success이고 returnCode 태그 값이 0이면 성공한 것입니다.

Auto scaling group 생성 확인

방금 생성한 auto scaling group이 의도대로 생성되었는지 확인하기 위해, 다음 요청 파라미터를 지정하여 getLaunchConfigurationList 액션을 호출합니다.

  • autoScalingGroupName(오토스케일링 그룹명): asg-1

상술한 요청 파라미터에 대한 설명은 다음과 같습니다.

  • autoScalingGroupName: 정보를 획득(get)하여 조회하고 싶은 auto scaling group

호출에 성공하면 그 결과로 HTTP status가 ‘200 OK’인 응답과 함께 message body로 XML 문서 형식의 (아래와 같은) getAutoScalingGroupListResponse 객체를 받습니다. 그 객체 내부의 returnMessage 태그의 값이 success이고 returnCode 태그 값이 0이면 성공한 것입니다. 그 객체는 autoScalingGroupList라는 autoScalingGroup 객체의 리스트 객체를 포함하고 있어서 생성된 auto scaling group의 명세가 보입니다.

그리고 위와 같이 auto scaling group이 생성되면 수십 분 이내에 최소 사이즈만큼의 서버 인스턴스가 생성되어 서비스에 투입됩니다. 최소 사이즈만큼 서버 인스턴스가 만들어지면 성공입니다. 이 시나리오에서는 3대가 생성되어야 정상입니다.

  <getAutoScalingGroupListResponse>
<requestId>25f53893-108d-4583-b555-3065cdbfd81c</requestId>
<returnCode>0</returnCode>
<returnMessage>success</returnMessage>
<totalRows>1</totalRows>
<autoScalingGroupList>
<autoScalingGroup>
<autoScalingGroupName>asg-1</autoScalingGroupName>
<launchConfigurationName>lc-1</launchConfigurationName>
<desiredCapacity>3</desiredCapacity>
<minSize>3</minSize>
<maxSize>10</maxSize>
<loadBalancerInstanceSummeryList/>
<healthCheckGracePeriod>0</healthCheckGracePeriod>
<healthCheckType>
<code>SVR</code>
<codeName>Server</codeName>
</healthCheckType>
<createDate>2014-02-23T17:04:30+0900</createDate>
<inAutoScalingGroupServerInstanceList/>
<suspendedProcessList/>
<zoneList>
<zone>
<zoneNo>2</zoneNo>
<zoneName>zone2</zoneName>
<zoneDescription>nang zone</zoneDescription>
</zone>
</zoneList>
</autoScalingGroup>
</autoScalingGroupList>
</getAutoScalingGroupListResponse>

Auto Scaling group 삭제

group에서 모든 서버 인스턴스 제거

이미 생성된 Auto scaling group의 속성을 변경하기 위해 다음 요청 파라미터를 지정하여 updateAutoScalingGroup 액션을 호출합니다.

이 시나리오에서는 다음 장에서 Asg-1 그룹을 삭제할 수 있도록 Asg-1 그룹 소속의 모든 서버 인스턴스들을 제거하기 위해 minSize 값을 0으로 변경합니다. auto scaling group의 그룹 사이즈가 0이어야 삭제 가능합니다.

  • autoScalingGroupName(오토스케일링그룹명): asg-1
  • minSize(최소 사이즈): 0

호출에 성공하면 그 결과로 HTTP status가 ‘200 OK’인 응답과 함께 message body로 XML 문서 형식의 updateAutoScalingGroupResponse 객체를 받습니다. 그 객체 내부의 returnMessage 태그의 값이 success이고 returnCode 태그 값이 0이면 성공한 것입니다.

Auto scaling group 삭제

Asg-1 그룹을 삭제하기 위해 다음 요청 파라미터를 지정하여 deleteAutoScalingGroup 액션을 호출합니다.

  • autoScalingGroupName(오토스케일링그룹명): asg-1

호출에 성공하면 그 결과로 HTTP status가 ‘200 OK’인 응답과 함께 message body로 XML 문서 형식의 deleteAutoScalingGroupResponse 객체를 받습니다. 그 객체 내부의 returnMessage 태그의 값이 success이고 returnCode 태그 값이 0이면 성공한 것입니다. 삭제 후 getAutoScalingGroupList 액션으로 확인이 가능합니다.

Launch Configuration 삭제

Launch Configuration은 그것을 참고하고 있는 auto scaling group이 없어야 삭제 가능합니다.
Lc-1 설정은 그것을 참고하고 있던 Asg-1이 삭제되었으므로 삭제 가능합니다.

Launch Configuration을 삭제하기 위해 다음 요청 파라미터를 지정하여 deleteLaunchConfiguration 액션을 호출합니다.

  • launchConfigurationName(론치 설정 명): lc-1

호출에 성공하면 그 결과로 HTTP status가 ‘200 OK’인 응답과 함께 message body로 XML 문서 형식의 deleteAutoScalingLaunchConfigurationResponse 객체를 받습니다. 그 객체 내부의 returnMessage 태그의 값이 success이고 returnCode 태그 값이 0이면 성공한 것입니다.

연관 정보 바로가기

아래 가이드에서 연관 정보를 확인할 수 있습니다.

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

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

    처리중...