좀 지난 것이긴 하지만, 2010년 5월에 스위스의 쮜리히 공과대학 (ETH Zurich) 전산과 교수들로 구성된 Systems Group 퍼블릭 클라우드 사업자의 서비스에 대해 end-to-end performance study 진행하였고 결과가 highscalability.com 게시되었다. 대상이 되는 서비스로는 Microsoft Azure, Amazon AWS, Google AppEngine이다. 성능 벤치마크를 위해 이들이 사용한 방식은 트랜잭션 성능 벤치마크라고 널리 알려진 TPC-W 벤치마크이다. TPC-W에서 정의한 바대로, emulated browser (EB)에서 발생시킨 사용자 요청(Web-Interaction:WI) 어느 정도 받아 있는지를 측정하기 위해 동시 사용자수인 EB 1~9000까지 증가시켜 가며 클라우드 서비스의 확장성과 이에 따른 비용을 산정하였다. 이들은 하드웨어에 따른 벤치마크 오차를 줄이기 위해 Amazon EC2 클라이언트(EB) 사용하였으며 전체 구조는 아래와 같다.

Amazon 서비스별로 시나리오가 구성되고, 구글과 마이크로소프트의 경우 각각 가지 경우만 상정한 것이 조금 아쉽다. 벤치마크 결과는 아래와 같으며 그림이 의미하는 바는 동시 사용자를 1부터 늘려 9000까지 진행하면서 요청을 날렸을 초당 응답 처리 (WIPS) 양축으로 하여 나타낸 것이다. 그림에서 보듯이 동시 사용자 9000 견뎌낸 서비스는 아마존 S3 SQL Azure 기반의 마이크로소프트 Azure 밖에 없다. 아마존 RDS 동시사용자 3500정도를 감당하지 못하였다. 아마존 S3 Blob 같은 단순 데이터를 저장하는 용도인 것에 비해 SQL Azure Relation Database 기능을 클라우드로 제공하는 것이기에 둘을 비교하는 자체가 어쩌면 맞지 않으며, SQL Azure 우수성을 확인할 있는 대목이다. Windows Azure Storage 비교 대상에 넣지 않은 것을 지적한 것에 대해 System Group에서는 다음 벤치마크에는 함께 넣어 진행할 것임을 밝혔다. 구글 AggEngine 일찌감치 동시사용자 500에서 떨어져 나간 것은 AppEngine 많은 부하의 Write 감당하기에는 적합하지 않게 트랜잭션 모델이 설계되었기 때문으로 풀이된다.

클라우드가 가져다 주는 장점인 비용 절감을 알아보기 위해 위의 결과를 단위 요청 처리 (WI) 드는 비용으로 환산한 결과가 아래이다. 동시 사용자를 늘려 가면서 발생시킨 WI 처리하기 위해 지불해야 하는 금액을 계산하고 이를 단위 WI 드는 비용으로 환산한 것이다. 아래 그림에서 보듯이 동시 사용자 100이하에서는 구글이 가장 저렴하며 중간 정도의 부하 고부하시에는 SQL Azure기반의 마이크로소프트 Azure 가장 저렴함을 있다. MySQL 적용한 처음 세가지는 고부하를 견뎌내지 못했기 때문에 빛을 바랠 밖에 없고, 동시 사용자 9000까지 견뎌내며 WIPS 우수하고 가격도 저렴한 SQL Azure 기반의 마이크로소프트 Azure 눈길을 끈다.

아래 그림은 하루 기준으로 소요되는 비용을 역산한 것이다. 마찬가지로 부하가 아주 적은 경우 구글이 저렴하고 중간부터 최고의 부하가 걸릴 경우 SQL Azure 적용한 마이크로소프트 Azure 가장 저렴하다.

   

Systems Group 싸이트에 가면 이번 조사에 대한 전체 결과 리포트 공유되고 있어서 테스트 자체에 대한 상세한 설명 살펴볼 수가 있다.

   

   

Posted by 장현춘

1월 31일 Azure CDN 팀에서 23번째 Azure CDN 노드를 모스크바에 개설하고 즉시 서비스에 들어갔다. 국내 글로벌 서비스 고객 가운데는 중앙 아시아를 커버할 수 있는 CDN 노드에 대한 요구가 있었는데, 이로써 어느 정도 해소되지 않을까 기대해 본다. 23개의 CDN 노드 위치는 아래와 같다.

* 미국
Ashburn, VA
Bay Area, CA
Chicago, IL
San Antonio, TX
Los Angeles, CA
Miami, FL
Newark, NJ
Seattle, WA

* 유럽
Amsterdam, NL
Dublin, IE
London, GB
Moscow, RU
Paris, FR
Stockholm, SE
Vienna, AT
Zurich, CH

