본문 바로가기

class "Think"/"PHP On Azure"

[PHP on Azure - 초급 - 2] Azure 소개


PHP on Azure의 본격적인 강의에 앞서 먼저 마이크로소프트에서 발표한 Windows Azure가 어떤 플렛폼인지, 다른 클라우드 환경과는 어떤 차별화가 되어있는지 개념들을 하나하나 천천히 살펴보도록 하겠습니다.


먼저 Windows Azure가 무엇일까요? IT에 조금이라도 관심이 있으시다면 클라우드라는 단어를 한번쯤은 들어보셨을 겁니다.

설명하기에 앞서 사전적인 정의를 내려보겠습니다.


Windows Azure 는 Public Cloud(퍼블릭 클라우드)에 대한 마이크로소프트의 플랫폼 입니다.(3)


여러분이 들어보신 클라우드는 맞는데, 퍼블릭이 들어갔습니다. 크게 퍼블릭 프라이빗(Private)로 나눌수 있는데, 간단하게 설명하자면 프라이빗 클라우드는 회사나 단체 내부의 데이터센터에 클라우드를 통해 사용될 서비스와 서버, 네트워크, 데이터, 애플리케이션을 함께 두어 내부 이용자들이 클라우드 서비스를 공유할 수 있도록 하는것 입니다. 쉽게 인트라넷(Intranet)을 떠올리시면 될것 같습니다.

반대로 퍼블릭 클라우드는 외부의 데이터센터에 인터넷을 통해 이용자들이 사용하고 접근할 수 있도록 구축되어진 클라우드 서비스입니다. 대표적으로 아마존 웹 서비스(AWS), 지금 소개중인 윈도우 애저(Azure)를 꼽을수 있습니다. 두 서비스 모두 세계 여러곳에 구축된 자사의 데이터센터에서 동작되고 있습니다.


그렇다면 클라우드 플랫폼에서는 어떤 기능들을 제공할까요? 일단 기능이 하나가 아니라 정말 많습니다. 클라우드와 관련된 모든 기능을 모아놓은 듯한 느낌도 듭니다. 또 클라우드 서비스마다 기능이 조금씩 다르고 기능을 지칭하는 이름도 중구난방이어서 뭐가 뭔지 알수가 없습니다.


그림1. 아마존 웹 서비스의 클라우드 서비스 제공 메뉴


그림1 의 아마존 웹 서비스를 보시면 큰 카테고리, 컴퓨트 & 네트워킹, 스토리지, 데이터베이스 ... 는 얼추 이해가 가지만, 이중에서도 뭘 해야할지 어떻게 해야할지 너무나 어려운게 현실입니다. AWS도 최근에 UI(User Interface)가 그나마 사용자 친화적으로 바뀌었는데도 말이죠.



그림2. Windows Azure 클라우드 서비스 메뉴


그림2 는 윈도우애저에서 계정을 만들고 처음으로 들어가면 나타나는 화면입니다. 사실 지금 포스팅을 작성하는 시점에서의 그림2의 UI는 Preview 버전 입니다. 원래 애저 관리화면은 실버라이트로 제작이 되어있어서.. 생각보다 많이 답답합니다.

하지만 지금 보여지는 화면은 HTML5로 되어 있고 반응속도와 UI, 배치 등도 Windows8 의 타일 스타일을 사용하여 초보자들이 어렵지 않게 이해할 수 있도록 꾸며져 있습니다.

그림 2를 봐도 뭘해야할지 모르겠다구요? 그래서 준비했습니다. 각각의 서비스에 대해 하나하나 간략하게 설명해 드리겠습니다.

  • Web Site*

그림3. Web Site 서비스 생성 화면


웹 사이트 서비스는 여러분들이 흔히 생각하시는 웹 호스팅 서비스를 생각하시면 편합니다. 그러나 일반적인 호스팅 과는 다르게 웹 사이트 에서는 여러분이 제작한 웹사이트를 윈도우 환경의 가상서버에 올리게 됩니다. 또한 서버 사양이나 접속자, 트래픽 등 여러 내/외부적인 변수들을 모니터링하여 여러분이 필요할때 원하는 만큼 할당하여 사용할 수 있습니다.  본 강의에서 자주 다룰 예정이고 해당 내용이 많이 나오기 때문에 자세한 설명은 차차 해드리도록 하겠습니다.

  • Virtual Machine*

