2.3 KT Cloud Packaging 이용방법

2.3.1 Packaging 정의

KT Cloud Packaging에서 사용되는 용어 및 개념에 대해 소개 합니다.

ㅁ 패키지

Packaging 서비스를 통해 실제 클라우드에 일괄 생성된 여러 자원들의 집합입니다.
하나의 어플리케이션 서비스 단위라고 이해해도 됩니다. 

ㅁ 레시피

원하는 자원들을 조합하여 패키지를 만들기 위해서, 사전에 코드 형태로 정의한 문서를 레시피라 합니다.
레시피에는 클라우드 자원의 정보, 소프트웨어 설치, 자원들간의 관계 정의 등 패키지 배포에 필요한 여러 정보들이 들어 있습니다.
또한 배포 시점마다 변경해야 할 파라미터들에 대한 내용도 포함되어 있습니다.

ㅁ 배포

레시피를 이용하여 실제 클라우드에 패키지를 만드는 작업입니다.

ㅁ 레시피 파라미터

하나의 레시피로 여러 번 반복하여 여러 패키지로 배포할 때, 조금씩 변경할 부분이 있을 수 있습니다.
가령 Server의 사양 변경이나, 각각 다른 Zone에 배포하거나, 디스크의 용량을 더 크게 만들 상황이 생길 수 있습니다.
배포할 때마다 이런 변경 사항들을 파라미터로 입력 받아 조금씩 다른 패키지를 만들 수 있습니다.

ㅁ 자원

패키지에 포함되는 구성 요소들입니다.
쉽게 생각하면, 하나의 패키지에 포함된 Server, Disk, 로드밸런서, DB 등의 자원이 포함됩니다.
이 뿐만 아니라 네트워크 작업(Ex.포트포워딩), 자원간의 결합(Ex.Disk Attach), 규칙 설정(Ex.WAF에 웹 서버 추가) 등 모든 작업도 자원에 포함됩니다.

ㅁ 자원 특성

레시피 안에 자원에 대해 명시할 때 다음의 3가지의 특성을 기술할 수 있습니다.
  - Type: 자원의 종류. VirtualMachine, LoadBalancer 등
  - Properties : 이 자원을 클라우드에 배포하기 위해 필요한 속성 정보. template ID, zone ID, size 등
  - DependsOn : 자원 배포 순서를 명시
자세한 내용은 레시피 제작을 참고 바랍니다.

 

2.3.2 패키지 관리

ㅁ 패키지 생성

패키지 생성을 위해 패키지 관리 > 패키지 생성을 클릭합니다.


패키지 생성 설정을 합니다.


 (1) 생성할 패키지명을 입력합니다.
 
 (2) 자원을 생성할 Zone을 선택합니다. 실제 Zone 선택은 레시피 내 정해져 있거나 아래 파라미터 입력에서 받을 수 있습니다.
   - 일반 Zone: KOR Seoul-M, Central-A/B, Cloud-HA, JPN, US-West
   - KOR-Seoul M2 Zone: KOR-Seoul M2
   * 특수 Cloud, 특수 Zone은 지원하지 않습니다. (예: Enterprise, G-Cloud, VPC 등)

 (3) 사용할 레시피를 선택합니다.
   - 개인용 레시피 : 아래 레시피 관리에서 사용자가 만들어 등록한 레시피를 사용합니다.
   - 공유용 레시피 : KT에서 미리 생성하여 제공하는 레시피를 바로 사용합니다.
   - 레시피 직접 사용 : 레시피 저장 없이 바로 레시피를 입력하여 사용할 수 있습니다.
   * 주의 : 레시피 직접 사용의 경우, 사용한 레시피가 저장되지 않습니다.

 (4) 생성 제한 시간을 설정합니다.
   패키지 생성 완료가 제한 시간까지 되지 않으면 생성 실패(혹은 설정에 따라 롤백)가 됩니다.

 (5) 생성 실패 시 롤백 여부를 설정 합니다.
   패키지 생성 중 특정 자원 생성이 잘못되거나 파라미터를 잘못 입력하는 등의 사유로 생성이 실패했을 경우, 롤백(rollback) 할지 말지를 결정합니다.
   - 롤백을 설정할 경우, 패키지 생성이 실패 했을 때, 그때까지 만든 자원을 정리하고 패키지까지 모두 자동으로 삭제합니다.
   - 롤백을 설정하지 않을 경우, 패키지가 생성 실패 상태로 남게 됩니다. 대신 왜 실패했는지 원인을 상세 > 이벤트 창에서 확인하여 조치가 가능합니다. 

(6) 완료 알림을 받을 수 있습니다.
   완료 알림 기능은 KT Cloud Messaging을 이용하여 발송합니다. KT Cloud Messanging에 대한 내용은 다음을 참고하십시오.
   토픽이 없는 경우 '토픽 생성'을 클릭하여 토픽을 먼저 생성합니다.
   완료 알림을 받을 프로토콜을 HTTP(S), SMS, E-mail 선택하여 설정합니다.