* 아시아
Hong Kong, HK
Sao Paulo, BR
Seoul, KR
Singapore, SG
Sydney, AU
Taipei, TW
Tokyo, JP

Windows Azure Team 공식 블로그 바로가기

Posted by 장현춘

Windows Azure Platform에 추가된 기능 중에서 실제 현업 개발자들이 자주 질문하는 것으로 Windows Azure 인스턴스에 대해 원격 접속 기능을 통해 접근 가능하다고 하는 이에 대해 알려 달라는 것이다. 특히 VM Role을 선보이면서 기존 개발 환경을 클라우드로 확장할 수 있는 가능성을 열어 주다 보니, 개발자들이 흔히 하고 있는 원격 접속 기능을 써서 Windows Azure내의 인스턴스에 접근하고 싶어하는 것은 당연한 일일 것이다.

원격 접속을 가능하게 하는 방법을 알아보자.
1. 여느 애플리케이션처럼 Web Role을 하나 만들자

2. 로컬에서 테스팅이 끝난 이 Web Role을 클라우드로 Publish하자. 이때 설정할 것들이 있다. 기본적으로 Visual Studio에서 Windows Azure Management Portal에 곧바로 Publish하기 위해서는 인증서 설치가 필요하다. 이 과정은 이 글과 직접 관련이 없으므로 여기서는 생략하기로 한다. (Visual Stuido에서 하라는 대로 따라하여 생성한 인증서를 Windows Azure Management Portal에 등록하는 것까지 마쳤다고 가정한다.) 그런 후 모습은 아래와 같다.

3. Publish를 위한 “Deploy Windows Azure Project” 팝업 화면 아래 부분에 "Configure Remote Desktop connections…”라는 링크를 클릭한다. 새로 뜨는 팝업 "Remote Desktop Configuration"의 “Enable connections for all roles”를 선택하여 화면을 enable시킨다.
  
콤보박스에서 <Create…>를 선택하여 필요한 정보를 기입한다. Account expiration date을 지정하게 되어 있음을 알 수 있고, 이로써 원격 접속을 써서 Windows Azure 인스턴스를 접속하는 기능을 항상 열어 놓고 쓰는 것을 추천하지 않음을 알 수 있다.
 
4. 이로써 인증서가 생성되어 PC에 저장되었으며, 다음 단계는 이 인증서를 Windows Azure Management Portal에 등록하는 것이다. 이를 위해 생성한 인증서를 저장소로부터 export하는 작업이 선행되어야 하는데, 두 가지 방법이 있다.
첫번째 방법은, 위 화면에서 OK를 눌러 화면을 닫기 전에, 콤보박스 옆의 “View” 버튼을 클릭한다. 인증서 팝업의 “Details” 탭에서 “Copy to File…” 버튼을 클릭여 “Certificate Export Wizard”를 실행시킨다.
  
두번째 방법으로는, 윈도우의 시작—>실행창에서 certmgr.msc를 실행시키면 아래와 같은 인증서 관리 화면이 뜬다. 여기서 “Personal –> Certificates”에서 방금 생성한 인증서를 마우스 오른쪽 버튼 클릭으로 export하면 위와 동일한 “Certificate Export Wizard”가 실행됨을 알 수 있다.

”Certificate Export Wizard” 실행화면에서 계속을 선택하면 Private Key를 함께 export할지를 결정하는 화면이 나오는데, 여기서 private key를 함께 export하도록 선택한다. 이어지는 화면에서 자동 선택되어 있는 PFX 포맷을 그대로 선택하고 다음을 누른다.

패스워드와 인증서 사본을 저장할 위치를 입력하면 인증서 저장이 끝나게 된다.

5. 이제, 저장된 인증서를 Winows Azure Management Portal에 등록하는 과정이 필요하다. 이 인증서를 아래 그림에서 보듯이 내가 만든 애플리케이션이 deploy될 “Hosted Services” 밑에 “Certificate”에 저장하여야 한다. 아래 그림의 좌측 메인 메뉴 중에 있는 “Management Certificates” 항목은 위에서 잠시 언급한 Visual Studio에서 직접 deploy하기 위해 필요한 인증서를 저장하는 곳이므로 헷갈리지 않도록한다.
 
좌측 상단의 “Add Certificate” 버튼을 클릭하여 좀 전에 저장한 인증서와 패스워드를 입력하고 “Create”를 클릭하면 인증서 등록이 끝나게 된다.

6. 인증서 관련된 일이 다 끝났으므로 이제 Visual Studio에서 직접 배포하면 된다. 아래는 배포가 진행중인 모습을 보여준다.

7. 배포가 끝났으면 이제 원격 접속을 통해 접근해보자. 특정 인스턴스를 선택한 후 “Connect” 버튼을 클릭한다. RDP 스크립트를 실행할 것인지를 물어보는데, 실행을 선택한다.

