WiseN

NAVER CLOUD PLATFORM CLI 케이스 별 활용 및 아쉬운 점

Blog thumbnail

안녕하세요
오늘은 NAVER CLOUD PLATFORM CLI 사용하기라는 주제로 포스팅 하려 합니다.

시작하겠습니다!!




CLI 사용 준비





CLI 패키지 설치하기

  • CLI 사용 환경 구성은 NAVER CLOUD PLATFORM CLI 매뉴얼 참고 부탁드립니다.

  • 매뉴얼 상에 설명 안 된 부분 추가 설명하면, CLI 패키지에 속한 jre를 사용하려면 /jre7/bin/java에 실행 권한을 주셔야 하며, 실행 권한 없을 시 퍼미션 오류가 발생합니다. ("./ncloud: line 3: ./jre7/bin/java: Permission denied")


CLI 사용하기

  • A사의 CLI 서비스와 사용 방법은 유사합니다.  "ncloud configure"로 인증키 설정 완료하면 홈디렉토리 아래에 configure 파일이 생성됩니다.

  • 출력 포맷 : json (default), xml

  • 필요하면 debug 옵션 이용 가능합니다. (--debug)

  • language  변경도 가능합니다! default는 영어입니다. (--language ko, en)

  • NAVER CLOUD PLATFORM CLI는 Server (+ NAS. BlockStorage) 와 Load Banlancer, CDN+ 만 사용 가능 (2018.04.09 기준)

  • help 페이지

    • ncloud help

    • ncloud {command} {subcommand} help








케이스 별 CLI 활용하기





1. 내서버이미지 이용한  VM 만들기

지난 포스팅에서 다룬 Packer를 활용해서 생성한 NAVER CLOUD PLATFORM 내서버이미지를 이용해서 VM을 런칭해보겠습니다.
※ 필수 Parameter만 사용해도 VM 생성하는데 문제없습니다.
<Parameter 설명>
memberServerImageNo : 내서버이미지 ID
serverProductCode : 인스턴스 flavor
loginKeyName : 인증키 이름
isProtectTypeCode : 인스턴스 삭제 방지
feeSystemTypeCode : 요금제 (월정액 / 시간제)
zoneNO : 가산(KR1) 1 / 평촌(KR2) 2
accessControlGroupConfigurationNoList : ACG ID
serverName : 생성할 VM 이름

 

apache가 설치된 내서버이미지였기 때문에 FIP 할당 후 접속해보면 웹서버 떠 있는걸 확인할 수 있네요.





2. Public LB에 웹서버 바인드 하기

앞 단계 반복으로 웹서버 하나 더 띄운 후 Public LB에 바인드 해보겠습니다.

2.1. Public LB 생성하기 & 웹서버 두 대 바인드 처리

* LB 메소드 :  라운드 로빈(RR)
* HTTP -- Port : 80 -> (LB) -- Port : 80 -> HTTP



※ NAVER CLOUD PLATFORM Load Balancer (Public) 는 LB 한 개 생성 시 Haproxy VM 두 개가 생성되며, 한 개의 퍼블릭 도메인으로 묶입니다.



2.2. 바인드 확인



 




3. 스케일 아웃 된 VM에 대한 작업

오토스케일링 트리거로 스케일 아웃된 VM에 대해서 기존 사용 중인 NAS 볼륨과의 연동은 어떻게 할까요? 다들 아시다시피 user-data를 이용하시면 됩니다.

여러 조건을 무시하고 이번 포스팅에서는 단순히 getServerInstanceList api 호출 시 생성시간 순으로 정렬되므로 마지막 serverInstanceNo 값을 받아 NAS 볼륨과 맵핑하는 user data 생성 후 오토스케일링 LC를 만들었습니다.

스크립트는 아래와 같습니다.

※ 물론 NCP CLI가 먹히는 환경이어야 합니다.

기대값을 1로 주고 신규 생성된 VM을 확인해 보면 NAS 볼륨에 잘 맵핑되었네요. (오토스케일링 매뉴얼)






아쉬운 점





지극히 "주관적인" 사용상 불편했던 점은 Subcommand 이름만으로는 용도에 대한 명확한 구분이 어려웠고, 대, 소문자가 섞여 있어 사용하기가 불편했습니다.



참고로 OpenStack Cinder Subcommnad입니다.  명령어만 봐도 어떤 용도인지 쉽게 구분이 되며, 소문자로만 되어 있어서 사용하기 간편합니다.(물론 주관적인 기준입니다.)



오늘은 여기까지입니다.
다음에 또 찾아오겠습니다!