패키지 생성에 필요한 파라미터를 지정합니다.
어떤 파라미터를 어떻게 받을것인지는 이전 단계에서 지정한 레시피에서 이미 정해져 있습니다. 

 (1) 패키지 설명을 입력합니다.
   패키지 별 구분을 위해 설명을 입력할 수 있습니다.

 (2) 레시피 설명입니다.
   현재 선택한 레시피에 대한 설명을 볼 수 있습니다. 입력이나 수정할 수 없습니다.

 (3) 파라미터를 설정합니다.
   레시피에서 미리 정해둔 파라미터들에 대해 실제 사용할 파라미터를 입력할 수 있습니다.
   가령, ProductCode의 std_cent 7.0 64bit en_1x1 파라미터를 std_cent 7.0 64bit en_2x2 로 변경하여 더 높은 사양의 Server를 생성할 수 있습니다.

 (4) 파라미터 입력에 필요한 주요 파라미터가 팝업으로 표시되어 입력 시 참고할 수 있습니다. 


설정 내역을 확인 후 생성을 클릭합니다.


생성 과정은 대상 패키지 클릭 > 이벤트 에서 진행 상황 확인이 가능합니다. 
필요 시 진행 상황 업데이트를 위해 우측의 '새로 고침' 버튼을 활용 합니다.

 

ㅁ 패키지 상세

ㅇ 설명

패키지에 대한 일반 설명입니다.

ㅇ 결과값

레시피에서 output 영역에서 정해둔 output 결과값을 확인 가능합니다.
예를 들어, 패키지를 만든 후 패키지에 포함된 VM의 비밀번호나, 생성한 IP 등 패키지 생성후 반환이 필요한 값들을 받아볼 수 있습니다.

ㅇ 리소스

패키지 내에서 생성된 자원(리소스) 목록을 볼 수 있습니다.
일반적으로 생각할 수 있는 자원인 Server, NAS, DB, 로드밸런서, IP 등의 실존 자원 뿐만 아니라, 
IP 생성, 포트포워딩 내역, Volume Attach 등의 작업도 모두 자원으로 포함됩니다.
리소스 타입에 대한 내용은 다음을 참고하시기 바랍니다.


ㅇ 이벤트

선택한 패키지에서 발생한 모든 이벤트를 기록합니다.
성공적으로 생성된 경우, CREATE_COMPLETE로 모두 기록이 되겠지만, 실패한 경우 Fail과 함께 이유가 함께 기록됩니다.
마찬가지로 삭제에 실패한 경우에도 이벤트에서 삭제가 실패한 원인을 파악할 수 있습니다.

ㅇ 레시피

선택한 패키지에서 사용한 레시피의 본문(body)을 확인할 수 있습니다.

ㅇ 파라미터

선택한 패키지를 생성할 때 입력한 파라미터 내역을 확인할 수 있습니다.

ㅁ 패키지 삭제

 패키지 리스트에서 삭제할 패키지를 선택 후 Action > 삭제 를 클릭합니다.

 


패키지 삭제는 하나의 요청입니다.
패키지 삭제는 패키지에 포함된 자원을 순차적으로 삭제합니다.

삭제 도중 패키지에 포함된 자원을 삭제할 수 없는 경우 (예: 다른 곳에서 이미 자원 삭제, DB가 삭제할 수 있는 상태가 아님 등)
그 삭제 요청은 실패로 처리되며, 실패 상태로 남게 됩니다.

ㅇ 강제 삭제

패키지에 포함된 자원을 삭제할 수 없어 패키지를 삭제할 수 없는 경우, 강제 삭제를 수행하여 패키지를 삭제할 수 있습니다.

강제 삭제 옵션을 사용하면, 패키지에 포함된 자원을 순차적으로 삭제 시도는 하지만 실패하더라도 다음 과정으로 넘어갑니다.
즉, 패키지는 무조건 삭제가 되지만, 패키지에 소속된 자원이 남아 있을 수 있습니다.

(주의) 패키지를 강제 삭제한 경우, 포함된 자원의 잔여 여부를 확인 바랍니다. 자원이 남아있어 원하지 않는 과금이 될 수 있습니다.

2.3.3 레시피 관리

레시피 작성법은 여기에서 별도로 안내합니다.

ㅁ 레시피 등록

ㅇ packaging > 레시피 관리 > 레시피 등록 을 클릭합니다.

ㅇ 레시피명과 설명을 입력합니다.

ㅇ 업로드 할 json 형식의 파일을 '파일선택'을 눌러 선택합니다.

 - 업로드 후 '점검'을 클릭하여 올바른 json 형식인지 점검 받습니다.
 - 만약 형식이 잘못된 경우 점검에서 오류가 발생합니다. 레시피에 잘못된 부분이 없는지 다시 검토 후 저장하여 업로드 합니다.

ㅇ 점검이 완료되면 '생성'을 클릭하여 업로드 합니다.

(주의) UI를 통한 업로드의 경우, 레시피 파일 크기가 20KB 이하로 제한됩니다.

ㅁ 레시피 상세

 

ㅇ 상세정보 : 선택한 레시피의 이름, ID, 생성일시를 확인할 수 있습니다.

ㅇ 레시피 : 선택한 레시피의 json 문서(Recipe Body)를 볼 수 있습니다.

[TIP] 공유용 레시피의 문서(Body)를 복사하여 필요에 따라 수정하는 방법이 개인용 레시피 작성에 매우 도움이 됩니다.