보안 팝업이 뜨고 계속 진행하면, 접속 아이디와 패스워드 입력창이 나오는데, 인증서 등록시 지정한 아이디와 패스워드를 입력하면 된다. 다시 한번 보안 경고창이 뜨고 원격 접속을 통한 화면이 보이게 된다.

원격 접속에 성공한 후 모습이다. 썰렁하지 그지 없다.

위 과정에서 보듯이 원격 접속은 Windows Azure Management Portal의 “Connect” 버튼 클릭을 통해서만 가능하다. 위에서 처럼 3개의 인스턴스를 실행할 경우, 내부적으로 Fault Tolerance 기능을 제공하기 위해 반응없는 인스턴스 대신에 새로운 인스턴스를 자동으로 띄우는 기능이 있기  때문에 IP 주소는 변동이 될 가능성이 있기에 IP를 기억하는 것은 무의미하다. 또한 각 인스턴스를 원격 접속해 보면 알 수 있지만, 이 세 인스턴스는 모두 내가 지정한 같은 도메인 이름을 공유하기 때문에, 외부에서는 해당 도메인 이름의 특정 인스턴스를 지정해서 접속할 방법이 없는 것이다. 따라서 항상 Windows Azure Management Portal을 통해서만 접속할 수 있다.

Posted by 장현춘

예고한 대로, 오늘 부로 마이크로소프트의 클라우드 서비스인 Windows Azure Platform이 정식 서비스에 들어갔다. (한국은 이번 출시에서 제외) 1월 한달간은 빌링 테스트 및 이전 CTP 사용자를 위한 업그레이드 기간이며, 실질적인 과금은 2월 1일부터 적용된다. 정식서비스에 들어간 항목으로는 스토리지, CPU 등의 기반 리소스를 클라우드 서비스로 제공하는 Windows Azure, 관계형 데이터베이스인 SQL Server를 클라우드 서비스로 제공하는 SQL Azure 그리고 ISB (Internet Service Bus)로서 서비스 연계 기능을 제공하고 기업간 서로 다른 인증체계를 SAML 토근 근간의 표준화 인증 통합 서비스를 제공하는 Windows Azure Platform AppFabric 등 세가지 이다.

현재 CTP 기반의 서비스를 사용하고 있는 사용자 중에 지속적으로 Windows Azure Platform을 사용하고자 하는 사람은 1월 중에 반드시 정식 출시된 버전으로 업그레이드를 진행하여야 한다. 기존 사용자들에 대한 업그레이드 방식에 대한 안내는 Windows Azure Platform 등록시 기재한 메일을 통해 발송이 된 상태이며 신규 사용자들은 새로와진 Windows Azure Platform 오퍼링 중 하나를 택해 가입을 하여야 한다. 기존 사용자든 신규 사용자든 정식 출시된 Windows Azure Platform을 사용하기 위해서는 신용카드 정보를 제공해야하며, 아울러 이번에 정식 출시되는 국가에 빌링을 청구할 수 있는 주소지가 있어야 한다. 이번에 정식 출시되는 국가는 오스트리아, 벨기에, 캐나다, 덴마크, 핀란드, 프랑스, 독일, 아일랜드, 인도, 이탈리아, 일본, 네델란드, 뉴질랜드, 노르웨이, 포르투갈, 싱가포르, 스페인, 스웨덴, 스위스, 영국, 미국 등 21개국이다. 한국은 이번 출시국가에서 제외되었다.

기존 사용자 중에서 1월 중에 정식 서비스 사용으로 업그레이드를 하지 않을 경우 다음과 같은 절차에 의해서 서비스가 제한받게 된다.
* 2010년 2월 1일 부터, CTP 계정은 사용이 불가능해지며, Windows Azure Storage에 저장되어 있는 데이터는 read-only 상태로 변경된다. SQL Azure CTP 계정은 2월 1일 이후에도 사용가능하나, 새로운 데이터베이스를 추가할 수는 없다. Windows Azure Platform AppFabric 네임스페이스는 사용 불가능한 상태가 된다.
* 2010년 3월 1일 부터, 정식 서비스로 업그레이드 하지 않은 SQL Azure CTP 계정은 삭제가 된다. SQL Azure에 대한 좀 더 상세한 설명은 SQL Azure 팀 블로그를 참고하시길.. 
* 2010년 4월 1일 부터, 정식 서비스로 업그레이드 하지 않은 Windows Azure Storage CTP 계정과 Windows Azure Platform AppFabric 네임스페이스는 삭제된다. 따라서 정식 서비스로 업그레이드를 하지 않은 고객은 그 전에 데이터를 백업 받아놓아야 한다.

정식서비스로의 업그레이드에 관한 좀 더 자세한 설명은 Windows Azure 팀 블로그를 참고하시길...

