스크립트 기반 클라우드 관리 자동화? Windows Azure Command-Line Tool
안녕하세요. 김대우입니다.
혹시 호스팅이나 여러 서버를 관리하시는 분들은, GUI 기반으로 관리자 화면에서 하시기 보다는 효율과 여러 서버 동시 관리를 위해, 쉘스크립트 기반으로 서버 자동화 작업을 많이 하실 거에요. 리눅스나 유닉스로 서비스를 한 경험이 있는 분들도 잘 알고 계실 겁니다.
Windows Server의 경우도 Power Shell로 관리하시는 분들이 최근 커뮤니티를 보면 늘어나는 추세에요. Power Shell도 마찬가지로 스크립트 기반으로 다수의 Windows Server를 관리 가능한 툴이에요. SQLER에서 강좌와 세미나도 여러번 진행 했었지요.
만약, 아래와 같은 다급한 상황이 발생하게 되면 어떻게 해야 할까요?
"새로 론칭한 소셜 모바일 게임에 접속이 폭주 중! 15분내에 Windows Azure의 가상머신을 50대 늘려라."
Windows Azure의 관리 포털 - GUI 기반에서 서버 50대를 늘리는 작업을 하시려면 몇 시간을 클릭질 하며 삽질해야 할까요. 이런 배치성 배포 작업을 위한 최선의 방법은 어떤 게 있을까요??
오늘 소개해 드릴 내용은 감 잡히시는 것처럼, Windows Azure의 Command-Line Tool에 대한 내용입니다.
잠시 본격적으로 시작하기 전에 - 파워쉘이 Windows Azure도 지원하는거 혹시 알고 계신지요?
Windows Azure PowerShell
파워쉘로 Windows Azure를 관리하시면 서비스에 대한 제어와 배포 자동화, 관리 서비스를 기존 Windows Server에서 진행하는 것처럼 처리가 가능해요. 강력하고 막강한 파워쉘의 기능을 그대로 Windows Azure에서도 활용 가능하죠. 파웨쉘은 익숙하신 분들께는 편리하고 강력하지만, 쉘 스크립트 작업을 처음 접하시거나 비교적 간단한 배포 작업을 위해서는 더 훌륭한 도구가 마련되어 있습니다.
Windows Azure의 Command-Line Tool 입니다.
Windows Azure Command-Line Tool 은 뭐에 쓰는 물건인고?
파워쉘과 유사하지만 비교적 간단하다고 말씀 드렸지요.
- Windows Azure Cloud Service / Website / Storage
- Windows Azure Mobile Service
- Windows Azure Virtual Machine
- Windows Azure Service Bus
와 같은 Windows Azure의 서비스를 Windows나 Mac, Linux에서 스크립트 기반으로 자동화 시켜 관리할 수 있도록 돕는 도구 입니다. (거의 모든 Azure의 기능을 제공하며 계속 추가 중)
2012년 1월 31일 현재 0.6.9 버전이 제공되고 있으며(azure-cli 0.6.9) 여러 기능들이 지속 추가되는 중이에요.
옷? 관리 클라이언트 환경이 윈도우는 당연하지만, 맥과 리눅스는 조금 생경 하실지도 모르겠어요. Windows Azure 관리를 하는 클라이언트 머신이 뭐든 상관 없다는 의미겠지요.
파워쉘에 비해 간단하다고 말씀 드린 것처럼, 문법도 단순하고 편해요.
위의 표만 프린트해서 책상 위에 떠억~ 붙여 두시면 됩니다.
VM을 생성 하려면 어떻게 할까요?
vm create <dns-prefix> <image> <userName> [password] [optional parameters]
구문을 생각하면서 아래처럼 MSFT__Windows-Server-2008-R2-SP1.11-29-2011 디스크 이미지가 있다면, 이렇게 생성이 가능하죠.
~$ azure vm create my-vm-name MSFT__Windows-Server-2008-R2-SP1.11-29-2011 username --location "Western US" -r
info: Executing command vm create
Enter VM 'my-vm-name' password: ************
info: vm create command OK
추가적으로, 존재하는 VM을 리스트 해 보려면 어떤 명령을 쓸까요?
~$ azure vm list
info: Executing command vm list data: DNS Name VM Name Status
data: -------------------------------- ----------- ---------
data: my-vm-name.cloudapp-preview.net my-vm ReadyRole
info: vm list command OK
보시는 것처럼 vm list 명령으로 볼 수 있습니다. 쉽죠잉~
간단하게 느껴 지시는지요? 이 과정들을 조금만 더 살펴 보시고 개별 구문의 문법들을 고려하시면 자신만의 관리 스크립트들을 제작하실 수 있으실 거에요.
마치며
Windows Azure Command-Line Tool 은 Windows Azure의 서비스를 Windows나 Mac, Linux에서 관리할 수 있도록 돕는 스크립트 자동화 도구 입니다.
국내에도 대량으로 Windows Azure를 도입하는 회사들이 늘어나고 있어요. 이런 회사들을 대상으로 최근 제가 조언해 드린 내용이라 정리해 보았습니다. 많은 도움 되시길 바랍니다.
참고링크 :
Windows Azure PowerShell
Windows Azure command-line tool for Mac and Linux
Simple bash scripting for “azure” cli
Automating the cloud with Windows Azure Command Line Tools
Windows Azure Command-Line Tool for Mac and Linux
azure-cli 0.6.9 ships, pure joy