그림 4. Virtual Machine 서비스 생성 화면


Virtual Machine(VM) 서비스는 퍼블릭 클라우드 서비스 에서 가장 기본적이고 대표적으로 제공이 되는 서비스입니다. 말그대로 VM, 가상서버를 클라우드 환경에서 제공하게 됩니다. 현재 Preview 버전에서는 Windows 뿐만 아니라 Ubuntu, RHEL 등 다양한 Linux OS들도 제공하고 있습니다. 미국에 있는 거대한 데이터센터에 여러분의 컴퓨터가 한대 있다고 생각하시면 됩니다. 물론 On-Demand 하게 확장/축소가 가능합니다. 클라우드 서비스에서 VM가 기본이 되는 이유는 이것을 기초로 웹 사이트, 모바일 서비스 등 다른 서비스들이 돌아간다고 생각하시면 됩니다.

  • Mobile Service*

그림5. Mobile Service 생성 화면


모바일 서비스는 이번에 발표하고 곧 출시될 Windows 8 과 Windows Phone 8 을 위한 서비스입니다. 특히 구체적으로 타겟 플랫폼이 정해진 클라우드 서비스는 처음이기에 윈도우 앱 생태계에 어떤 역할을 끼칠지 개인적으로 기대가 되는 서비스 중에 하나입니다. 구체적으로 어떤 역할을 할지는 아직 Preview 버전이어서 확정되지 않았지만 현재 푸시 노티피케이션, 사용자 인증, 데이터베이스 등을 지원하고 있고 더 많은 기능들이 추가될 예정입니다.

  • Cloud Service

그림6. Cloud Service 생성 화면


클라우드 서비스는 제가 Azure를 처음 입문할 때 사용했던 서비스입니다. 지금까지 소개했던 서비스들과는 다르게 Preview 버전이 아닌 정식으로 기능이 구현되어 많은 개발자들에게 사용중인 서비스입니다. 여러분이 제작한 프로그램을 어렵지 않게 클라우드 환경에서 구동할 수 있도록 서비스를 제공합니다. 무엇보다도 제가 체험했던 바로는 .NET Framework가 쓰이는 프로그램을 돌릴때 유지/보수 관리 측면에서 궁합이 좋다는걸 느꼈습니다(당연한건가?). 암튼 Web Role, Worker Role 등 여러 용어들을 설명해 드려야 하나 지면상 생략하고, 궁금하신 분은 출처의 (3)번 글에서 더 자세한 내용을 확인하실 수 있습니다.

  • SQL Database

그림7. SQL Database 서비스 생성 화면


SQL Database는 Cloud Service와 마찬가지로 Preview가 아닌 정식으로 기능이 구현된 상태입니다. 구조화된 테이블 기반의 관계형 데이터베이스를 클라우드 환경에서 사용할수 있도록 제공하고 있습니다. 이전에는 SQL Azure라고도 합니다(이름이 변경된건지 아니면 혼용되는건지는 확실하지 않습니다). SQL Database 만을 위한 웹 관리 환경을 별도로 제공하고 있고, 관계형 데이터베이스를 사용해보셨다면 어렵지 않게 적응하실 수 있을 겁니다. 이또한 자세한 내용이 궁금하시다면 출처의 (3)번 링크를 통해 확인하시기 바랍니다.


  • Storage

그림 8. Storage 서비스 생성 화면


스토리지는 Blob, 구조적이지 않은 자유 형식의 이진데이터를 저장하기 위한 공간을 클라우드 서비스로 제공합니다. 여러분들이 쉽게 클라우드 하면 떠올릴 수 있는 N드라이브, u클라우드 등과 같이 Storage서비스를 생각하시면 될 것 같습니다. 사진, 음악, 동영상 등을 저장하고 할당된 URL을 통해 여러분이 원하는 어플리케이션 또는 서비스에서 활용할 수 있도록 제공합니다. 웹 환경으로 별도의 파일 관리 화면을 지원하진 않지만, 오픈소스로 개발된 관리 프로그램을 통해 쉽게 사용할 수 있습니다.

  • Network*