이번 정식 출시와 함께 Windows Azure Platform AppFabric에 대한 가격 정책이 일부 수정되었다. 이전 CTP 상태에서의 가격 정책이 메시지 기반이었다면, 이번 새롭게 변경된 가격 정책은 서비스 버스의 경우 Connection기반으로, Access Control 서비스의 경우 트랜잭션 기반으로 변경되었다. Windows Azure Platform AppFabric의 가격 정잭에 대한 상세한 설명은 Windows Azure Platform AppFabric팀 블로그를 참고하면 좋을 듯하다. 이를 포함하여 전체 Windows Azure Platform의 가격 정책이 궁금하다면 여기를 방문하시길..

Posted by 장현춘

PDC 정식 세션 하루전에 필드의 전문가들이 진행하는 워크샵이 유료행사로 진행되었다. 많은 사람들이 10시 시작인 워크샵 참석을 위해 일찍부터 등록대를 찾았다. 오전 8시 등록을 하려는 사람들로 인해 아래 사진과 같이 이미 등록대는 줄이 형성되기 시작했다. 일찍 등록을 마친 이들은 삼삼오오 모여 참석할 세션을 논의하거나 행사장에 마련된 스타벅스에서 커피와 간단한 식사를 하면서 열심히 노트북을 쳐다보고 있다.

image

PDC 전체 등록자의 27% 정도만이 신청한 워크샵인지라 그다지 붐비지는 않았고, 행사장 곳곳에서 내일 행사 준비에 여념이 없다. 파빌리온 부스에 전시할 업체들의 바쁜 손길이 그 앞을 지키는 안전 요원들의 느긋함과 대비되어 어딘가에 갖힌 사람들처럼 느껴졌다.

참석했던 워크샵은 Azure를 이용하여 온라인 티켓 예매 싸이트를 구현하면서 느낀 점을 발표한 것이었다. 아일랜드 발표자의 강한 억양이 가뜩이나 졸려 무뎌진 영어에 대한 감각에 더해 거의 해독에 가까운 느낌을 주었다. 영어 공부좀 해야겠다는...
세션 내용은 일반적인 Azure에 대한 소개보다는 깊이가 있어서 들을만 했다. Windows Azure Platform의 각 구성요소에 대한 소개는 일체 없었고, 이들을 어떻게 사용했는지에 중점을 두었다. "클라우드를 사용하려는 사람들은 반드시 캐싱을 고려해야 한다"는 말로 시작하여 Azure에서 검증된 캐싱이 없다는 아쉬움도 피력하고, ASP.NET 의 output cache와 더불어 자체 구현한 캐싱 모듈을 Azure에서 연동하는 아키텍처도 소개하고.. Performance와 Scalability를 위한 파티셔닝의 의미와 Azure의 각 구성요소에서 제공되는 파티셔닝의 종류 및 간단한 데모도 곁들여 열정적으로 설명을 했다.

image 

애저가 제공하는 버추얼 이미지는 CPU 갯수에 따라 small, medium, large, extralarge (아마도..)의 4종류로서 각각 1, 2, 4, 8개가 제공되는데, 8개의 CPU를 가진 worker role이 무조건 좋을 거라는 착각에 무조건 선택하지 말고 자신의 애플리케이션 CPU 갯수에 좌우되는지 아닌지를 판단해볼 필요가 있다는 이야기와 간단한 데모도 곁들였다.

앞에 앉아 발표자의 입 모양이라도 보면 좀 영어 해독이 좀 쉬울까 했는데, 그것도 별 소용이 없고, 발표자가 하고자하는 내용을 다 이해하지 못한 것이 좀 아쉽다. PDC 기간 중에 발표자료와 데모 소스를 공개하겠다고 하니 Azure에 관심있는 사람들에게는 좋은 자료가 될 것으로 생각한다. 어쨌거나 Azure가 상용 서비스를 앞두고 실제 프로젝트에 사용할 수 있을 정도의 의미있는 모습을 보여주는 것 같아괜찮은 자리였다고 생각된다.

헌대, 내일 키노트 세션의 주제가 Azure보다는 Silverlight에 방점이 찍힌 것 같아서, 이것이 어떤 의미인지 한번 들어보고 판단해봐야 할 것 같다.

윙키샘 김영욱 차장은 역시 오늘도 잘 잔다... 쌕쌕..

Posted by 장현춘

지난 WPC (World Partner Conference)에서 마이크로소프트가 자사의 클라우드 플랫폼인 Windows Azure Platform에 대해 가격 정책을 포함하여 몇가지 상용화 전략을 공개했다. 핵심 사항만을 뽑아보면...

1. 명칭 변경
시장의 혼선을 줄이고 장기적으로 일관된 명명 규칙을 유지하고자 클라우드 플랫폼에 관한 이름을 변경했다.
* 마이크로소프트 클라우드 플랫폼 : Azure Services Platform –> Windows Azure Platform
* 클라우드 스케일의 SQL Server 기능 : SQL Services –> Microsoft SQL Azure 
* Microsoft SQL Azure내의 DB인 SQL Data Services –> SQL Azure Database
.NET의 기능을 클라우드로 확장한 .NET Services는 이름과 기능이 부합되므로 변경하지 않았다.

2. 상용화 시점
올 11월로 예정된 PDC 2009때 공식 론치할 예정이며 이때 상용화에 포함되는 나라는 미국, 호주, 오스트리아, 벨기에, 캐나다, 덴마크, 핀란드, 프랑스, 독일, 아일랜드, 인도, 이탈리아, 일본, 네덜란드, 뉴질랜드, 노르웨이, 포루투갈, 스페인, 스웨덴, 스위스, 영국 등이다.
여기서 빠진 나라는 내년 3월에 상용화에 포함될 예정인데, 한국, 브라질, 칠레, 콜롬비아, 체코, 그리스, 홍콩, 헝가리, 이스라엘, 말레이지아, 멕시코, 폴란드, 푸에르토리코, 루마니아, 싱가포르, 타이완 등이다. (이스라엘은 PDC 2009 시점에 상용될 가능성도 있다.)

3. 가격 정책
다른 업체들과 마찬가지로 사용량에 따른 과금 정책을 취할 것이며 미국 기준, 즉 달러 기준으로 다음과 같다.

Windows Azure Compute $0.12 / hour
  Storage $0.15 / GB stored
  Storage Transactions $0.01 / 10K
  Bandwidth $0.10 in / $0.15 out / GB
SQL Azure Web Edition Up to 1 GB relational database = $9.99
  Business Edition Up to 10 GB relational database = $99.99
  Bandwidth $0.10 in / $0.15 out / GB
.NET Services Messages $0.15/100K message operations , including Service Bus messages and Access Control tokens
  Bandwidth $0.10 in / $0.15 out / GB

* Windows Azure Compute 서비스의 경우, 애플리케이션이 디플로이 된 시간당 $0.12 가 과금된다. 따라서 개발 중 혹은 테스팅 중에는 애플리케이션을 삭제하여 과금 시간을 줄이는 것이 필요하다.
* Windows Azure Storage 서비스의 경우, 한달을 과금 대상 기간으로 하며 하루 평균 차지하는 저장공간의 크기를 과금 기준으로 한다. 즉, 하루 동안 30GB를 저장하고 지웠다면, 한달 30일로 환산하면 하루 평균  1GB를 저장한 것이 되기 때문에 1GB가 과금대상이 된다. 또한  Storage 서비스에는 트랜잭션 단위로 추가 과금된다. 즉, 파일을 업로드, 업데이트, 조회, 삭제 등의 요청 10,000 건당 $0.01 가 추가 과금된다.
* Windows Azure에서 Bandwidth는 30일 기간동안 인터넷을 통해 Windows Azure를 사용하면서 들고 나간 데이터의 전체 양을 기반으로 과금이 된다.
* SQL Azure 서비스의 경우 기본적인 관리 및 HA 등의 기능이 제공되며, 애플리케이션에 의해 사용되는 데이터베이스의 양에 따라 과금된다. SQL Azure 사용자는 원하는 만큼의 데이터베이스를 만들어 원하는 수준까지 데이터를 분산시킬 수 있다.
* .NET Services의 경우, 한달 기준으로 .NET Services를 통해 오가는 메시지 10만 건당 $0.15를 부과한다. 여기서 메시지의 기준은 Services Bus를 사용하기 위해 주고 받는 메시지이든, 혹은 Access Control 서비스에 사용되는 Token이든 구분되어 전송되는 데이터 조각을 의미한다. 아울러 다른 서비스와 마찬가지로 오가는 메시지가 사용하는 Bandwidth에 따라 추가 과금된다.

4. SLA
* SLA에 대한 윤곽도 공개했다. Windows Azure Compute 서비스의 경우 서로 다른 롤 (web role / worker role)이 디플로이되어 업그레이드와 폴트가 발생할 경우에도 최소 99.95%의 가용성을 제공한다. 또한 디플로이되어 있는 각 role을 모니터링하기 때문에 특정 role 인스턴스가 반응을 하지 않을 경우 2분 이내에 이를 수정하기 위한 조치가 실행된다.
* Windows Azure Storage 서비스의  SLA는 제대로 된 형식의 요청인 경우 최소 99.9%의 가용성을 제공할 예정이며 Storage 계정은 인터넷 게이트웨이에 항상 연결되어 있도록 제공될 예정이다.  좀더 상세한 SLA는 추후 공개될 예정이다.
* .NET Services의 SLA에 관해서는, Uptime이나 SLA에 관한 전반적인 사항은 Windows Azure에서와 거의 유사하다. 다만 기술과 용어에 차이가 있어서 약간 상이한 부분이 있다. .NET Service Bus를 사용하는 경우 고객의 사용하는 endpoint와 Azure의 인터넷 게이트웨이 사이의 연결이 끊긴 경우 unavailable이라고 정의한다. 또한 제대로 작성된 고객의 요청을 적절하게 처리하지 못한 경우에도 서비스가 unavailable하다고 정의한다. 한달을 기준으로 매 5분 간격으로 모니터링하여 unavailable을 측정한다. 좀 더 상세한 SLA 정의는 추후 공개될 예정이다.
* SQL Azure의 SLA는 역시 한달 기준으로 달 평균 99.9%의 가용성을 보장하겠다는 것이 요지임. 5분 간격으로 한달간 측정하여 고객의 요청이 SQL Azure의 게이트웨이에서 거부되는 것을 unavailable하다고 판단하여 측정하겠다는 것.