그림 9. Network 서비스 생성 화면


네트워크 서비스는 사설IP 주소 대역을 정의하는 방식으로 가상 네트워크(Private Network)를 구성할 수 있습니다. 여러분이 Azure에서 서비스를 생성할 경우 가상네트워크를 이미 생성했다면, 해당 가상 서브넷 내부에서 운영을 할 수가 있습니다. DNS 또한 지정이 가능합니다. 자세한 내용은 출처 (5)를 참고하시기 바랍니다.

  • Media Service*

그림10. Media Service 생성 화면

 

미디어 서비스는 여러분이 가지고 있는 동영상 컨텐츠를 클라우드 컴퓨팅 상의 자원을 활용하여 인코딩하고 그 내용을 곧바로 Storage와 CDN에 게시할 수 있도록 만들어주는 서비스입니다. 현재는 Preview 상태이고, 동영상 서비스를 위해 .NET Framework 기반 SDK를 활용하여 프로젝트를 생성하고, 구현해야 합니다.

미디어 서비스에 대해 좀더 자세한 설명은 하단의 출처 (6)을 통해 확인할 수 있습니다. 



현재 *표시 된 서비스는 Preview 버전으로 계정생성 후 별도의 미리보기 신청이 필요합니다 (https://account.windowsazure.com/PreviewFeatures)


클라우드 용어중에 자주 언급되는 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)라는 용어를 들어보셨나요? Azure는 이중에서 IaaS와 PaaS를 포함하고 있습니다. 애저의 Virtual Machine, Network, Storage 등은 컴퓨팅, 네트워크, 스토리지와 같은 가상 자원을 사용자의 필요에 따라 사용할 수 있게 해주고, Web Site, Mobile Service, Cloud Service 등은 웹 사이트, 모바일 어플리케이션, 미디어 스트리밍과 같은 좀더 디테일한 사용자의 요구를 만족시켜 주는 서비스를 제공하고 있습니다.


AWS와 Azure의 메뉴를 비교해보면 클라우드 플렛폼에서 제공하는 서비스의 카테고리가 어느정도 비슷한 것을 확인할 수 있습니다. 관심있으신 분들은 좀 더 자세히 살펴보면 신문, 뉴스 등에 나오는 많은 IT 트랜드가 클라우드 서비스로 제공이 되고 있는것을 볼 수 있는데, 말씀드리고 싶은것은 평소에 사용하던 수많은 서비스들이 모두 클라우드로 옮겨지고 있다는 것입니다. 클라우드에서 가장 흔하게 접할수 있는 스토리지 서비스 뿐만아니라 여러분의 컴퓨터, 그리고 웹호스팅, 모바일 어플리케이션 등 모든 것이 클라우드 속에 들어가는 것도 먼 훗날의 예기는 아닌것 같습니다.


정리하겠습니다. 이제는 여러분도 아시겠지만 PHP on Azure 강의에서 주로 사용할 서비스는 Web Site 입니다. 추가로 강의 마지막 즈음에 Mobile Service도 가능하면 소개해 드리도록 하겠습니다. 다음 강의에서는 애저를 본격적으로 사용하기 위한 첫번째 관문인 90일 무료 평가판 계정 만들기를 같이 따라해 보도록 하겠습니다.


감사합니다.







자료를 참조한 사이트

(1) 위키피디아 Windows Azure - http://en.wikipedia.org/wiki/Windows_Azure

(2) Windows Azure MVP 남정현씨의 Azure 소개 아티클 - http://www.rkttu.com/316

(3) TAEYO.NET의 번역글 - http://taeyo.pe.kr/Columns/View.aspx?SEQ=410&PSEQ=33&IDX=1

(4) Windows Azure 공식홈 소개 - http://www.windowsazure.com/ko-kr/home/features/what-is-windows-azure/

(5) TAEYO.NET의 가상네트워크 개요 번역글 - http://taeyo.pe.kr/Columns/View.aspx?SEQ=429&PSEQ=33&IDX=1

(6) Windows Azure MVP 남정현씨의 미디어 서비스 설명 - http://www.rkttu.com/551