5. 기타
* 상용화 시점에 맞추어 해당 나라의 통화가 지원된다. 따라서 내년 3월에는 원화로 결재가 가능하다.
* 아직은 제공되지 않지만 상용화 시점에 맞추어 자신에게 부과될 요금을 미리 알아볼 수 있는 과금 예측 기능을 제공할 예정이다.
* 현재까지는 VHD 통째로 디플로이하는 것을 허용하지는 않으나, 미래에는 제공할 수도 있다. (expect to offer ^^)
* Windows Azure에서 제공하는 인스턴스들은 모두 64비트 기반으로 동작하며 small, medium, large, extra large의 네 가지 크기로 제공될 예정이며 이 각각에 대한 상세한 스펙은 PDC 2009 시점에 공개할 예정이다.

6. 관련 기사
http://blogs.msdn.com/windowsazure/archive/2009/07/14/confirming-commercial-availability-and-announcing-business-model.aspx
http://blogs.technet.com/dataplatforminsider/archive/2009/07/14/sql-azure-database-is-on-its-way-new-pricing-and-licensing-information-announced-at-wpc.aspx

servicesPlatform

Posted by 장현춘

마이크로소프트의 클라우드 플랫폼인 Azure Services Platform이 작년 10월 처음 공개된 이후 지난 3월 MIX를 거치면서 많은 기능이 추가되었고 5월을 지나면서 몇 가지 추가된 기능들이 있어 소개하고자 한다.

image

1. Azure Services Platoform은 라이선스를 파는 제품이 아니라 서비스 형태로 제공되는 것이며, 이의 구성 요소 가운데 클라우드 OS에 해당하는 Windows Azure에 추가된 기능으로 배포될 위치를 지정할 수 있는 Geo-Location 지원 기능이 있다. 이는 나의 서비스가 어느 곳에 위치한 데이터센터에 배포되어 서비스를 제공할 것인지를 서비스 생성시에 지정할 수 있는 것으로 현재는 아래 그림에서와 같이 북미 북부 혹은 남부 정도만 선택할 수 있다.

image 

2. 지난 5월 28일에 공개된 기능으로 Windows Azure의 Storage 서비스에 Table에 대한 배치 트랜잭션 기능이 추가되었고, Blog에 대해서는 한 Blob에서 다른 Blob으로 복사하는 기능이 추가되었고, Blog내에 업로드된 블럭들을 리턴하는 GetBlockList API가 committed 뿐만 아니라 uncommitted까지 리턴하는 것으로 업데이트되었다. 또한 Storage 서비스에 버전닝이 추가되었으며 이는 HTTP 헤더에 “x-ms-version” 헤더를 추가함으로써 구현되고 있고 현재 선택 적용 (opt-in) 사항이다. 그 밖에 Windows Azure tools for Microsoft Visual Studio May CTP를 통해서 현재 베타 상태인 Visual Studio 2010과 연동이 가능하다.
Blog Copy에 대한 좀더 상세한 내용은 MSDN Blog Copy를 참고하시길...
GetBlockList에 대한 좀더 상세한 내용은 MSDN GetBlockList를 참고하시길...

3. Windows Azure의 내 Storage의 상태를 모니터링하는 도구인 Windows Azure Management Tool (MMC)이 있어 내 계정의 blob을 추가하거나 권한 설정을 할 수 있으며, queue에 대해서도 추가/제가 및 메시지를 관리할 수 있다.

4. Windows Azure의 Storage서비스를 사용한 온라인 상의 경매 예제가 공개되어 있어서 차근차근 따라해볼 수 있으며, 이 예제는 Windows Azure의 queue 서비스와 Worker Role을 사용하여 구현되었다.

5. 또한 Azure Services Platform은 애초부터 상호운용성을 염두해두고 설계가 되었으며, 자바나 루비 SDK는 진작부터 http://azure.com을 통해 공개해왔으며, 이번에 PHP 개발자가 Windows Azure를 사용할 수 있도록 Codeplex를 통해 PHP SDK for Windows Azure를 오픈 소스로 공개하였다.

logical_architecture deployment_scenario

Posted by 장현춘

마이크로소프트가 지난 10월 말 PDC에서 공개한 클라우드 플랫폼인 Azure Services Platform (Azure)은 아래 그림에서와 같이 Windows Azure와 Azure Services로 구분할 수 있다.  Windows Azure 혹은 Azure Services의 각 서비스를 사용하기 위해서는 별도의 사용권한인 "Invitation code"가 있어야 한다.servicesPlatform 

Azure Services 가운데 하나인 .NET Services에는 현재 .NET Services Bus, Access Control Service, Workflow Service 등이 구현되어 테스트해 볼 수 있다.

image.NET Services 중에 Service Bus를 한 마디로 정의하면, 기업내에서 메시지 기반의 백본을 제공하며 이 기종 시스템간에 웹 서비스 기반으로 연동을 제공하는 Enterprise Services Bus (ESB)가 클라우드 스케일로 확장되어 기업간 서비스 연계를 제공해 주는 Internet Service Bus (ISB) 의 마이크로소프트판 구현물이다. 서비스 버스로서 .NET Service Bus는, 어디인지 모르지만 또 어떤 언어로 구현되었는지 모르는 서비스에 대해 플랫폼이나 언어에 종속적이지 않은 웹 서비스 기반의 접근을 제공하고 있다. 현재 발표된 CTP 버전에서는 닷넷,  자바 혹은 루비로 구현된 서비스를  .NET Service Bus에 등록하면 닷넷, 자바 혹은 루비 중 그 어떤 언어에서도 접근하여 서비스를 사용할 수 있는 SDK가 제공되고 있다.

Access Control Service와 연계되어 .NET Services Bus를 사용하는 샘플을 돌려보자. 주의할 사항은 .NET Framework 3.5 이상이 설치된 Windows Server 2008 혹은 Vista 에서만 동작하며 Visual Studio 2008에서 샘플을 돌려볼 수 있습니다. 이상이 준비된 경우,
1. Azure 싸이트에서 Resources 메뉴 중 "Microsoft .NET Services SDK"를 다운로드 받아 설치한다.
2. Azure 싸이트에서 Resources 메뉴 중 "Azure Services Training Kit"을 다운로드 받아 설치한다.

image

Azure Services Training Kit을 설치하면 좌측과 같은 폴더들이 생성되고 이중 Labs에 들어있는 샘플을 돌려보면서 .NET Services Bus의 원리를 파악해볼 수 있다. "IntroServiveBus" 샘플이 Access Control 서비스와 .NET Service Bus가 연계되어 있는 처음 접하기에는 안성맞춤이다. IntroServiceBus 폴더에 위치한 Lab.docx 문서를 참고하며 하나하나 따라하면 별다른 무리없이 실행해 볼 수 있다.

.NET Services를 이용하기 위해 반드시 필요한 Invitation code는 Azure.com에서 신청하면 하루 이내에 발급된다. 따라서 training kit에 있는 lab을 따라하기 전에, azure 싸이트에서 코드를 발급받아 사용자로 등록하는 것이 필요하다. 이때 각 개인별 Live ID가 필요하며 Live ID 별로 invitation code가 발급된다.

Azure 싸이트의 메뉴 맨 오른쪽에 Sing In을 통해 등록 싸이트에 가면, 아래와 같이 화면 중간에 "Register for Services" 메뉴가 보인다. 이를 클릭하면 Microsoft Connect 싸이트로 이동한다.
image

정상적인 사용을 위해서 반드시 Live ID가 필요하며, 각 개인의 Live ID 등록시 기재했던 메일 주소로 Invitation code가 발송되기 때문에 등록되어 있는 메일 아이디에 각별히 신경쓸 필요가 있다.

login

register01

Microsoft 로부터 이메일 주소 확인 메일을 받아 확인해주고 아래와 같은  간단한 설문을 마치면 신청 완료 화면이 뜬다.

register02 register03

이후 하루 이내에 두 통의  메일이 오는데, 한통은 신청 완료 확인 및 안내 메일이고 나중에 오는 "Do not delete"로 시작하는 다른 한통은 바로 Invitation code를 담고 있는 메일이다. 기재되어 있는 Invitation code를 가지고 Azure 싸이트에서 사용자로 등록하면 된다. 등록 과정은 위에서 언급한 IntroServiceBus Lab 문서에 자세히 기술되어 있다.

Invitation code를 신청하고 이를 통해 Azure 싸이트에 자신의 계정을 등록하고 lab 문서에 나와 있는 대로 Azure 싸이트에 자신의 솔루션 이름과 CardSpace 카드를 등록하면 아래와 같은 화면을 Azure 싸이트에서 확인할 수 있다. 아래는 현재 제 계정의 모습이며 Open_Interop이라는 솔루션이 등록되어 있고 두 개의 CardSpace 카드가 각 머신별로 하나씩 등록되어 있는 것을 볼 수 있다.

image

위와 같이 정상적으로 설정이 끝나고  lab을 실행하면 서버 실행시 한번, 클라이언트 실행시 한번씩 CardSpace 카드를 선택하라는 화면이 뜬다.

card007

아래는 각각 서버와 클라이언트 프로그램 동작 모습이다.

image image

이상의 내용은 Azure 싸이트에서 제공하는 SDK와 Lab 매뉴얼을 충실히  따르면 손쉽게 테스트해볼 수 있는 것이며, 사실은 어제 진행된 Open & Interoperability Day를 준비하면서 .NET Service Bus에 등록된 .NET WCF 서비스를 자바에서 접근하는 모습을 보여드리려고 했는데 실패하여 아쉬운 마음에 일단 닷넷 끼리 연동하는 모습을 포스트 합니다.

[업데이트] 2009-02-27

본문에서 언급한 Azure Services Training Kit이 업데이트되었다. 이번에 릴리스한 Azure Services Training Kit에는 19개의 데모 스크립트와 10개의 프리젠테이션 자료, Live Services에 대한 3개의 hands-on lab이 포함되어 있으며 아래 링크에서 다운로드 받을 수  있다.
Azure Services Training Kit - February

Posted by 장현춘

마이크로소프트가 주최하는 PDC (Professional Developer Conference) 2008 이 약 한 시간 전에 시작됐다. 마이크로소프트가 기술의 중대한 시점마다 개최하는 PDC는 이번에도 예외가 아니다. 좀 전에 발표된 마이크로소프트의 Cloud Platform, Azure는 지금까지 마이크로소프트가 대규모 데이터센터를 짓고, 각종 서비스 및 서비스 플랫폼을 단편적으로 내놓던 것을 하나의 큰 줄기로 엮는 획기적인 전환점이 아닌가 생각된다. 바야흐로 마이크로소프트가 흔히 시장에서 얘기하는 PaaS (Platform as a Service) Player로 공식 데뷔를 한 것으로 봐도 무방할 듯 하다.

image

"Windows Azure"는 Windows Server 2008 기반의 Cloud에 최적화된 OS로서 Cloud Compute 및 Cloud Storage 서비스를 제공한다. 아마존의 EC2가 제공하는 역할과 유사하다. "Azure Services Platform"은 이러한 Cloud Computing 환경에서 운영될 수 있는 대부분의 애플리케이션이 공통으로 사용할 수 있는 서비스 블럭들이라 할 수 있으며, "Live Services"에는 이전의 라이브 메쉬를 포함하여 Windows Live 패밀리에 속하는 서비스가 제공되고 있고 Live Framework을 통해 쉽게 사용할 수 있도록 하고 있다. ".NET Services"는 ISB (Internet Service Bus)를 구현하였고 이전에는 BizTalk Services라고 불렸던 바로 그 서비스로서 여기에는 .NET Service Bus, Connectivity Services, Identity Services, Workflow Services가 제공된다. "SQL Services"는 이전에 SSDS (SQL Server Data Services) 라고 불리던 것이 SDS (SQL Data Services)로 명명되어 제공되며 추후 다른 서비스가 추가될 예정이다. 또한  "Sharepoint Services"나 "Dynamics CRM Services"는 조만간 추가될 예정이다.

재밌는 것은 늘 마이크로소프트가 잘 해왔던 것처럼 툴 연동이 빠질 수가 없다. 즉, Windows Azure SDK, Windows Azure tools for MS Visual Studio를 제공하여 Visual Studio 내에서 개발, 테스트, 디플로이 할 수 있는 테스트 환경을 제공해주며, 클릭 한번으로 Microsoft 데이터 센터의 Windows Azure에 디플로이 할 수 있는 기능을 제공한다. 즉, PaaS Player로서 불려도 손색이 없다.

더 재밌는 사실은 Cloud Platform 답게 닷넷과 C#만을 위한 것이 아니다. 이미 Java를 위한 SDK, Ruby를 위한 SDK를 배포하여 이들 언어에서 연동할 수 있는 방안을 제시하고 있으며 더 나아가 Python등의 언어나 Eclipse 등과의 연동도 제공할 예정이다.

image image

좀 더 자세한 사항은 Azure 싸이트를 방문하시길...
참고로, 데이비드 채펠이 작성한 Introducing the Azure Services Platform을 보게 되면 마이크로소프트의 Cloud Platform에 대한 그림을 좀 더 선명하게 느낄 수 있습니다.

곁가지로, 닷넷 로고가 위 .NET Services에 나와 있듯이 이쁘게 바뀌었습니다.

Posted by 장현춘