'컴퓨팅'에 해당되는 글 27건

  1. 2012.10.21 David Chappell의 Windows Azure Platform 강연회에 초대합니다.
  2. 2011.12.15 AppFabric 브랜드 네임의 전면적인 수정
  3. 2011.09.12 ASP.NET과 IIS 7을 위한 로드 밸런싱 전략과 기초적인 이야기, 그리고 Azure Platform
  4. 2011.06.21 Windows Azure Cafe Boot Camp #2
  5. 2010.12.30 Windows Azure Platform Training Kit 2010년 12월 버전 출시!
  6. 2010.12.01 Windows Azure SDK 1.3 발표
  7. 2010.11.24 Windows Live 2011의 새로운 기능: 향상된 Photo Gallery
  8. 2010.11.24 2010 대한민국 SW 개발자 컨퍼런스
  9. 2010.11.19 Amazon Elastic Cloud 기반 Social App - LinkupWith 런칭!
  10. 2010.11.06 Windows Azure 인스턴스를 원격 제어하기
  11. 2010.11.05 이번 PDC 2010을 통하여 공개된 Windows Azure의 개선 사항 정리
  12. 2010.11.02 Windows Azure 코드 샘플 컬렉션
  13. 2010.11.01 이제 UNIX 기반 프로그램도 Windows Azure의 First Citizen이 됩니다.
  14. 2010.10.29 이제 Office도 Cloud 시대입니다 - Office365
  15. 2010.10.29 PDC 2010에서 공개된 Windows Azure 업데이트 (2)
  16. 2010.10.27 PDC2010 클라우드 컴퓨팅 세션 미리 보기
  17. 2010.10.10 Introducing Windows Azure Platform @ INHA University 세미나 자료 올립니다.
  18. 2010.09.29 Visual Studio 2010 Seminar #1 - 현실적인 클라우드 컴퓨팅 이야기 발표 자료 (2)
  19. 2010.09.06 [세미나] Visual Studio Seminar #1 / 2010년 9월 28일
  20. 2010.08.27 Korea Games Conference 2010에서 뵙겠습니다.
  21. 2010.08.09 Jetty를 사용하여 Windows Azure에서 JSP 사이트 구축하기
  22. 2010.07.27 Hello Windows Azure / Twitter 스타일 방명록 만들기 #1
  23. 2010.07.20 Hosted Web Core (HWC) Worker Role 사용하기
  24. 2010.07.14 새로운 소식: Codename: Dallas @ WWPC2010
  25. 2010.07.14 새로운 제품: Windows Azure Platform Appliance
  26. 2010.05.07 [이벤트] Advanced Computing Conference 2010
  27. 2010.02.22 Windows Azure Drive 베타 릴리즈 (2)
이벤트2012. 10. 21. 21:35

 

데이비드 챠펠(David Chappell) 씨가 10월 22일(월) 저녁 7시, 한국 Microsoft 5층 WIN 세미나 룸에서 윈도우 애저(Windows Azure) 유저 그룹에서 클라우드 플랫폼에 대한 관련한 강연을 합니다.

데이비드 챠펠씨는 Chappell & Associates (http://www.davidchappell.com)의 대표로서 다양한 강연, 저술, 컨설팅을 통해 세계의 많은 IT리더들께서 새로운 기술을 잘 이해하고, 더 나은 결정을 내릴 수 있게 도와 드리고 있습니다. 데이비드는 5개 대륙에 수만명의 IT리더, 아키텍트, 개발자들이 참석하는 수백개의 회의 및 행사에서 기조 연사로 활동하고 있으며, 그의 저술은 다양한 언어로 번역 출판 되어 MIT, ETH 취리히 및 와튼스쿨 등 여러 대학의 과정에서 사용되고 있습니다. 또한 HP, IBM, Microsoft 등 IT 기업의 고객 및 파트너와 내부직원을 대상으로 IT 전반의 컨설팅을 수행하고 있으며, 스탠포드 대학 등에서의 강연 및 유수하고 다양한  IT 관련 출판물에 유명 칼럼리스트로도 활동하고 있습니다.

행사에 참석하기 희망하시는 분들께서는 온오프믹스 행사 홈 페이지 (http://onoffmix.com/event/9962) 에서 접수하여 주시기 바랍니다.

서울 행사 접수하러 가기

ps. 서울에서 진행되는 행사 이외에 기타 예정되어있는 각 국가별/도시별 세미나 일정은 다음과 같습니다. (아래 시간은 미국 시간 기준입니다.)

  • 10월 25일: 싱가폴

  • 10월 29일: 바르샤바 (Microsoft Technology Summit)

  • 10월 30일 ~ 31일: 프라하

  • 11월 5일 ~ 6일: 파리

  • 11월 8일: 런던

  • 11월 9일: 뮌헨

  • 11월 13일: 토론토

  • 11월 15일: 뉴욕

 

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

PaaS2011. 12. 15. 10:11

최근 개편된 Windows Azure 웹 사이트에서 한 가지 재미있는 내용을 발견하였는데, 이전에는 Windows Azure AppFabric의 일부로 Service Bus, Access Control가 제공되는 것으로 언급되었지만 이번에는 Windows Azure라는 단일 브랜드의 서비스 구성 요소로 통합되었습니다. 이를 두고 여러 가지 이야기가 있었지만 결론은 Windows Azure Platform 아래에 모든 서비스를 하나로 통합시키겠다는 의도 아래에 이루어진 정리 작업이었습니다.

개편된 웹 사이트: http://www.windowsazure.com/en-us/home/tour/overview/

서비스 브랜드 네임의 조정이 있었지만 서비스 다운 타임이 생겼다던지 혹은 다른 문제점이 있었던 것은 전혀 아닙니다. 하지만 앞으로는 Azure AppFabric와 Server AppFabric을 혼동할 이유가 없을 것입니다. Azure AppFabric의 구성 요소들은 모두 Windows Azure Platform의 서비스들이고, Server AppFabric의 구성 요소들은 지금까지와 마찬가지로 독립적인 노선을 유지하게 될 것 같습니다.

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

PaaS2011. 9. 12. 23:32

요즈음 클라우드 서비스들을 이용하다보면, Windows 서버 운영체제를 통해서 확장성있는 클라우드를 만들고자 하는 경우가 자주 있습니다. 일반적인 웹 사이트를 구축할 때에도 마찬가지이고, 당연히 KT UCLOUD나 Amazon과 같은 환경에서도 같은 노력이 뒷받침이 되어야 하지요. 그리고 제가 주 전공으로 하고 있는 Windows Azure 역시, 첫 배포 때에는 간과하기 쉬운 점이 바로 로드 밸런싱 환경이라는 점입니다.

이러한 로드밸런싱 환경을 만들때에는, 이전에 구축해본 경험이 없는 관리자가 개발자 입장에서는 상당히 어려운 문제에 봉착하게 될 가능성이 많습니다. 특히 요즈음 웹 환경에서는 당연하게 사용하는 세션이나 쿠키에 관련된 설정들이 로드밸런싱 환경에서 기대했던 것과 다르게 동작해서 좌절하는 경험을 많이들 하실텐데요, 제가 오늘 블로그에 올리는 것은 ASP.NET에 관한, 그리고 IIS 7에 관한 내용입니다. (PHP나 JSP 개발자분들께서도 공감하실 수 있는 부분이 있을 것입니다.)

로드밸런싱 환경을 잘 알고 구축할 수 있다면, 앞으로 나오게될 어떤 종류의 클라우드 서비스이든 관계없이 문제를 정확하게 해결할 수 있을 것입니다. 사실 클라우드 기반의 웹 서비스는 달리 표현하면, 기본 골자는 로드밸런싱에 기반을 두고 있는 것이고, 그 이후의 확장성 전략을 클라우드 솔루션으로 채우는 것과 같다고 말할 수 있습니다. (어떤 뼈대를 사용할 것인지는 전적으로 여러분들의 선택에 달린 것입니다.)

로드 밸런싱 환경이란?

로드 밸런싱 기술 자체는 상당히 오래된 것입니다. 이름에서 알 수 있듯이, 몰려오는 트래픽을 내부적으로 분산하여 특정 서버 컴퓨터로 연결이 몰려 서비스가 사용 불가 상태로 빠지는 것을 "지연"시키거나 "완화"시키는 것에 목적이 있습니다. 로드 밸런싱의 기술적 개념도는 다음과 같습니다. (이미지 출처: http://msdn.microsoft.com/en-us/library/ff650667.aspx)

다양한 상황에서 로드밸런싱이 쓰이겠지만 가장 일반적으로는 웹 환경에서 많이 쓰입니다. 연결을 오래 유지할 필요가 없으면서도, 짧은 시간 내에 빠른 연결 회전을 보이는 웹 프로토콜에서 가장 중요한 것은 바로 신속성인데, 분산 처리를 하지 않는 경우에는 필연적으로 서버 컴퓨터가 받아들일 수 있는 동시 연결 한계치에 금방 치닫게 됩니다. 그러나 로드 밸런싱을 정확히 사용하면 이러한 한계치에 치닫게 되는 속도가 로드 밸런싱에 참가하는 컴퓨터의 댓수만큼 반비례하게 됩니다. 그리고 이 때 하나의 웹 사이트를 위한 로드 밸런싱 서비스에 멤버로 참여하는 서버 컴퓨터들을 묶어서 "웹 팜"이라고 정의를 하는 것이지요. 더 일반적으로는 "서버 팜"이라고도 합니다.

잠시 다른 이야기로 넘어가자면, 요즈음 대두되는 클라우드 컴퓨팅은 관리 측면에서 봤을 때, 충분한 대역폭을 보장하는 연결과 매우 뛰어난 성능을 가진 로드 밸런서를 이용하여 연결을 분산하는 작업을 수행하는 것입니다. 그리고 웹 팜 안에 참여하는 컴퓨터의 유형에 있어서는 이전과 다른 점이 하나 있는데, 마치 구름과 같이 수축과 팽창을 자유자재로 한다는 것입니다. 물론 이런 수축과 팽창이 가능함은 내부적으로 가상화 솔루션을 이용했다거나 여기에 대응할 수 있는 알고리즘을 사용했다는 가정이 깔려있는 것입니다.

정말 완벽하고 정확하게 구축했다면, 적은 전원이나 자원 공급으로도 충분히 웹 팜이 유지가 될 수도 있고, 필요하다면 웹 팜의 크기가 엄청나게 커질 수도 있겠지요. 이걸 여러분이 관리하신다면 프라이빗 클라우드, 신뢰할 수 있는 IT 기업이 관리한다면 퍼블릭 클라우드가 된다고 보실 수 있겠습니다. 그러나, 클라우드 컴퓨팅이 만능약처럼 들릴 수 있는 부분이 있지만 정확히 알아야 할 것은 클라우드 컴퓨팅 역시 이 로드 밸런싱을 기초로 만들어지는 것이고, 여러분이 운영할 수 있는 한계에까지 트래픽이 몰리거나, 이런 일을 하는 IT 업체에게 지불할 수 있는 재정의 한계에까지 트래픽이 몰린다면 이것이 여러분이 생각할 수 있는 클라우드의 한계입니다. 무제한이라고 해서 값이 저렴하거나 무료에 수렴하는게 아님을 명확히 이해하고 있어야 합니다.

웹 로드 밸런싱을 위한 이야기

다시 본론으로 돌아와서, 웹을 로드 밸런싱할 수 있으려면 무엇을 검토해야 할까요? 가장 중요한 것은 웹 서버에 참여하는 각각의 컴퓨터 자체에는 "절대로" 컴퓨터의 고유한 정보를 가지고 있으면 안된다는 점입니다. 매우 단순한 이야기같지만 이러한 원칙을 지키지 않도록 설계되어있는 것이 지금 이 시점까지의 서버 컴퓨팅 기술들의 대다수의 원칙입니다. 간단한 예를 들어볼까요?

여러분이 일상적으로 사용하는, 웹을 통한 파일 업로드 기능을 담당하는 간단한 웹 앱이 있다고 가정해 보겠습니다. 이 웹 앱은 서버가 한 대 일때에는 참 쉽고 빠르게 설치해서 쓸 수 있었습니다. 당연히, 설치를 잘 했다면, 사용자가 웹 페이지를 방문해서 파일을 업로드하면 웹 서버가 그것을 알아보고 파일을 회수해서 하드 디스크 어딘가에 저장하겠지요. 그러나 시간이 지나서 이 웹 앱의 기능을 업그레이드하고 좀 더 많은 사용자들이 파일을 저장하고 다운로드할 수 있도록 만들어보고자 해서 로드 밸런싱 환경을 구축하여 베타 테스트를 시작했습니다. 그런데 어떤 문제들이 생겼을까요?

앞서 이야기한 기술적인 특성때문에, 사용자들은 분명히 조금전까지 파일을 업로드했었는데 페이지를 다시 와서보니 파일이 업로드되지 않은 상태로 페이지가 나와서 혼란스러워합니다. 혹은 파일을 어디로 빼돌린거냐며 분노하는 사람들도 있구요. 그래서 몇 번 F5키를 누르다보면 "어라?"하고 놀라게 됩니다. 조금 전에 업로드했던 파일이 다시 나타나니까요. 그러고나서 그 파일을 다운로드하려고 링크를 클릭하면 이번엔 또 다시 404 오류를 만납니다. 이제 사용자들은 이 서비스에 대해서 대단한 분노와 원성을 쏟아낼 것입니다. 서비스 상태에도 일관성이 없을 뿐 아니라 불안정한것 같다. 믿을 수 없다면서요.

이것이 일선 IT 현장에서 로드 밸런싱이나 클라우드를 처음 접목했을 때 겪는 "가장 흔하고 일반적인 장애"입니다. 더 안타까운 것은, 이것을 신 기술에 의한 책임으로 회피하고 문제시하는 것입니다. 문제의 본질을 정확히 알고 있다면 이렇게 말하는 것이 왜 잘못인지도 금방 알 수 있을 것입니다.

여기서 든 예제처럼, 이 웹 앱의 문제는 단순히 업로드한 파일을 자신의 컴퓨터에 저장하려고 했다는 데에 문제가 있습니다. 로드 밸런싱 멤버로 참여하는 컴퓨터가 자신의 상태를 중요하게 여기면, 다음번에 이어받는 다른 서버 컴퓨터의 입장에서는 이전에 그 컴퓨터가 무엇을 했는지 알 길이 없습니다. 그저, 찾고자 하는 내용이 없음을 이야기하는 수 밖에 없습니다. 이런 상황이 반복되면서 서비스 전체는 들어올때와 나갈때가 전혀 다른, 일관성이 없고 이상한 서비스가 되는 것입니다.

이 문제를 해결하기 위하여 어떻게 수정해야 할까요? 답은 간단합니다. 파일 저장소를 로드 밸런싱 멤버 컴퓨터 내부가 아닌, 여러 멤버 컴퓨터들이 같이 이용할 수 있는 공용 저장소로 바꾸는 것입니다. 가장 간단한 방법은 네트워크 UNC 경로로 이용할 수 있는 스토리지가 있을 수 있습니다.

여기서 궁금한 점이 하나 더 있는데, 그렇다면 로드 밸런싱에 의하여 애써 분산한 서비스가 다시 모이는 것이 아니냐고 반문할 수도 있습니다. 그런데 사실, 생각외로 사용자들이나 웹 크롤러와 같이 인터넷 상에서 발생하는 별 뜻없이 바쁘게 만드는 다양한 유형의 트래픽을 웹 팜 수준에서 한 번은 로드 밸런싱을 해주는 것 만으로도 실제 스토리지에 대한 요구 사항은 획기적으로 감소한다는 점입니다. 거기다, 역할 분담도 정확히 할 수 있으며 스토리지 자체에 대한 요구 사항이 폭증하는 것을 방지하기 위하여 기술적으로는 좀 더 복잡해질 수 있지만 캐싱 기능을 사용할 수도 있습니다. 이렇게 함으로서, 우리가 흔히 잘 아는 클라우드 서비스의 시작을 뗄 수 있게 됩니다.

기술적인 이야기 1 - 세션 처리 방법 바꾸기

그렇다면 IIS와 ASP.NET에서는 이런 이상한 상황을 예방하고 신뢰할 수 있는 서비스를 만들기 위해서 어떤 수정 사항을 반영해야 하는 것일까요? 제가 이제까지 인터넷 상으로 자료 조사를 해왔던 것은 모두 제각기 흩어져있는 정보들이었고 이것을 한 번에 취합할 수 있는 방법을 오늘 블로그 포스팅을 통하여 소개할까 합니다.

기본적으로 ASP.NET은 세션 처리를 IIS 프로세스 안에서 수행하도록 되어있습니다. 가장 동선도 짧고, 신속하게 반응하기 때문입니다. 그러나 로드 밸런싱 환경에서 이는 당연히 "채택하면 안되는" 기법입니다. 이 방법은 web.config 파일 안의 <sessionState> 요소에서 변경할 수 있는 부분으로, <configuration> 요소 아래의 <system.web> 요소 아래에서 없는 경우 새로 지정할 수 있습니다. <sessionState> 요소의 mode 속성의 값을 변경하면 됩니다. 지금 이야기한 부분은 mode 속성이 InProc으로 지정되어있거나, 아무것도 지정되어있지 않을 때 .NET Framework의 글로벌 web.config 설정을 바꾸지 않은 경우 기본으로 지정되는 설정입니다.

IIS 7에서 볼 수 있는 아래 그림과 같은 설정도 이 XML 파일의 수정을 텍스트 에디터 없이 수정하는 것입니다.

로드 밸런싱 환경에서 정상적으로 동작하는 웹 사이트를 만들기 위해서는 mode의 설정 값을 InProc 대신 StateServer나 SQLServer로 바꾸어야 하는데, 양쪽 값 모두 장단점이 있습니다. StateServer의 경우 기본적으로는 꺼져있는 ASP.NET State Service라는 NT 서비스가 제공하는 별도의 서버를 이용하는 방식이고, SQLServer는 이름에서 알 수 있듯이 실제 SQL Server를 사용하여 세션을 구현하는 방식입니다. 데이터베이스 서버의 성능이 세션을 모두 수용할 수 있을만큼 획기적으로 뛰어나거나, 세션 서버가 죽었다가 살아나도 로그아웃 처리가 안되게 한다던가, 혹은 여러 로드 밸런싱 사이트 사이에서 세션 공유를 안전하게 할 방법이 필요하다면 이 모드를 사용할 수 있습니다. 이에 비하여 StateServer는 별도의 SQL 서버 없이도 간편하게 구축할 수 있는 방법을 제공하긴 하지만, 세션 서버가 죽었다 살아날 경우 내용이 없어지는 휘발성 세션입니다.

양쪽 모드 모두 중요한 것은 멤버로 참여하는 웹 서버 컴퓨터 밖에 상태를 보관해야 한다는 것이 키 포인트로, 이것을 지키지 않고 멤버 컴퓨터 안에 이런 설정을 구축하면 전혀 나아지는 것이 없습니다. 그리고 당연한 이야기이지만 멤버 컴퓨터로 참여하는 모든 웹 서버가 같은 설정을 가지고 있어야 합니다.

StateServer와 SQLServer 모드를 구현하는 방법에 대한 자세한 내용은 아래 아티클을 참고하시면 되겠습니다.

http://msdn.microsoft.com/ko-kr/library/ms178586.aspx

기술적인 이야기 2 - ASP.NET 사이트 간에 립싱크 맞추기

세션을 공유하는 것 이외에, ASP.NET은 내부적으로 Machine Key라는 것을 사용합니다. Machine Key의 용도는 ASP.NET 안에서 참 다양한데, 가장 대표적으로는 클라이언트와 서버 사이에 쿠키 정보를 주고 받을 때 암호화하기 위한 수단으로 이용하는 것이 유명한 사례입니다. 쿠키를 이용한 취약점 공격은 웹 세계에서 너무나 당연한 공격 방식 중 하나이기 때문에 ASP.NET은 처음부터 이를 보완하기 위한 전략을 구현하고 있었습니다. 그러나 이것이 지금 와서 로드 밸런싱 환경이 되면서는 또 다른 어려운 문제로 바뀐 것입니다.

이 Machine Key라는 것 역시 서버 컴퓨터마다 고유하게 생성할 뿐 아니라, 매번 연결할 때 마다 다른 값을 생성하여 암호화에 사용합니다. 클라이언트 입장에서야, 서버가 "ABC"라는 쿠키를 주니까 "아 그렇구나. 나중에 돌려주면 서버가 날 알아보겠지?"하며 성실하게 반납합니다. 그런데 로드 밸런싱에 참여하는 A라는 서버 대신 C라는 서버가 이 쿠키를 받아들었을 때는 "이거 내것 아님" 하며 클라이언트에게 퇴짜를 놓습니다. 이것이 문제의 핵심인 것이죠.

이 문제를 해결하기 위해서는 아까전에 이야기한 주제보다 좀 더 많은 노력이 필요합니다. 생각보다, 보안을 완벽하게 유지하기 위하여 ASP.NET이 관리자들에게 요구하는 사항이 까다롭기 때문입니다. 이 Machine Key를 만들기 위해서는 별도의 생성 도구를 사용해야 합니다. 그러나 안타깝게도 이 도구를 구한다거나 만들 수 있으려면 개발자들의 조력이 좀 필요합니다. 그리고 개발자 본인들도 이런 방법을 찾아야 하기때문에 꽤나 귀찮습니다. Codeproject에 가면 이러한 방법을 자세히 설명한 아티클도 있습니다만 간단한 도구도 드리고, 코드 조각도 드리니 프로그램에 넣어 활용하시면 더 편리할 것입니다.

using System;
using System.Text;
using System.Security.Cryptography;

/* 중략 */

        public static string getRandomKey(int bytelength)
        {
            byte[] buff = new byte[bytelength];
            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
            rng.GetBytes(buff);
            StringBuilder sb = new StringBuilder(bytelength * 2);
            for (int i = 0; i < buff.Length; i++)
                sb.Append(string.Format("{0:X2}", buff[i]));
            return sb.ToString();
        }

        public static string getASPNET20machinekey()
        {
            StringBuilder aspnet20machinekey = new StringBuilder();
            string key64byte = getRandomKey(64);
            string key32byte = getRandomKey(32);
            aspnet20machinekey.Append("<machineKey\n");
            aspnet20machinekey.Append(" validationKey=\"" + key64byte + "\"\n");
            aspnet20machinekey.Append(" decryptionKey=\"" + key32byte + "\"\n");
            aspnet20machinekey.Append(" validation=\"SHA1\" decryption=\"AES\"\n");
            aspnet20machinekey.Append("/>\n");
            return aspnet20machinekey.ToString();
        }

        public static string getASPNET11machinekey()
        {
            StringBuilder aspnet11machinekey = new StringBuilder();
            string key64byte = getRandomKey(64);
            string key24byte = getRandomKey(24);

            aspnet11machinekey.Append("<machineKey");
            aspnet11machinekey.Append(" validationKey=\"" + key64byte + "\"\n");
            aspnet11machinekey.Append(" decryptionKey=\"" + key24byte + "\"\n");
            aspnet11machinekey.Append(" validation=\"SHA1\"\n");
            aspnet11machinekey.Append("/>\n");
            return aspnet11machinekey.ToString();
        }

위의 코드를 사용하여 프로그램을 만들거나 ZIP 파일 안의 프로그램을 이용하여 값을 만들도록 하면 아래와 같은 XML 코드 조각을 얻을 수 있을 것입니다. 이 코드 조각을 각각의 서버에 들어있는 web.config에 지정하거나, 특정한 값만 인용하여 아래의 IIS 7 설정 아이콘에서 볼 수 있는 설정 도구를 통해서 직접 설정할 수도 있습니다.

<machineKey
 validationKey="FACBB6C89C44CB8BB7165FC4639BAA7267B...EF297D815E1BDD40E883E3451628CB95D34309"
 decryptionKey="4E95057676CC8DBA9AB...AACC1121B6B962E5AFA7849B0C82"
 validation="SHA1" decryption="AES"
/>

기술적인 이야기 3 - IIS에서 놓치면 안되는 것

ASP.NET을 가장 먼저 사용할 수 있게 된 웹 서버가 IIS이다보니 발생한 일종의 특성입니다만 여러 포럼에 걸쳐서 잘 언급되지 않는 문제점이 하나 있습니다. 바로 IIS에서 사용하는 사이트 ID 값을 통해서 정해지는 Application Path를 Machine Key와 같이 활용된다는 사실입니다. 웹 사이트 관리를 하다보면 로드 밸런싱에 참여하는 컴퓨터들을 다음과 같이 관리하게 되는 경우가 있습니다.

  • 서버 A에서는 기본 웹 사이트를 먼저 지우고 새 웹 사이트를 만들었다.
  • 서버 B에서는 새 웹 사이트를 먼저 만들고 기본 웹 사이트를 지웠다.

혹은 아래와 같은 경우도 있을 수 있습니다.

  • 서버 C에서는 사이트 A를 만들고 사이트 B를 만들었다.
  • 서버 D에서는 사이트 B를 만들고 사이트 A를 만들었다.

별 차이 없이 생각할 수 있지만, IIS에서는 이 경우 각각의 사이트들에 다른 ID 값을 부과하게 됩니다. 이 경우, 분명히 Machine Key를 동일하게 지정했음에도 불구하고 로드 밸런싱 환경에서 세션 상태가 일관성없게 변하는 문제를 만나게 됩니다. 제가 이번에 고민하게 된 부분도 바로 이 부분이었는데요, 이 문제를 해결하기 위해서는 IIS 7에서 전체 웹 사이트 목록에 나타나는 내용 중 다음의 ID 값이 멤버로 참여하는 웹 서버마다 차이가 있지 않은지 우선 검토해야 합니다.

위에있는 그림에서 빨간색으로 그린 부분이 서버 컴퓨터마다 차이가 있다면 이 값을 수정해주어야 합니다. 이 값을 수정하기 위해서는 수정할 사이트를 클릭하고, 고급 설정 링크를 아래 그림과 같이 클릭합니다.

이제 아래와 같은 팝업 대화 상자가 나타나면 강조 표시한 속성인 ID 값이 멤버로 참여하는 웹 서버 모두 같은 값을 가질 수 있도록 통일시켜줍니다.

확인 버튼을 누른 다음, ID 값이 바뀐 서버 컴퓨터에 한해서 IIS 전체를 재시작해주시거나 사이트 재시작을 시켜주시면 정상적으로 작동하게 될 것입니다.

Windows Azure 환경에서의 고려 사항

오늘 살펴본 내용은 IIS 7과 ASP.NET에 관한 부분이었지만, Windows Azure Platform의 경우에도 비슷한 문제가 있습니다. Windows Azure Platform에 VM Role로 웹 사이트를 게시를 하든, Web Role로 웹 사이트를 게시하든 세션을 사용하게 될 경우 비슷한 문제가 있을 수 있습니다.

다행히, Web Role을 이용한다면 내부적으로 사용하는 IIS에서 여러분이 몇 개의 웹 사이트를 추가적으로 구성하든 관계없이 같은 순서로 같은 ID를 사용하는 웹 사이트를 만들 것이므로 세 번째로 이야기한 ID 값 수정과 같은 작업은 할 필요가 없을 것입니다. 그러나 Machine Key에 대한 설정이나 세션 공유를 위한 설정은 SQL Azure를 이용한다거나, Worker Role에서 ASP.NET State Service 혹은 써드파티의 Session State Server를 이용해야 할 수 있습니다.

물론, 최근에 Windows Azure Platform의 일부로 Windows Azure AppFabric Cache가 새로 출시되기는 하였습니다만 상당히 이용 가격이 비싼 편입니다. (비싼만큼 확실한 성능을 제공합니다.) 로드 밸런싱 환경에서 특별한 문제를 일으키지 않는 일반적인 세션 공유가 필요하시다면 오늘 이야기한 주제를 응용한 Azure Project를 구축해보는 것도 의미가 있을 것입니다.

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

발표 자료 공유2011. 6. 21. 10:42

행사 등록: http://onoffmix.com/event/3146


Windows Azure Cafe Boot Camp #2

 
Windows Azure Cafe (http://cafe.naver.com/wazure)에서는 지난해에 이어 올해부터는 매월 다양한 주제를 통하여 개발자, IT 전문가들에게 Windows Azure 기반의 실전 개발에 대한 이야기를 전할 수 있또록 Boot Camp 세미나를 준비하였습니다. 클라우드 컴퓨팅에 관심이 있는 분들을 모시고, 세미나 전/후로는 클라우드 컴퓨팅과 최신 기술 동향에 대한 자유로운 토론도 같이 진행할 수 있도록 하겠습니다.
 
제목: 기존 소프트웨어에서 Windows Azure를 활용하는 방법
일시: 2011년 7월 2일 토요일 / 오후 2시
장소: 포스코센터 서관 5층 한국 마이크로소프트 GROW룸
대상: 소프트웨어, 웹 개발자
 
세션 소개
 
(1) Windows Azure Storage 활용 전략
Windows Azure Storage는 익히 알려진대로 세 가지의 대표적인 저장소 (테이블, BLOB, 큐)를 이용하여 개발할 수 있는 것이 특징입니다. 그러나 이들 저장소는 우리가 기존에 알고 있던 파일 시스템이나 관계형 데이터베이스와는 전혀 다른 시스템들입니다. 이러한 시스템들을 어떻게 효과적으로 사용할 수 있는지에 대해 알아보도록 하겠습니다.
- Windows Azure Storage 및 주요 기능 소개
- Storage를 중심으로 활용하는 몇 가지 유용한 모델에 대한 소개
 
(2) .NET 클라이언트 및 웹 개발자들을 위한 활용 전략
Windows Azure Storage를 .NET 클라이언트 개발 환경에서는 어떻게 활용할 수 있는지 클라이언트 및 웹 개발자들의 관점에서 유용한 정보를 알려드리도록 하겠습니다.
- Windows Azure Storage 라이브러리를 활용하는 방법
- 관계형 데이터베이스가 아니라는 것이 끼칠수 있는 문제점들
- LINQ to Table Storage에 대한 몇 가지 이슈
 
아젠다
14:00 ~ 14:50 (1) Windows Azure Storage 활용 전략
14:50 ~ 15:00 휴식
15:00 ~ 15:50 (2) .NET 클라이언트 및 웹 개발자들을 위한 활용 전략
15:50 ~ 16:00 질문/답변
 
시간, 장소, 날짜
일시: 2011년 6월 25일 토요일 / 오후 2시
장소: 포스코센터 서관 5층 한국 마이크로소프트 (ROOM은 추후 확정 후 다시 공지하겠습니다.)
 
알립니다: 본 세미나는 커뮤니티가 주최하는 비영리 세미나이며, 주차권은 별도로 제공되지 않으니 가급적 대중 교통을 이용하여 주시면 감사하겠습니다.

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

기술 소식2010. 12. 30. 19:11
Windows Azure Platform Training Kit의 2010년 12월 버전이 새로 출시되었습니다. 다운로드는 카페 대문에 걸려있는 링크 - 또는 - http://www.microsoft.com/downloads/en/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en 에서 다운로드하실 수 있습니다.

[Updated] All demos were updated to the Azure SDK 1.3 / 모든 DEMO들이 SDK 1.3 버전에 맞추어졌습니다.

  • [New demo script] Deploying and Managing SQL Azure Databases with Visual Studio 2010 Data-tier Applications / Visual Studio 2010 데이터 계층 응용프로그램에서 SQL Azure 데이터베이스를 배포하고 관리하는 프레젠테이션이 추가 되었습니다.

  • [New presentation] Identity and Access Control in the Cloud / 클라우드 환경에서의 아이덴티티와 액세스 제어에 관한 프레젠테이션이 추가되었습니다.

  • [New presentation] Introduction to SQL Azure Reporting / SQL Azure 레포팅에 대한 프레젠테이션이 추가되었습니다.

  • [New presentation] Advanced SQL Azure / SQL Azure의 고급 기능 및 상세 정보에 대한 프레젠테이션이 추가되었습니다.

  • [New presentation] Windows Azure Marketplace DataMarket / 이전 버전인 Codename: Dallas의 정식 버전인 Windows Azure Marketplace DataMarket에 대한 프레젠테이션이 추가되었습니다.

  • [New presentation] Managing, Debugging, and Monitoring Windows Azure: Windows Azure 응용프로그램을 관리, 디버깅, 모니터링하는 방법을 소개하는 프레젠테이션이 추가되었습니다.

  • [New presentation] Building Low Latency Web Applications: 빠른 응답 속도를 구현하기 위하여 웹 응용프로그램에서 취해야 할 가이드라인을 소개하는 프레젠테이션이 추가되었습니다.

  • [New presentation] Windows Azure AppFabric Service Bus: AppFabric Service Bus에 대한 새 프레젠테이션이 추가되었습니다.

  • [New presentation] Windows Azure Connect: 이전 버전인 Codename: Sydney의 정식 버전인 Windows Azure Connect에 대한 새 프레젠테이션이 추가되었습니다.

  • [New presentation] Moving Applications to the Cloud with VM Role: 기존의 응용프로그램을 VM Role 환경으로 이식하는 방법에 대한 새 프레젠테이션이 추가되었습니다.

이 내용들 중 VM Role에 관한 것은 이전에 제가 같이 게시하였던 VM Role 관련 Step-by-step 문서와 더불어서 보실 것을 권합니다. 감사합니다. :-)
Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

기술 소식2010. 12. 1. 01:14

PDC 2010에서 언급된 대로 이번 Windows Azure 업데이트에는 많은 수의 업그레이드가 있었습니다. 이러한 업그레이드들의 공통적인 목표는 단 한가지, 좀 더 높은 수준의 서비스를 좀 더 손쉽고 빠르게 개발할 수 있도록 개발자들을 지원하기 위함이었습니다. 그리고 12월 1일, 드디어 새 버전의 SDK와 함께 윈도 애저 서비스 포털이 새 단장을 합니다.

새 버전의 Windows Azure SDK의 버전은 1.3이며, Windows Azure Management Portal은 이제 정식으로 사용할 수 있도록 서비스됩니다. 다음은 Windows Azure SDK 버전 1.3에서 바뀐 사항들을 정리한 것입니다.

  • 권한 상승과 전체 IIS 기능 사용을 통하여 좀 더 완성도 높은 응용프로그램의 개발이 가능하게 됩니다. 이제 웹 역할과 작업자 역할에서 관리자 권한을 이용한 실행을 지원하므로 고유한 소프트웨어의 설치가 가능하게 되었고, 특히 웹 역할의 경우 IIS 전체 기능을 지원하도록 개선되어 IIS 7 전용 모듈을 설치하는 등의 작업이 가능하게 되었습니다.
  • 원격 데스크톱 기능을 켜고 끌 수 있도록 웹 역할이나 작업자 역할의 출판 속성이 추가되었습니다. 이에 대한 자세한 내용은 제 블로그의 글 ([Software Development/Windows Azure] - Windows Azure 인스턴스를 원격 제어하기)을 참조하십시오.
  • 윈도 서버 2008 R2 기반의 역할 지원: Windows Azure는 이제 Windows Server 2008 R2를 OS로 사용할 수 있도록 웹 역할, 작업자 역할, 그리고 가상 머신 역할이 개선되었습니다. 여기에는 IIS 7.5, AppLocker를 비롯하여 고급 명령줄 도구와 PowerShell 버전 2.0과 같은 자동화 기능까지 지원되며, 이전에 제 블로그 글 ([Software Development/Windows Azure] - 이제 UNIX 기반 프로그램도 Windows Azure의 First Citizen이 됩니다.)에서 언급했던 것과 마찬가지로 SUA 등의 리소스를 사용하여 UNIX, LINUX, POSIX 기반 응용프로그램을 윈도 애저 플랫폼으로 이식하는 작업도 가능하게 됩니다.
  • 다중 서비스 관리자 지원: 이제 Windows Azure는 다수의 윈도 라이브 ID를 관리자로 인정하여 서비스에 대한 제어를 수행할 수 있도록 기능이 개선되었습니다. 팀 단위 작업에 대한 지원을 고려하여 추가된 기능으로 더 효율적이고 편리한 작업을 수행할 수 있습니다. 특히 이 기능은 작업 시간대가 서로 다르고 위치가 떨어져있는 팀원들 사이에 관리 작업을 공유할 때 매우 효율적입니다.
  • 실버라이트 기반의 Windows Azure Portal 런칭: 기존의 AJAX 기반 Windows Azure Portal보다 더 사용하기 쉽고 빠르며, 새로운 기능들에 대한 완벽한 인터페이스를 제공하는 실버라이트 UI를 Windows Azure Portal에서 사용할 수 있습니다.
  • 향상된 진단 정보: 1차원적인 진단 정보가 아닌 좀 더 상세한 진단 정보를 통하여 관리하는 역할 인스턴스들의 종류, 배포된 시간, 마지막으로 다시 부팅한 시간등을 확인할 수 있습니다.
  • 새로운 회원 가입 프로세스: 이전보다 더욱 편리하고 쉽게 Windows Azure 서비스에 가입하여 곧바로 클라우드 컴퓨팅 서비스를 이용할 수 있게 됩니다.
  • 시나리오 기반의 Windows Azure Platform 포럼 런칭: 상황 별 대처 방안에 따라 빠르게 답을 구할 수 있는 Windows Azure Platform 포럼이 런칭됩니다. (http://social.msdn.microsoft.com/Forums/en-US/category/windowsazureplatform)

다음의 기능들은 베타 버전으로 제공됩니다.

  • Windows Azure 가상 머신 역할: 새로운 - 또는 - 기존의 윈도 서버 기반 응용프로그램을 VM Role을 이용하여 손쉽게 클라우드로 이관할 수 있습니다. 이에 대한 자세한 정보는 http://www.microsoft.com/windowsazure/compute/#vmrole 의 내용을 참조하십시오.
  • 극소형 인스턴스 레벨: 런타임 시간당 0.05$, 원화로 환산하면 한달 약 4~5만원 선으로 새로운 Windows Azure Platform의 기능을 경험해볼 수 있습니다. 극소형 인스턴스를 통하여 여러분이 원하는 클라우드 솔루션을 비용 걱정없이 자유롭게 테스트하며 개발할 수 있습니다. 자세한 내용은 http://www.microsoft.com/windowsazure/compute/#computeinstancesize 의 내용을 참조하십시오.

이제 개발자와 IT 전문가들은 Windows Azure Management Portal을 통하여 다음의 베타 서비스에 액세스할 수 있습니다.

  • Windows Azure 마켓플레이스: Windows Azure 마켓플레이스는 여러분의 빌딩 블록 구성 요소를 공유하거나, 판매하거나, 구입할 수 있도록 도우며, 고급 데이터를 거래할 수 있도록 도와주는 온라인 마켓플레이스입니다. 현재는 DataMarket (구 Codename: Dallas)이 런칭된 상태이며, 이번에는 Application Market Section이 오픈되었습니다. 40개 파트너사와 50여개의 응용프로그램과 서비스가 현재 게시되어있습니다.

다음의 기능은 CTP (Community Technology Preview)로 제공됩니다.

  • Windows Azure Connect (구 Project Sydney): 더욱 단순하고 관리하기 쉬운, 클라우드와 온 프레미스 사이의 IP 기반의 네트워크를 형성할 수 있도록 도움을 주는 서비스가 CTP로 런칭되었습니다. 현재는 별도의 비용을 받지 않는 CTP 버전으로 제공되며 Windows Azure Management Portal을 통하여 서비스를 신청하고 미리 테스트해보실 수 있습니다.

미국 시간 기준으로 2010년 12월 1일 오전 9시 (한국 시간은 2010년 12월 2일 오전 2시)에 Windows Azure Management Portal을 통하여 Overview 웹 캐스트 (http://go.microsoft.com/fwlink/?LinkID=207019)가 게시될 예정이니 관심있으신 분들께서는 꼭 살펴보시기 바랍니다. :-)

PDC10에서 발표된 Windows Azure 업데이트들을 다시 보시려면 http://www.microsoft.com/windowsazure/pdcannouncements/ 의 내용도 같이 확인하십시오.

출처: http://blogs.msdn.com/b/windowsazure/archive/2010/11/29/just-released-windows-azure-sdk-1-3-and-the-new-windows-azure-management-portal.aspx

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

이벤트2010. 11. 24. 02:13

요즈음 개그콘서트에서 한창 인기를 누리고 있는 "남하당 여당당"의 두 주인공이 직접 촬영한 Windows 7 Personal Cloud Life 캠페인 동영상, 보셨나요? 이 글을 쓰고 있는 현 시점에서 두 편의 동영상이 선 공개되었고 조만간 새로운 동영상들이 유익한 내용과 함께 여러분을 찾아가게 될 예정입니다. 나른하고 졸린 식곤증을 재미있는 개그 동영상과 함께, 그리고 유익한 정보를 함께 배우며 재미있게 보내보신다면 좋겠습니다. :-D

캠페인 홈페이지에서 이벤트 응모도 가능합니다. http://www.win7pc.co.kr/ 를 방문하시면 됩니다. :-)

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

이벤트2010. 11. 24. 02:04

이번주 토요일 오전 9시 30분부터 오후 5시 30분까지, 2010 대한민국 SW 개발자 컨퍼런스가 열립니다. 이번 컨퍼런스에서는 "개발자가 꼭 알아야 할 4대 IT 트렌드, 기술 이슈 및 미래 전망"이라는 주제로 모바일, 클라우드, 소셜, 웹에 대한 내용을 다루게 됩니다. 좋은 내용들이 많이 다루어질 예정이니 많은 관심과 참여 부탁드립니다. 유료 세미나입니다.

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

포트폴리오2010. 11. 19. 11:41

오늘 오전 10시부터 네이트 앱 스토어에서 Amazon Elastic Cloud 기반 Social App을 런칭하였습니다. 주식회사 SHESTORY의 서비스이며, QR 코드에 독창적인 컨텐츠를 부여하고 자신의 메시지를 남들에게 전달하거나 공유하고, 댓글 등을 통하여 의견을 받을 수도 있는 LinkupWith라는 App이며, Microsoft Silverlight 4를 사용하였고, 조만간 iPhone과 Android용 전용 QR Code Reader Application이 추가 공개될 예정입니다.

위의 이미지는 Silverlight 기반 Client UI로 주요 실행 화면들을 스크린 샷으로 촬영한 것입니다. App의 자세한 사용법은 http://club.cyworld.com/5451477817/43245835 에서 소개하고 있습니다. 이번에 사용한 클라우드 플랫폼은 Amazon EC2로, Windows Server 2008 x86 및 IIS 7에서 ASP.NET과 WCF를 사용하여 구현된 서비스입니다.

서비스 체험 바로가기: http://bit.ly/aOBxEI

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

PaaS2010. 11. 6. 01:41

알립니다: 이 블로그 게시물에서 설명하는 내용은 아직 출시되지 않은 제품과 서비스에 대한 내용을 다루는 것으로, 실제 사용 가능한 시점까지는 더 많은 기간이 소요될 수 있으나 정보 공유 차원에서 Professional Developer Conference 2010 행사에서 공개된 내용을 기반으로 내용을 말씀드립니다. 이 글의 출처 및 모든 이미지의 출처는 http://blog.toddysm.com/2010/10/remote-desktop-connection-to-windows-azure-instance.html 입니다.

Windows Azure에 대하여 가장 많은 요청이 있었고 가장 많은 관심을 받았던 업데이트들 중에서, 오늘은 Windows Azure 인스턴스를 원격으로 제어하기 위하여 앞으로 배포될 SDK와 서비스에서 어떻게 클라우드 서비스를 구성하면 될지 그 방법을 미리 살펴보는 글을 올립니다.

Windows Azure 서비스 패키지에 원격 데스크톱 연결 추가하기

1단계: 이제까지 해왔던 것처럼 Windows Azure 서비스 프로젝트를 만들고 테스트한 후 배포할 준비를 마치십시오.

 

위의 대화 상자를 볼 수 있는 단계까지 여러분의 클라우드 서비스가 준비되어있다면 이 글의 내용을 시험해 볼 수 있습니다. 새 버전의 SDK에서는 "Configure Remote Desktop Connections…" 링크가 "Enable IntelliTrace for .NET 4 roles" 체크 박스 바로 아래에 새로 나타날 것입니다. 링크를 클릭하면 다음과 같이 추가 대화 상자가 나타날 것입니다.

2 단계: 원격 데스크톱 연결 구성하기

 

이어서 나타나는 대화 상자에서, "Enable connections for all roles" 체크 박스에 체크합니다. 그리고, 보안 연결에 사용할 인증서를 선택하고, 원격 연결에 사용할 사용자 ID와 이름을 지정합니다. 해당 계정에는 반드시 계정 만료 기간을 지정하도록 되어있습니다. 한 가지 알아둘 점이 있다면, 이번에 같이 소개된 VM Role과는 다르게 웹 역할과 작업자 역할은 그 자체로 완성된 응용프로그램으로 볼 수 있으며 가능한 원격 연결을 사용하지 않더라도 완전하게 구동될 수 있는 것을 목표로 하는 것이 좋습니다. 또한, 온 프레미스 환경에서의 클라우드 운영과 다르지 않은 보안 목표를 설정할 수 있는데 바로 노출 영역의 최소화라는 관점입니다. 계정 날짜 만료는 이러한 목표를 달성할 수 있도록 돕습니다.

Windows Azure 호스팅 서비스를 통하여 배포하기

지금부터 설명할 내용은 새 버전의 실버라이트 기반 Windows Azure 호스팅 서비스 관리 도구를 기준으로 인증서와 클라우드 서비스를 배포하는 방법에 대한 내용입니다.

1단계: 화면 좌측 하단에 있는 Compute, Storage & CDN 탐색 영역을 클릭하여 화면을 이동합니다.

 

2단계: 새로 나타나는 트리 뷰에서 Compute Services 노드를 클릭하면 우측의 화면이 아래와 같이 바뀌게 됩니다.

 

3단계: 상단의 리본 메뉴의 New 섹션 안에 있는 New Hosted Service 버튼을 클릭하면 아래와 같은 대화 상자가 나타납니다. 앞 단원에서 설명한 대로 진행하기 위해서, 아직은 실제 클라우드 서비스 패키지를 배포하지 않습니다. 여기서 미리 배포를 하기 위해서는 앞 단원에서 설명한 클라우드 서비스 패키지와 매칭할 수 있는 인증서가 클라우드 서비스에 미리 등록되어있어야 합니다. Deploy 그룹 아래의 Do not deploy 버튼을 선택하고, 서비스 이름과 서비스 별칭을 지정, Affinityp Group, Region 등을 설정한 후 OK 버튼을 클릭합니다.

 

4단계: 이제 별도의 인스턴스가 생성되지 않은 서비스가 구독 항목 아래에 생성되는 것을 볼 수 있습니다. 우측 트리 뷰에서 Compute Services 항목을 펼칩니다.

 

5단계: Compute Services 노드 아래에 인증서를 등록할 수 있도록 별도의 옵션이 나타나는 것을 볼 수 있습니다. Service Certificates 노드를 선택하고, 상단의 리본 메뉴에서 Certificates 섹션 아래의 Add Certificate 버튼을 클릭합니다.

 

6단계: 아래 대화 상자에서, 개인용 인증서 파일과 암호, 그리고 인증서로 증명할 대상 Hosted 서비스를 선택하고 Create 버튼을 클릭합니다.

 

7단계: 새 인증서가 Grid Control에 등록되는 것이 보인다면, 이제 다시 우측의 Compute Services 노드를 클릭하여 이전 화면으로 되돌아갑니다.

 

8단계: 4단계에서 생성한 클라우드 서비스를 선택하고, 상단의 리본 메뉴에서 New 섹션의 New Production Deployment – 또는 – New Staged Deployment 버튼을 클릭합니다. Production Deployment는 3단계에서 설명한 서비스 주소에 직접 연결되는 인스턴스를 생성할 수 있도록 하고, Staged Deployment는 임시 주소를 할당 받아 인스턴스를 생성할 수 있도록 해주지만 언제든 Production Deployment로 서비스 중단 없이 곧바로 교체할 수 있도록 준비되는 인스턴스들입니다. 아래 대화 상자에서 CSPKG 파일과 CSCFG 파일을 컴퓨터에서 찾아 지정하고, OK 버튼을 클릭합니다.

 

9단계: 전보다 더 보기 쉽고 안정적으로 동작하는 UI에서 실시간으로 인스턴스들의 상태가 가지런히 열거됩니다.

 

아래 그림처럼 모든 인스턴스들의 상태가 Ready로 바뀔 때까지 기다립니다.

 

이제 Ready로 표시된 인스턴스 하나를 클릭해 봅니다. 그러면 상단의 리본 메뉴에 Remote Access 섹션에 Connect 버튼이 활성화되는 것을 볼 수 있습니다. 클릭하면 브라우저의 다운로드 기능을 통하여 해당 인스턴스에 직접 접속할 수 있는 RDP 스크립트 파일의 다운로드를 허용할 것인지를 묻는 창이 나타납니다. 이렇게 생성된 RDP 파일은 USB 저장 장치나 바탕 화면 등에 보관하여 원격 데스크 톱 클라이언트와 함께 가지고 다니면서 사용할 수 있습니다.

 

많이 보던 시나리오인 것을 알 수 있습니다. Amazon Elastic Cloud Computing에서 호스팅되는 Windows Server와 마찬가지로 원격 제어 기능이 이제 개별 인스턴스에 대해서도 가능해졌습니다. 그리고 이러한 기능을 통하여 Windows Azure 기술 지원 팀에게 직접 설명하기 어렵고 민감한 조치 사항들을 고민하지 않고, 쉽고 빠르고 안전하게 문제를 해결하거나 진단할 수 있게 되었습니다. J

간단히 살펴본 새로운 기능과 새 관리자 도구였습니다. 올해 연말, 그리고 내년 연초에는 이러한 기능들이 모두 실제로 사용할 수 있도록, 그리고 좀 더 개선된 형태로 Windows Azure 고객들에게 제공될 예정이니 많은 기대를 하셔도 좋겠습니다.

감사합니다.

안내 - 이 글의 출처 및 모든 이미지의 출처는 http://blog.toddysm.com/2010/10/remote-desktop-connection-to-windows-azure-instance.html 입니다.

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

기술 소식2010. 11. 5. 00:35

이번 PDC 2010에서 공개된 Windows Azure의 개선 사항 및 향후 업데이트 내용들을 한번에 정리하여 블로그 포스트로 올립니다.

엔터프라이즈 클라우드를 위한 개선 사항

  • 가상 컴퓨터 역할 (VM Role - http://www.microsoft.com/windowsazure/compute/#vmrole)이 추가되어, 기존의 Windows 응용프로그램은 물론 새 Windows 기반 응용프로그램도 Windows Azure에서 직접 실행할 수 있는 환경이 마련됩니다.
  • 웹 역할은 IIS 7.5 전체 사양 지원을 통하여, 좀 더 완성된 웹 응용프로그램과 미들웨어를 Windows Azure에서 호스팅할 수 있게 되었습니다.
  • 웹 역할과 작업자 역할의 경우, 관리자 권한 개념이 추가되어 소프트웨어 구동에 필요한 COM 서버, ActiveX 컨트롤, COM+ 서버 등을 64비트 내의 32비트 호환 모드 - 또는 - 64비트 모드에서 미리 설치하여 구성할 수 있게 되어 더욱 다양한 서버 환경을 호스팅할 수 있게 되었습니다.
  • 원격 데스크톱 기능을 각각의 인스턴스에 허용하여, 실행 중인 인스턴스에서 발생하는 다양한 문제점을 Windows Azure Team의 기술 지원이 완료되기까지 기다리지 않고 직접 관리자 재량으로 수행할 수 있는 방안이 제공됩니다. 이는 웹 역할, 작업자 역할에도 동일하게 적용됩니다.
  • 새로운 클라우드 기반의 네트워킹 기능이 Windows Azure 가상 네트워크 아래에서 제공되며, 첫 단계로 Windows Azure Connect가 (http://www.microsoft.com/windowsazure/virtualnetwork/default.aspx) 현재 CTP 발표 준비 중에 있습니다. Windows Azure Connect는 이전에 Codename: Sydney로 발표된 적이 있었으며, IP 기반의 네트워크를 기존의 온 프레미스 환경과 Windows Azure의 클라우드 환경 사이에 형성할 수 있도록 하여 Windows Azure의 다양한 리소스를 인터넷이 아닌 로컬 네트워크 수준에서 손쉽게 관리하고 공유할 수 있는 메카니즘을 제공하게 됩니다.

더욱 합리적인 플랫폼 접근

클라우드 컴퓨팅을 운영하면서 가장 이슈가 되는 부분은 비용에 관한 부분이며, 이에 대한 답으로 이번 PDC 2010에서는 최대한 저렴하게 개발하고 테스트할 수 있는 방안으로 기존의 소형 인스턴스 요금보다 최대 50% 이상 저렴한 Extra Small 인스턴스를 제공합니다. 그리고 Microsoft 파트너 회원사를 위하여 Cloud Essential Pack 요금제의 출시를 앞두고 있다는 소식도 있습니다. (http://www.microsoft.com/windowsazure/faq/#partners)

향상되는 서비스

  • 실버라이트 기반의 새 Windows Azure 포털 서비스는 이전과는 완전히 다릅니다. 더 사용하기 쉽고, 더 직관적이며, 더욱 강력한 기능들을 제공할 것입니다.
  • 현재 제공되는 진단 정보 (Diagnostic Information)에 새로운 항목이 더 추가됩니다. 역할의 종류를 확인하고, 배포된 시간과, 최근 해당 인스턴스나 역할이 다시 기동된 시점을 알아볼 수 있습니다.
  • 새로운 가입 절차를 기획 중에 있으며, 이를 통하여 지금보다 더 빠르고 간편하게 Windows Azure 서비스에 가입할 수 있게 될 것이라고 합니다.
  • 시나리오 기반의 Windows Azure Platform 포럼을 통하여 다양한 상황에 따라 손쉽게 대처하고 도움을 구할 수 있는 커뮤니티 및 피드백 시스템을 형성해 나갈 것이라고 합니다. (http://social.msdn.microsoft.com/Forums/en-US/category/windowsazureplatform)
  • Windows Azure Marketplace가 새로 발표되었습니다. Windows Azure Marketplace에는 향후 여러 종류의 마켓이 추가될 것이며 여기에는 데이터 뿐만 아니라 소프트웨어, 서비스, 빌딩 블럭 등 클라우드 환경 구축에 필요한 다양한 제품의 판매를 목적으로 합니다. 첫 번째 마켓으로, Codename: Dallas가 정식으로 DataMarket(https://datamarket.azure.com/)으로 데뷔합니다.

2011년 중에 발표될 예정인 업데이트들

  • 동적 컨텐츠 캐시: 지금은 BLOB 저장소에서 공개 권한으로 열려있는 파일에 대한 CDN 서비스만이 가능하지만, 직접 운영하는 Windows Azure 응용프로그램에서 API를 사용하여 CDN 서비스로 게시할 컨텐츠를 직접 설정할 수 있게 됩니다.
  • CDN SSL 지원: 현재는 일반적인 유형의 CDN 서비스가 제공되지만, SSL/TLS 기반의 암호화된 내용을 바탕으로 데이터를 전달하는 CDN 서비스가 추가될 예정입니다.
  • CDN 노드 추가 개설: 중동 국가들을 경유하는 노드가 추가될 예정에 있으며, 현행 미국과 브라질 간 연결 속도를 더 개선할 예정입니다.
  • 주문형 VM 역할 제작 서비스: VM 역할이 발표된 직후에는 온 프레미스 환경의 Windows Server 2008 R2 기반의 컴퓨터만을 Physical to Virtual (P2V) 도구를 이용하여 VM 역할로 변환이 가능하지만, 새로운 인스턴스의 생성을 관리 도구 수준에서 가능하게 할 예정입니다. 이는 기존의 가상화 기반 클라우드 서비스들이 제공하는 것과 동일한 컨셉입니다.
  • 2011년 중에 VM 역할로 사용할 수 있는 서버 운영 체제로 Windows Server 2003과 Windows Server 2008 SP2가 추가될 것입니다. 발표 직후에는 Windows Server 2008 R2에만 한정됩니다.
  • Java 개발자를 위한 지원 향상: 현재와 같이 Visual Studio - 또는 - Visual Web Developer에 JRE나 JDK를 같이 배포하는 방식이 아닌, Java를 직접 Windows Azure 개발 환경에 사용할 수 있도록 Eclipse용 개발 도구와 라이브러리가 향상될 것이며, 2011년 중에 이에 대한 새로운 내용이 발표될 것입니다. 이로서 Windows Azure를 이용하는 사업자는 .NET 이외에도 Java를 프로그래밍 언어로 직접 선택할 수 있습니다. Microsoft는 이러한 전략에 대하여, Java를 Windows Azure의 First Citizen으로 향상시키는 것으로 표현하고 있습니다.

출처: http://blogs.msdn.com/b/windowsazure/archive/2010/10/28/you-spoke-we-listened-and-responded.aspx

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

PaaS2010. 11. 2. 23:45

Windows Azure 코드 샘플을 한 곳에 모아서 찾아보기 쉽게 만든 블로그 아티클이 있어서 올려봅니다. Windows Azure 실전 예제에 관심있으신 분들께 도움이 되셨으면 합니다. :-)

예제 응용프로그램

아키텍처 및 디자인 예제

  • 코드 갤러리
    • 동적 스케일링 샘플 - 처리량에 대응하여 동적으로 인스턴스의 수가 늘어나고 줄어드는 것을 보여주는 다중 역할 샘플입니다: http://code.msdn.microsoft.com/azurescale
  • 본사 DPE 부서에서 작성한 예제
    • Project Riviera - 동적 스케일링 샘플에서 더 확장된 예제로, 윈도 애저 스토리지, Windows Workflow, 액티브 디렉터리 페더레이션 서비스, Patterns & Practices Enterprise Library 캐싱 및 로깅 응용프로그램 블럭, 윈도 라이브 ID 인증 등 엔터프라이즈 및 아키텍처에서 등장하는 기술들이 골고루 사용된 고급 샘플입니다: http://code.msdn.microsoft.com/riviera
  • Patterns & Practice - Windows Azure Platform을 위한 아티클이 새로 업데이트되고 있는 중입니다.

클레임 / 아이덴티티 예제

환경 설정

데이터 액세스 및 스토리지 예제

응용프로그램 배포

일반적인 내용들

로깅 및 운영 전략

기존 응용프로그램을 클라우드로 마이그레이션
서비스 버스 (AppFabric)
서비스 관리 API
SQL 애저
WCF (Windows Communication Foundation)
윈도 애저 스토리지
Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

PaaS2010. 11. 1. 19:35

최근 열린 Professional Developer Conference 2010 (이하 PDC 2010)에서, Windows Azure Platform의 실행 환경을 담당하는 Windows Azure Compute에 획기적인 기능이 추가되었습니다. 바로 VM Role의 추가인데, 여기에는 상당히 시사하는 점이 많습니다. VM Role은 이전 글 "[Software Development/Windows Azure] - PDC 2010에서 공개된 Windows Azure 업데이트"의 내용에서 소개했던 것 처럼 Windows Server 2008 R2 기반의 서버 컴퓨터를 Physical Machine to Virtual Machine (이하 P2V) 기술을 통해 Windows Azure에서 실행 가능한 Cloud Computing Appliance로 변환할 수 있습니다.

이 덕분에 좀 더 많은 종류의 서버 응용프로그램이 Windows Azure Platform의 수혜를 얻을 수 있게 됩니다. 이 중에는 기존의 전통적인 Microsoft Back Office Server들에 대한 것은 물론이거니와, 이전에 우리에게 Service For Unix라는 이름으로 잘 알려진 Microsoft의 Unix 호환성 도구인 SFU 및 SUA의 이점을 충분히 활용할 수 있게 될 것입니다. 즉, 기존에 FreeBSD, NetBSD, Linux, POSIX용 응용프로그램을 성공적으로 Windows Server 기반의 응용프로그램으로 마이그레이션할 수 있었다면, 약간의 수정을 통하여 성공적으로 Public Cloud Computing을 위한 응용프로그램으로도 출사표를 낼 수 있음을 뜻합니다.

SFU 및 SUA가 혹시 낯설다면, Cygwin 프로젝트를 참조하셔도 좋습니다. 그리고, 당연한 이야기이지만 Cygwin 프로젝트 기반의 유닉스 응용프로그램에게도 같은 혜택이 제공될 수 있습니다.

아래는 SUA 설치 과정 및 SUA에 대한 설명 동영상입니다. SUA Community 웹 사이트 http://www.suacommunity.com/ 에 방문하시면, SUA 위에 추가 설치 가능한 주요 유틸리티 패키지들을 더 추가하실 수 있으므로 요즈음 널리 사용되는 유닉스 기반 인기 유틸리티들을 Windows에서도 사용하실 수 있습니다. 아래 동영상은 SUA Community에서 제작한 동영상이며 저작권은 해당 원 저작자에게 있음을 밝힙니다.

SUA Installation Video

SUA Familization Video

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

IaaS2010. 10. 29. 11:43

최근에 발표된 Microsoft의 Cloud 관련 솔루션들 중에서도 비즈니스 사용자들에게 가장 많은 호평을 받고 있는 솔루션이 하나 있습니다. 그 주인공은 바로 Office365 서비스입니다. Office365는 기존의 Microsoft BPOS 솔루션을 새롭게 묶어서 런칭한 서비스로 현재 베타 서비스 단계에 있습니다.

이제 Office 뿐만 아니라, Exchange, SharePoint, Lync까지 한번에 구매하고 사용할 수 있는 클라우드 서비스로 제공됩니다. Office Web App을 통하여 Office가 설치되지 않은 Windows - 또는 - 비 Windows PC에서 곧바로 문서를 편집하거나 볼 수 있고, Exchange는 전자 메일 서비스를, SharePoint는 사내 포털, 협업, CMS 서비스를, Lync는 사내 메시징 시스템을 제공하는 수단이 되며 이러한 서비스의 구축을 위하여 Private Cloud를 힘들게 구축하지 않아도 손쉽게 활용이 가능합니다.

다음은 Office 365 활용 시나리오를 설명하는 5분짜리 동영상입니다.

Microsoft의 차세대 Cloud 전략의 한 축을 담당할 Office365를 미리 경험해보실 수 있습니다. http://www.office365.com/ 에 방문해서 자세한 내용도 살펴보시길 권합니다. :-D

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

기술 소식2010. 10. 29. 09:26

이번 PDC 2010의 핵심 주제이기도 했던 클라우드 컴퓨팅과 더불어서, Windows Azure Platform에 대대적인 업데이트가 있을 예정임이 다양한 발표자들에 의하여 키노트에서 언급되었습니다. 오늘 오후에 업데이트할 PDC 2010 키노트 요약 포스팅 이전에 중요한 내용들만을 먼저 간추려 올립니다. 아래의 글은 http://www.microsoft.com/windowsazure/compute/default.aspx 에 PDC 2010 키노트 발표 직후 업데이트된 새로운 사항들을 번역한 글입니다.

드디어 등장! Virtual Machine Role

올해 봄에, VM Role의 등장이 예고된 바가 있었습니다. 하지만 확정된 자료, CTP 발표 등이 없는 상태에서 소문만 무성했었는데요, 이번 PDC 2010 키노트에서 베일을 벗었습니다. VM Role이란, 말 그대로 여러분이 구축한 가상 PC의 하드 디스크 이미지를 이용하여 Windows Azure에 클라우드 컴퓨팅 인스턴스를 생성할 수 있는 인스턴스 타입으로 기존의 Web Role과 Worker Role에 이어 새로 추가된 유형의 Role입니다.

VM Role을 이용하여 구동할 수 있는 OS의 종류는 Windows Server 2008 R2에 한정됩니다. 그리고 기존에 구축한 Windows Server 2008 R2 서버 컴퓨터로부터 VHD 이미지를 생성하여 Windows Azure BLOB Storage로 업로드하게 됩니다. 만들어진 VHD 이미지는 필요한 시기에 동적으로 관리 도구에 의하여 적재되고 부팅될 수 있으므로 가상 PC 인스턴스의 복제 작업이 훨씬 더 간단해집니다. 당연한 이야기이지만, VM Role을 어떻게 구성할 것인지는 전적으로 고객 여러분의 몫입니다.

Web Role과 Worker Role의 향상

그렇다면 Web Role과 Worker Role은 전혀 필요가 없게 되는 것일까요? 그렇지 않습니다. 대부분의 경우 여러분이 클라우드에 게시하려는 응용프로그램의 스타일은 클라우드에 이미 친화적입니다. 이는 ASP.NET 기반의 웹 사이트에서부터 일반적인 TCP 소켓 기반의 데몬 서버에 이르기까지 매우 포괄적입니다. 그리고 목적에 알맞는 Role 선택은 Cloud 환경에서의 비용을 감소시켜줄 수 있습니다.

VM Role의 등장과 더불어서 Web Role과 Worker Role은 한층 더 사용하기 편리해지게 됩니다. 이전까지는 Web Role과 Worker Role의 실행 환경에 대해 제일 많이 혼선을 빚었던 부분 중 하나인 관리자 권한의 부재가 있었습니다만, 이번 업데이트를 통하여 Web Role과 Worker Role에도 관리자 권한이 주어지게 됩니다. 동시에, IIS 7.0의 전체 기능을 모두 사용할 수 있도록 Web Role도 기능이 확장됩니다. 이에 따라 하나의 Web Role이 동시에 여러 사이트를 호스팅할 수 있게 되기도합니다. 그리고, Remote Desktop 연결 기능이 추가됨에 따라 실행 중인 인스턴스를 모니터링하거나 문제를 해결하기 위하여 직접 접속하여 조치를 실행할 수도 있게 됩니다.

VM Role에 대하여

VM Role은 Windows Server 기반의 환경을 Windows Azure로 빠르게 마이그레이션하기 위한 수단으로 제공됩니다. 이는 Windows Server 기반의 응용프로그램을 마이그레이션하면서 필요로 할 수 있었던 시간이 오래 걸리고, 자동화되지 않았으며, 손상되기 쉬운 과정을 최소화합니다. VM Role이 더 높은 유연성과 자유로운 제어에 대한 이점을 제공하는 것과는 별도로, 기존의 Web Role과 Worker Role 역시 더 많은 이점을 제공한다는 사실도 충분히 검토하십시오. Web Role과 Worker Role을 기반으로 한다면, 운영 체제 하부에 대한 제어를 거의 하지 않고 클라우드 환경에 대한 개발자 여러분들의 목표와 기대치 설정을 완벽하게 재현할 수 있을 것입니다. 그리고, 기존과 마찬가지로 Visual Studio를 통한 Windows Azure 개발은 Web Role과 Worker Role에 알맞게 디자인되고 더욱 향상될 것입니다. 또한, Web Role과 Worker Role을 사용하여 클라우드 응용프로그램을 개발한다면, 추상화된 개발을 지향하기 때문에 자동화된 업데이트의 이점을 충분히 누릴 수 있습니다.

VM Role과 관리자 권한 중에서 어떤 것을 택하면 좋습니까?

VM Role과 관리자 권한 기능은 Windows Azure 환경으로의 이관을 검토하는데 큰 변수가 되었던 환경 전반에 대한 제어에 관한 문제점을 완벽하게 해결할 것입니다. 그러나, IIS의 구성 요소를 일부 수정하거나, 특정 MSI 패키지를 설치하는 정도의 작업에 대하여 VM Role보다는 관리자 권한으로 액세스할 수 있는 향상된 Web Role과 Worker Role의 사용을 권장합니다. 이는 잦은 변경 사항이 지속적으로 발생할 수 있는 서비스 환경에 최적화되어있으며, 추상화된 개발 환경을 바탕으로 최신 업데이트의 신속한 적용을 통한 완벽한 서비스를 가능하게 합니다. 만약 복잡한 변경 사항이나 환경 설정을 수용해야 하거나, 시스템 전반에 걸쳐서 다양한 역할을 수행해야 하는 경우, VM Role이 더 좋은 선택이 될 수 있습니다. VM Role의 경우도, 게스트 OS의 자동 업데이트에 관한 부분을 제외하면 로드 밸런싱이나 장애 진단 - 또는 - 극복의 이점을 충분히 누릴 수 있습니다.

만약 VM Role과 관리자 권한에 대한 좀더 자세한 내용이나 최신 정보에 대한 업데이트를 받기 원한다면 http://msdn.microsoft.com/en-us/library/dd179416.aspx 페이지를 방문하십시오.

새 컴퓨터 인스턴스 레벨 제공: 극소형 (Extra Samll) 인스턴스

이번 PDC 2010에서 새로운 종류의 인스턴스 레벨이 하나 더 발표되었습니다. Extra Small (극소형) 인스턴스 레벨이 새로 추가되었으며 이제 사용할 수 있는 기본 인스턴스 레벨이 총 5가지가 됩니다. 극소형 인스턴스는 기존의 소형 (Small) 인스턴스보다 더 개발자에게 저렴하고 쉬운 개발 환경을 제공합니다. 자세한 내용은 아래 도표롤 참고하십시오.

인스턴스 레벨 CPU 메모리 로컬 스토리지 I/O 성능 시간당 과금
Extra Small
(극소형)
1.0 GHz 768 MB 20 GB Low
(낮음)
$0.05 (하루 $1.2)
Small
(소형)
1.6 GHz 1.75 GB 225 GB Moderate
(보통)
$0.12 (하루 $2.88)
Medium
(중형)
2 x 1.6 GHz 3.5 GB 490 GB High
(높음)
$0.24 (하루 $5.76)
Large
(대형)
4 x 1.6 GHz 7 GB 1,000 GB

High
(높음)

$0.48 (하루 $11.52)
Extra large
(특대형)
8 x 1.6 GHz 14 GB 2,040 GB High
(높음)
$0.96 (하루 $23.04)










 

 

 

VM Role의 가격과 라이센싱

VM Role의 가격 정책은 기존의 Web Role과 Worker Role과 다르지 않을 것입니다. VM Role 고객들에게는 기존과 마찬가지로 위의 컴퓨터 인스턴스 등급에 따라 시간당 과금이 적용됩니다. 그리고 기존의 Web Role이나 Worker Role과는 달리, Windows Server 라이센싱 비용이 좀 더 추가 될 것입니다.

Windows Server 2008 R2에 대한 라이선스는 WIndows Azure VM Role 라이선스로 대체됩니다. 이미지로 만들고자 하는 기존의 Windows Server 2008 R2에 대한 라이선스는 볼륨 라이센싱으로 획득한 제품이어야 하며, 이렇게 만들어진 이미지를 Windows Azure VM Role로 실행할 때에는 기존 라이선스와는 별도로 새로운 라이선스 정책 아래에서 실행이 됩니다. 추가적으로, Windows Azure VM Role 베타 기간 동안에는, 개발자들은 64비트 버전의 Windows Server 2008 R2 기반 VM Role을 직접 Windows Azure 환경에 배포할 수 있습니다. 기타 MSDN 라이선스 및 구독 등을 통해 활성화된 Microsoft의 제품들은 개발과 테스트 목적에 한하여 VM Role위에서 사용이 가능합니다. Microsoft는 2011년 5월까지 고객들과 파트너들로부터 다양한 피드백을 수집할 예정에 있으며, 이에 따라 여러가지 개선 방안이 새롭게 적용될 수 있다고 합니다. 또한, 이 기간 동안 설치되는 모든 종류의 써드파티 소프트웨어들에 대해서는 해당 소프트웨어 제조사들의 라이선스 정책에 따라 사용 가능/불가 여부 및 책정 금액이 변동될 수 있습니다.

Windows Azure VM Role에 연결할 때에는 기존에 사용하던 Client Access License (CAL)가 적용되지 않습니다. 또한 기존의 Windows Server 2008 R2 라이선스를 Windows Azure VM Role을 위한 라이선스로 전환하거나 혹은 VM Role을 위한 라이선스를 On-Premise 환경을 위한 라이선스로 전환하는 것은 인정되지 않습니다. 양쪽이 서로 독립된 라이선스이며 호환성이 없음을 의미합니다.

출처: http://www.microsoft.com/windowsazure/compute/default.aspx

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

  1. VM롤과 관련해서 아주 깔끔한 번역 내용 잘 보고 갑니다.

    2010.10.29 14:15 신고 [ ADDR : EDIT/ DEL : REPLY ]

기술 소식2010. 10. 27. 08:55

PDC2010이 미국 시간으로 2010년 10월 28일 목요일 오전 9시부터, 우리나라 시간으로 2010년 10월 29일 금요일 새벽 1시부터 이틀간 열립니다. 아래는 이번 PDC2010에서 소개되는 라이브 세션 및 사전 녹화 세션들의 요약 내용을 정리한 것으로, PDC2010 행사 종료 이후에 블로그에 관련 내용, 강의 자료, 동영상 등을 하나씩 소개하며 업데이트해나갈 예정입니다.

이번 PDC 2010에서 클라우드 컴퓨팅에 관하여 언급되는 세션의 수는 라이브 세션 총 13개와 사전 녹화 세션 8개로, 총 21개 세션에 걸쳐서 클라우드 컴퓨팅 전반에 대한 내용을 언급하게 됩니다. 아래의 세션들 중에서 굵은 글씨에 밑줄로 표시한 항목은 On-Demand 서비스로 제공될 때, 블로그 아티클 등의 형태로 추가적인 내용을 게시하거나, 한국어로 번역하여 내용을 공유할 예정입니다.

[2010.10.27 Update]: 한국 Microsoft 박중석 대리님의 Blog Posting을 일부 인용하여 세션 요약을 추가하였습니다. http://blogs.msdn.com/b/eva/archive/2010/10/26/pdc10-13.aspx

PDC2010 Key Note
- 발표: Steve Ballmer and Bob Muglia
- 미국 시간: 2010년 10월 28일 목요일 오전 9시
- 한국 시간: 2010년 10월 29일 금요일 오전 1시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/6f853fa2-06f6-45e5-ac25-18c31cc4ba32
- 세션 요약: 첫째 날은 먼저 Bob Muglia와 Steve Ballmer가 진행하는 키 노트에서 Microsoft의 Cloud 와 관련한 놀라운 소식들을 들으실 수 있을 것으로 생각 합니다. 실제 클라우드 플랫폼을 이용하는 데 있어서 보다 성숙된 서비스들로 예상되며 클라우드 플랫폼을 고려한 업체라면 고민했을 만한 것들이 될 것 입니다. 다른 세션들을 보실 시간이 없더라도 이 키 노트만큼은 보실 것을 추천 드립니다.

** Live Sessions **

Building Windows Phone 7 applications with the Windows Azure Platform
- 발표: Steve Marx (Kodiak Room)
- 미국 시간: 2010년 10월 28일 목요일 오전 11시 30분
- 한국 시간: 2010년 10월 29일 금요일 오전 3시 30분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/58d670be-bd26-4ee3-9db1-5f2767eba4f8
- 세션 요약: Windows Azure 플랫폼과 함께 Windows Phone 7 용 애플리케이션을 개발하는 세션으로 Windows Azure 전문가로 많이 알려진 Steve Marx가 진행을 합니다. 윈도우 폰 7이 화두가 되고 있는 만큼 특정 Device가 이용하는 서비스를 클라우드에 올리는 시나리오로서 도움이 될 것으로 생각 합니다.
Learn how to build Windows Phone 7 applications that are backed by scalable cloud components hosted in Windows Azure. This demo-heavy session will cover best practices relating to communication, authentication, and data synchronization between phone applications and cloud components.

Building, Deploying, and Managing Windows Azure Applications
- 발표: Jim Nakashima (Hood Room)
- 미국 시간: 2010년 10월 28일 목요일 오전 11시 30분
- 한국 시간: 2010년 10월 29일 금요일 오전 3시 30분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/19c4c834-3cae-408c-96f0-e87bfad92cff
- 세션 요약: 이전 컨퍼런스에서 실제 데모를 엮은 좋은 발표를 보여줬던 Jin Nakashima의 발표로서, 실제적으로 Windows Azure를 개발 및 배포하는 과정을 보여줄 것으로 보입니다.
In order to take full advantage of Windows Azure and SQL Azure, you need to know more than just how to write the code. You need to know how to incorporate your application in a team environment, deploy, monitor, manage and retrieve diagnostic information back from the cloud. In this session, you will learn everything you need to know to be successful with a project that utilizes Windows Azure and SQL Azure including setting up your development environment, automating build, unit test and deployments to different deployment environments from staging to production, and managing credentials and user roles using the Windows Azure Portal.

Migrating and Building Apps for Windows Azure
- 발표: Mohit Srivastava (McKinley Room)
- 미국 시간: 2010년 10월 28일 목요일 오후 2시
- 한국 시간: 2010년 10월 29일 금요일 오전 6시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/94694704-1b10-49fd-a09d-574c8bb364b8
- 세션 요약: 키노트에서 발표할 기술을 이용해서 기존 애플리케이션들을 윈도우 애저에 올리는 것에 대한 내용이 다루어 집니다. 기존의 애플리케이션 이동이 얼마나 쉬운지 여부가 Windows Azure와 같은 Cloud 플랫폼에서는 가장 중요한 이슈가 되겠지요.
In this session you will learn how to run your existing applications on Windows Azure using some of the new features that we’ll announce during the keynote.

Composing Applications with AppFabric Service
- 발표: Karandeep Anand (Kodiak Room)
- 미국 시간: 2010년 10월 28일 목요일 오후 3시 15분
- 한국 시간: 2010년 10월 29일 금요일 오전 7시 15분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/c3c5f2d9-0481-4be1-9742-4dfa4de184d0
- 세션 요약: Service Bus와 Access Control의 기능이 있는 Windows Azure AppFabric 서비스에 대한 세션 입니다. 새로 출시되는 서비스도 같이 소개가 될 것 같네요.
AppFabric provides a rich set of application platform services as part of the Windows Azure Platform to enable developers to create line of business applications that span multiple tiers and technologies. Learn how to create scalable web-based & hosted applications in the cloud, compose them with other cloud services (such as SQL Azure Database and other forthcoming new services) and integrate them with on-premises systems using Windows Azure AppFabric technologies like Service Bus and Access Control services. This session will also cover the roadmap of AppFabric Services and demonstrate how developers will get richer application building blocks, development tools & management capabilities to compose and manage a distributed application using the Windows Azure Platform. Come and see how AppFabric Services can be integrated in to your application development & management lifecycle to reduce time & cost.

Enabling New Scenario and Applications with Data in Cloud
- 발표: Dave Campbell (Hood Room)
- 미국 시간: 2010년 10월 28일 목요일 오후 4시 30분
- 한국 시간: 2010년 10월 29일 금요일 오전 8시 30분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/64f43e11-f88f-4e59-954b-fadeaf5f3537
- 세션 요약: 달라스와 같은 데이터를 클라우드를 이용해서 새롭게 활용할 수 있는 방법에 대한 세션이며, 역시 새로 출시되는 서비스에 대한 이야기가 나올 것 같네요.
The cloud enables new scenarios for sharing and consuming data. In this session you will learn how to differentiate your applications by building them on top of Windows Azure platform and leveraging visualization and access to private, public and premium content available through Microsoft Codename “Dallas”. You will also learn how to use some of the new services and features announced at the PDC.

Connecting Cloud & On-Premises Apps with the Windows Azure Platform
- 발표: Yousef Khalidi (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 9시
- 한국 시간: 2010년 10월 30일 토요일 오전 1시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/fe7e140b-de62-4768-9306-23d0bdcabc5c
- 세션 요약: 온프레미스 애플리케이션과 클라우드 애플리케이션의 연동이라는 화두로 진행되는 세션으로 Windows Azure AppFabric이 중심이 될 것 같네요.
Not every application or service can be hosted entirely in the cloud. Cloud services often need to provide a combination of cloud-based data access as well as connectivity to on-premises assets in a variety of geographies. Getting access to your on-premises or partner hosted assets securely has never been easier. In this session, learn how to securely connect applications today that span the cloud to on-premises world using Windows Azure AppFabric Service Bus and SQL Azure Data Sync Service. Also, gain insight into future scenarios and technologies for assembling these types of services.

Open in the Cloud: Windows Azure and Java
- 발표: Vijay Rajagopalan (Cascade Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 9시
- 한국 시간: 2010년 10월 30일 토요일 오전 1시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/6ae95ba0-c185-4546-9d66-2604ac6b6cef
- 세션 요약: 오픈 클라우드로서 여러 개발 플랫폼들이 동작할 수 있는 Windows Azure의 모습을 Java 개발로서 보여주는 세션.
The Windows Azure Platform is an open and interoperable platform which supports development using many programming languages and tools. In this session, you will see how to build large-scale applications in the cloud using Java, taking advantage of new Windows Azure Platform features. You will learn how to build Windows Azure applications using Java with Eclipse, Apache Tomcat, and the Windows Azure SDK for Java.

Identity & Access Control in Cloud
- 발표: Vittorio Bertocci (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 10시 15분
- 한국 시간: 2010년 10월 30일 토요일 오전 2시 15분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/0099d03d-bbc4-4612-87e1-f7d4da8b8a78
- 세션 요약: 보안이 클라우드에서 매우 중요한 이슈가 될 것이므로, 이를 위해서 필요한 Windows Identity Foundation 및 Windows Azure AppFabric의 Access Control 확인 할 수 있는 세션
Signing users in and granting them access is a core function of almost every cloud-based application. In this session we will show you how to simplify your user experience by enabling users to sign in with an existing account such as a Windows Live ID, Google, Yahoo, Facebook, or on-premises Active Directory account, implement access control, and make secure connections between applications. You will learn how the AppFabric Access Control Service, Windows Identity Foundation, and Active Directory Federation Services use a claims-based identity architecture to help you to take advantage of the shift toward the cloud while still fully leveraging your on-premises investments.

Windows Azure Storage Deep Dive
- 발표: Jai Haridas (Kodiak Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 10시 15분
- 한국 시간: 2010년 10월 30일 토요일 오전 2시 15분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/1c6f9726-11c6-4ed1-97e6-0bcaf7ee6660
- 세션 요약: 클라우드로 애플리케이션 옮길 때 가장 먼저 고려할 것중의 하나인 Storage 에 대해서 좀 더 깊이 있게 알아보는 세션
Windows Azure Storage is a scalable cloud storage service that provides the ability to store and manipulate blobs, structured non-relational entities, and persistent queues. In this session you will learn tips, performance guidance, and best practices for building new applications or migrating an existing applications that use Windows Azure Storage.

Inside Windows Azure
- 발표: Mark Russinovich (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오전 11시 30분
- 한국 시간: 2010년 10월 30일 토요일 오전 3시 30분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/18a38105-520f-486a-9e04-d956736e506d
- 세션 요약: 애저 개발 팀에서 이야기 하는 Windows Azure가 동작하는 하부 단의 이야기를 들려 줍니다. 매우 관심 가는 세션 입니다.
Join Mark Russinovich, now working on Windows Azure, for an under the hood tour of the internals of Microsoft’s new cloud OS. Topics will include datacenter architecture, cloud OS architecture, and what goes on behind the scenes when you deploy a service, a machine fails or comes online and a role fails

Building Scale-Out Database Solutions on SQL Azure
- 발표: Lev Novik (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오후 2시
- 한국 시간: 2010년 10월 30일 토요일 오전 6시
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/591d586f-3732-4bff-8ee2-857f27d74df4
- 세션 요약: 현재 SQL Azure의 경우는 최대 50G사이즈이지만, 보다 더 큰 용량이 필요한 서비스를 위한 세션
SQL Azure provides an information platform that you can easily provision, configure, and use to power your cloud applications. In this session we will explore the patterns and practices that help you develop and deploy applications that can exploit the full power of the elastic, highly available, and scalable SQL Azure Database service. The talk will detail modern scalable application design techniques such as sharding and horizontal partitioning and dive into future enhancements to SQL Azure Databases.

Building High Performance Web Applications with the Windows Azure Platform
- 발표: Matthew Kerner (McKinley Room)
- 미국 시간: 2010년 10월 29일 금요일 오후 3시 15분
- 한국 시간: 2010년 10월 30일 토요일 오전 7시 15분
- ICS 파일: http://player.microsoftpdc.com/Schedule/AddToOutlook/1b08b109-c959-4470-961b-ebe8840eeb84
- 세션 요약: 보다 고성능으로 서비스를 운영할 수 있도록 CDN서비스를 이용하거나 최적화를 하는데 필요한 기술을 전달하는 세션
Windows Azure Platform enables developers to build dynamically scalable web applications easily. Come and learn how forthcoming new application services in conjunction with services like the Windows Azure Content Delivery Network (CDN) can help you build high-performance web applications in Azure while lowering your total costs by reducing the pressure on the data-tier. In this session, we’ll take some real world scenarios & design patterns to showcase how existing or new web applications can be quickly built to leverage these capabilities. We’ll also share some tips & tricks to improve performance when using web & worker roles in Azure and optimizing your overall application for maximum performance. Developers will be able to make their applications match increasing demand with increasing throughput by using caching and CDN will enable better performance & user experience for users who are farther from the source of the content.

** Pre-recorded **

Building Business Applications in the Cloud with CRM Online
- 발표: Andrew Bybee
Microsoft Dynamics CRM Online is all about providing compelling business applications to your customer and accelerating development of your applications in the cloud. The upcoming 2011 release has a wide array of new development capabilities such as Solution Packaging, Sandboxed Code, Built-in Dashboards, and much more. Watch this session to understand the innovation behind this new CRM Online release powered by .NET 4.0. Specifically, we’ll cover how to build a CRM Online Solution, take advantage of native SharePoint & Office integration and deploy your application to Dynamics Marketplace to reach a broader customer base.

Developing PHP Applications on the Windows Azure Platform
- 발표: Vijay Rajagopalan
Microsoft’s Windows Azure Platform provides a comprehensive set of services for building and running scalable PHP applications targeting cloud. In this session we go on a coding tour using open source development tools (Eclipse, Command line), SDKs and applications (Drupal, WordPress) on the Windows Azure platform. On this tour, see how PHP web applications can use the scalable compute and storage services with Windows Azure, secure connectivity and data service techniques in the cloud using OData and Microsoft SQL Azure.

Integrating SharePoint with Windows Azure
- 발표: Steve Fox
SharePoint 2010 provides many ways to integrate with Windows Azure. From simple SQL Azure data-centric applications to complex workflow that leverages custom Azure services, there is great potential to integrate these two growing technologies. This session will provide a code-centric view of the ways in which you can integrate with Azure, covering areas such as web part development, data programmability, service consumption, and Business Connectivity Services integration. If you’re looking to take your SharePoint solutions into the cloud with Azure, then you can’t miss this session.

Building Offline Applications using the Sync Framework and SQL Azure
- 발표: Nina Hu
In this session you will learn how to build a client application that operates against locally stored data and uses synchronization to keep up-to-date with a SQL Azure database. See how Sync Framework can be used to build caching and offline capabilities into your client application, making your users productive when disconnected and making your user experience more compelling even when a connection is available. See how to develop offline applications for Windows Phone 7 and Silverlight, plus how the services support any other client platform, such as iPhone and HTML5 applications, using the open web-based sync protocol.

Management of your Access Control Service (ACS) Namespace
- 발표: Justin Smith
The Windows Azure AppFabric Access Control Service provides a simple way to add enterprise and web Single Sign On into your applications. In this session, we will discuss how you can configure ACS for a variety of scenarios. Topics covered include: ACS entity overview, namespace partitioning, credential management, federation management, and rule management. Basic knowledge of the Windows Azure AppFabric Access Control Service is a suggested pre-requisite.

Microsoft BizTalk Server 2010 and Roadmap
- 발표: Sreeram Nivarthi
Learn how BizTalk Server 2010 and AppFabric together help you create composite applications (building on Windows Azure, Windows Server and SharePoint) which connect to existing line-of-business (LOB) systems. Understand future plans of how you will be able to compose applications using integration services – for applications running on Windows Azure, connecting to other services in the cloud, and with line-of-businesses & business partners in future. You will also learn future plans on how business users can get visibility into services built on AppFabric.

SharePoint in the Cloud: Developing Solutions for SharePoint Online
- 발표: Chris Mayo
With the most recent release of SharePoint comes the ability to build and deploy applications of many types and flavors. Using SharePoint Server 2010, you can develop a wide variety of applications for the enterprise using .NET, Silverlight, JavaScript, and much more. But with the release of SharePoint Online on our horizon, what are the possibilities and the boundaries here? And how is the design and development process different? If you want to develop for SharePoint Online, but are unsure about the boundaries then you’ll not want to miss watching this demo-heavy session.

Taking High Performance Computing to the Cloud - Windows HPC and Azure
- 발표: Richard Ciapala
Scale-out or conveniently parallel HPC applications are well suited to running in Windows Azure. Windows HPC Server 2008 R2 SP1 provides a gateway for running existing HPC applications seamlessly on Azure. Learn how to develop Windows HPC Cluster SOA WCF-based applications, parametric sweep and MPI applications to run on Azure or a cluster. Different alternatives to handle data, storage, security, and troubleshooting these applications will be discussed. This session will also show developers how to set up a single box development environment for HPC Server applications, and how to provision compute nodes and Azure and monitor applications.

공식 홈페이지 바로 가기: http://www.microsoftpdc.com/
상세 정보 보기: http://player.microsoftpdc.com/

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

이벤트2010. 10. 10. 20:20

안녕하세요. Visual C# MVP / 인하대학교 정보통신공학부 06학번 / Microsoft Student Club .NETers 4기 회원 남정현입니다. 2010년 10월 6일 저녁 6시부터 7시까지 진행했던 Microsoft 신기술 소개 세미나 중 두 번째 세션의 발표 자료를 공유합니다. 질문과 답변을 메일 주소와 트위터 등을 통하여 언제든지 받고 있으니 궁금하신 점은 언제든 연락주십시오. 감사합니다. :-)

 

 

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

이벤트2010. 9. 29. 01:09

Visual Studio 2010 Seminar #1 - 현실적인 클라우드 컴퓨팅 이야기 발표 자료 올립니다. 세미나에 참석해주신 여러분들께 진심으로 감사드립니다. 소스 코드와 발표 자료를 모두 업로드하였습니다.

PPTX 파일과 PDF 파일 중에서 편리하신 파일 형식을 택하시면 됩니다. 소스 코드는 ZIP 파일의 형태로 제공되며, Visual Web Developer Express, Visual C++ Express를 통하여 열어보실 수 있고, 전체 버전의 Visual Studio 2010을 사용하셔도 됩니다. 

Posted by Cloud Developer 남정현 (rkttu.com)

댓글을 달아 주세요

  1. 잘 보고 갑니다 ;)

    2010.09.29 23:17 신고 [ ADDR : EDIT/ DEL : REPLY ]

이벤트2010. 9. 6. 23:45

참가 신청 바로 가기: http://onoffmix.com/event/1787


  • 주최 : 한국 Visual Studio 공식 팀
  • 일시 : 2010년 9월 28일 오후 7시 ~ 10시
  • 장소 : 한국 마이크로소프트 - 포스코 센터 5층
  • 참가비 : 무료
  • 최근 쏟아지는 기술의 홍수 속에서 '아차~' 하고 눈 깜빡할 순간 신기술에 낙오되기 쉽습니다. 한 번은 괜찮지만, 두 번은 기술 트랜드를 따라잡기가 더 힘들어 집니다. 저희 팀에서 기술을 먼저 접해보고, 먼저 고민해본 살아있는 경험을 여러분들에게 전수해 드립니다.
  • 세미나 아젠다

    시간

    세션 내용

    19:00 ~ 19:30

    등록

    19:30 ~ 20:10

    현실적인 클라우드 컴퓨팅 이야기

    남정현 C# MVP

    20:20 ~ 21:00

    Expression Blend 와 함께하는 윈도우 폰 7 개발 입문

    조진현

    21:10 ~ 21:50

    Razor 로 열어가는 새로운 ASP.NET

    김시원 ASP.NET MVP

      

       

    발표 내용 소개

    현실적인 클라우드 컴퓨팅 이야기 / 남정현 C# MVP

    클라우드 컴퓨팅, 말로만 들어봤지 실제로 어디에 어떻게 사용이 될 수 있는지 알려주는 사람이 없어 답답할 때가 많습니다. 이번 세션에서는 클라우드 컴퓨팅에 관한 실질적인 이야기, 그 중에서도 특별히 마이크로소프트의 윈도 애저 플랫폼에 대한 이야기를 나누면서, 클라우드 컴퓨팅의 현실적인 사례를 간단히 들어보기로 하겠습니다.

      

    Expression Blend 와 함께하는 윈도우 폰 7 개발 입문 / 조진현

    윈도우 폰7 개발에 대한 간단한 소개와 방법에 대해서 살펴본다. 그리고 더 쉽고 편한 개발을 위한 고민을 해보며, 이를 위해서 Expression Blend 의 활용에 대해서 고민해 본다.

      

    Razor 로 열어가는 새로운 ASP.NET - 김시원 ASP.NET MVP

    Razor 는 차세대 ASP.NET 의 새로운 View Engine 으로써 , 이것 때문에 요즈음 ASP.NET 이 한창 주목 받고 있습니다. 이번 시간에는 Razor 의 등장배경과 함께 Razor 로 인해 개발 환경이 어떻게 변화하였는지 살펴보고 , 기본적인 Razor 의 사용법을 익혀보도록 하겠습니다.

    발표자 소개

    남정현 C# MVP

    (주)코아뱅크에 재직 중이며, Microsoft Visual C# MVP로 활동 중입니다. DEVPIA C# Forum SYSOP, Windows Azure Cafe SYSOP을 맡고 있습니다. 여러 커뮤니티와 개인 블로그, 트위터 (@rkttu)를 통하여 윈도 애저 플랫폼에 대한 다양한 이야기를 전파하고 있습니다.

    조진현

    현재 게임 개발자로 재직 중이며  Visual Studio 2010 공식 팀 블로그 (http://vsts2010.net) 에서 DirectX 관련 분야에서 활동 중이다. 최근에는 '김탁구'와 '나는 전설이다' 라는 드라마에 빠져서 살고 있다.

      

     

    김시원 ASP.NET MVP
    ASP/ASP.NET MVP를 2009년 부터 계속 유지해오고 있으며 다양한 형태의 웹 어플리케이션 개발 경험과 세미나 경험을 가지고 있다. 현재 Hugeflow 웹 솔루션 개발팀에서 개발의욕을 불사르고 있다. 세상을 풍요롭게 하고 사람들에게 강한 종속성을 부여하는 프로그램을 개발하는 것이 목표이다.

    오시는 길

    한국 마이크로소프트 - 포스코 센터 5층

     

    참가 신청 바로 가기: http://onoffmix.com/event/1787


    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    이벤트2010. 8. 27. 23:01

    안녕하십니까? Visual C# MVP / Windows Azure Cafe SYSOP / DEVPIA C# Forum SYSOP / Visual Studio 2010 한국 공식 팀 블로그 멤버 남정현입니다.

    2010년 9월 13일부터 15일까지 열리는 Korea Games Conference (KGC) 2010에서 13일 오전 10시 30분에 오디토리움 101에서 진행되는 세션을 맡게 되었습니다. Windows Azure Platform과 소셜 게임이라는 주제를 바탕으로, 클라우드 컴퓨팅, Rich Internet Application 기술의 결합과 발전 방향성을 한 시간 동안 설명할 예정입니다. 또한, 이날 오전 세션은 Visual Studio 2010 한국 공식 팀 블로그의 DirectX 및 Agile Development 부문 전문가분들의 세션이 연속으로 진행되므로 관심있으신 분들께서는 함께 해주시면 감사하겠습니다. :-)

    관심있으신 분들의 많은 참석을 부탁드리며, 여러모로 의미있는 시간이 되었으면 합니다. 감사합니다. :-)

    등록 신청하기: http://www.kgconf.com/

    세션 정보 자세히 보기

    등록 신청하기: http://www.kgconf.com/

    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    PaaS2010. 8. 9. 00:22

    Windows Azure에서 Java 기반의 응용프로그램을 만들고 호스트할 수 있다는 이야기는 지속적으로 제시되어왔었습니다. 하지만, JSP 서블릿 페이지도 Windows Azure에서 호스트할 수 있을까요? Microsoft Architect로 활동 중인 David Chou가 작성한 블로그 포스트에 답이 있습니다. 오늘 제가 올리는 블로그 포스트는 다음 포스트에 대한 설명을 기초로 중요한 부분을 추출한 것임을 밝힙니다. (http://blogs.msdn.com/b/dachou/archive/2010/03/21/run-java-with-jetty-in-windows-azure.aspx)

    Jetty (http://jetty.codehaus.org/) 프로젝트는 자바 기반의 오픈 소스 웹 서버로, HTTP 서버로서의 역할과 서블릿 컨테이너의 기능을 제공합니다. 정적, 동적 컨텐츠를 모두 지원하고, 독립적으로 실행할 수도 있고, 다른 프로세스에 부착되어 실행되는 기능 또한 제공됩니다. 이러한 특성을 바탕으로, Apache Project의 ActiveMQ, Cocoon, Hadoop, Maven Project, BEA Web Logic Event Server, Eucalyptus, FioranoMQ Java Messaging Server, Google AppEngine 및 안드로이드, Eclipse용 웹 툴킷 플러그인, 레드햇 J보스, Sonic MQ, 스프링 프레임워크, 사이베이스 EA서버, 짐브라 데스크톱 등 광범위하게 Jetty가 채택되고 있습니다.

    Jetty 프로젝트는 아래와 같은 기능들을 제공합니다.

    • 비동기 HTTP 서버
    • 표준 지향의 서블릿 컨테이너
    • 웹 소켓 서버
    • 비동기 HTTP 클라이언트
    • OSGi, JNDI, JMX, JASPI, AJP 지원

    응용프로그램 컨테이너의 관점에서 보면, Jetty는 전통적인 Java 기반의 Web Application Server들 (Tomcat과 같은)을 대치하는 배포 방법으로 사용될 수 있으며, 스프링 프레임워크 및 관련된 모든 파생 프로젝트들, EJB 컨테이너 등 대부분의 일반적인 웹 기반 자바 어플리케이션을 손쉽게 제공할 수 있는 것이 특징입니다.

    Windows Azure에서의 Java 기술 지원

    PDC'09 이후로 http://code.msdn.microsoft.com/winazuretomcat 웹 사이트를 통하여 Windows Azure 환경 위에서 Tomcat을 이용하여 JSP 기반 웹 응용프로그램의 구동 가능 여부와 샘플 코드를 지속적으로 홍보해왔었습니다. 그리고 이러한 사실을 바탕으로 http://blogs.msdn.com/jonbox/archive/2009/11/17/domino-s-demonstrates-tomcat-site-on-windows-azure.aspx 에서는 도미노 피자의 기존 피자 온라인 주문 웹 서비스를 Windows Azure 환경에서 구동하는 사례도 선보였습니다. 아래는 그동안 언급되거나 발표되어왔던 Windows Azure 환경에서의 Java 구동 방법에 관한 간략한 리스트입니다.

  • http://code.msdn.microsoft.com/winazuretomcat
  • http://www.interoperabilitybridges.com/projects/windows-azure-sdk-for-java.aspx
  • http://microsoftpdc.com/Sessions/SVC50
  • http://blogs.msdn.com/jonbox/archive/2009/11/17/domino-s-demonstrates-tomcat-site-on-windows-azure.aspx
  • 그러나 위에서 언급하는 Tomcat만이 Windows Azure 환경에서 사용할 수 있는 유일한 Web Application Server의 종류는 아닙니다. 사실, 위의 접근 방법들은 모두 Windows Azure Role에 함께 첨부되어 배포되는 Java 실행 환경 (JRE)를 기초로 하는 것이고, 그러므로 어떤 종류의 Java 패키지이든 관계없이 명령줄을 통하여 Classpath를 명시하는 방식으로 실행될 수 있습니다. 대개의 경우, 작업자 역할 (Worker Role) 패키지 위에서 실행되도록 디자인되고, Windows Azure 환경으로 배포될 수 있습니다. 그리고, 당연한 이야기이지만 Java와 Fast CGI를 결합하고, IIS 7.x를 기반으로 Fast CGI를 지원하는 Web Role을 이용할 수도 있습니다. 이 부분은 나중에 좀 더 자세히 소개하도록 하겠습니다.

    Windows Azure 환경에서 Jetty 실행

    아래는 실제 Windows Azure 환경에서 Jetty를 기반으로 실행하는 Windows Azure Worker Role의 구동 예시입니다.

    위와 같이 구현하기 위한 방법을 지금부터 차례대로 따라해보기로 하겠습니다.

    1. Windows Azure Worker Role 프로젝트를 만들고, Worker Role 진입점 메서드인 Run 메서드의 중심부에 다음과 같이 프로그래밍합니다.

    string response = "";
    try
    {
        System.IO.StreamReader sr;
        string port = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["HttpIn"].IPEndpoint.Port.ToString();
        string roleRoot = Environment.GetEnvironmentVariable("RoleRoot");
        string jettyHome = roleRoot + @"\approot\app\jetty7";
        string jreHome = roleRoot + @"\approot\app\jre6";
        Process proc = new Process();
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.FileName = String.Format("\"{0}\\bin\\java.exe\"", jreHome);
        proc.StartInfo.Arguments = String.Format("-Djetty.port={0} -Djetty.home=\"{1}\" -jar \"{1}\\start.jar\"", port, jettyHome);
        proc.EnableRaisingEvents = false;
        proc.Start();
        sr = proc.StandardOutput;
        response = sr.ReadToEnd();
    }
    catch (Exception ex)
    {
        response = ex.Message;
        Trace.TraceError(response);
    }

    제가 이전에 게시한 글 "[Software Development/Windows Azure] - Windows Azure 들여다보기"에서 언급한 내용들을 참조하여 위의 코드를 보시면 이해하기 쉽습니다. 몇 가지 Windows Azure 환경에서 기본으로 제공되는 환경 변수, 디렉터리 설정 등을 바탕으로 Jetty 프로세스를 Java VM (java.exe)를 통하여 실행하도록 명령어를 구성하고 실행한 다음, 표준 출력의 내용을 Windows Azure Worker Role Process로 가져오도록 만드는 것을 볼 수 있습니다.

    2. Jetty 프로젝트와 Java VM의 최신 버전을 Windows Azure Worker Role 프로젝트에 추가합니다.

    다음 그림과 같이 폴더를 구성하면 되겠습니다. jetty7 폴더와 jre6 폴더 아래에 직접 해당 프레임워크 및 시스템의 실제 디렉터리 구조가 오도록 맞추면 문제 없습니다. 참고로, 확실하게 동작할 수 있도록 만들기 위하여 Java VM의 경우는 특별히 Windows Platform을 기반으로하는 x64 아키텍처 버전을 다운로드하여 아래 그림과 같이 넣어두어야 합니다. (중요)

    3. ServiceDefinition.csdef 파일 수정하기

    1단계에서 사용한 HttpIn이라는 설정을 Worker Role에 추가해야 하므로, ServiceDefinition.csdef 파일을 찾아 "WorkerRole" 요소 아래에 다음과 같이 내용을 추가하고 저장합니다. 참고로 이 설정은 Windows Azure Worker Role이 80번 TCP 포트 통신이 필요함을 Windows Azure 환경 내의 방화벽에게 통지하기 위한 목적으로 사용됩니다.

    <Endpoints>
      <InputEndpoint name="HttpIn" port="80" protocol="tcp" />
    </Endpoints>

    4. Windows Azure에서 사용할 수 있도록 Jetty 환경 설정

    Jetty가 사용되거나 환경 설정을 만드는 방법은 Windows Azure 환경에서 여러 가지가 있을 수 있지만, 특별히 이와 같이 Worker Role 위에서 Standalone Server로 동작하기 위하여 필요한 환경 설정이 있어서 이를 소개합니다. Windows Azure 환경에서는 Jetty가 기본으로 사용하는 NIO ChannelConnector 대신 BIO SocketConnector를 사용하도록 구성해야 합니다. NIO ChannelConnector에서는 내부적으로 루프백 연결을 기초로 하지만 Windows Azure 환경에서는 이것이 가로막혀있기 때문이라는 것이 David Chou의 설명입니다.

    이러한 설정을 수정하기 위해서는 Jetty 패키지 디렉터리 아래의 etc 디렉터리의 jetty.xml 파일을 수정해야 하며, <New> 태그의 class attribute를 org.eclipse.jetty.server.nio.SelectChannelConnector 대신 org.eclipse.jetty.server.bio.SocketConnector로 변경하고, NIO ChannelConnector에만 한정되는 몇 가지 옵션을 제거하는 방법으로 변경이 가능하며 정리하면 다음과 같습니다.

    <Call name="addConnector">
      <Arg>
        <New class="org.eclipse.jetty.server.bio.SocketConnector">
          <Set name="host"><SystemProperty name="jetty.host" /></Set>
          <Set name="port"><SystemProperty name="jetty.port" default="8080" /></Set>
          <Set name="maxIdleTime">300000</Set>
        </New>
      </Arg>
    </Call>

    그리고 좀 더 최적화된 설정을 위하여, Jetty가 자체 로그를 기록하지 않도록, etc 디렉터리의 jetty.xml 파일에서 RequestLog 핸들러 부분을 주석으로 처리하고, 확장자가 war인 패키지의 압축을 풀지 않도록 etc 디렉터리의 jetty.xml 파일에서 addBean "org.eclipse.jetty.deploy.WebAppDeployer"의 "extract" 프로퍼티의 값을 "false"로 지정하고, contexts 디렉터리의 test.xml 파일에서 <Set name="extractWAR"> 부분의 프로퍼티 값을 "false"로 지정하였다는 것이 저자의 설명입니다.

    이러한 설정들이 모두 적용된 실제 샘플은 http://cid-b43074894ffe6264.skydrive.live.com/self.aspx/.Public/Projects/JettyCloudService.zip 에서 다운로드받아보실 수 있습니다. :-)

    마무리

    Windows Azure Platform이 Microsoft의 기술이므로 철저히 .NET Framework 기반의 응용프로그램 개발만을 지원할 것이라는 편견은 종합적으로 "잘못된 것입니다." Windows Server 2008 R2의 기술을 기반으로 하고 있기 때문에, 여러분의 응용프로그램이 Windows Server 2008 R2, 그리고 64비트 환경에서 성공적으로 수행될 수 있는 조건을 갖추고 있다면 Windows Azure Platform은 성공적으로 여러분들의 클라우드 컴퓨팅으로의 계획을 이끌어 줄 수 있을 것입니다.

    만약 좀 더 심층적인 예제나, Tomcat 기반의 Windows Azure 구동 사례를 보기 원하신다면, http://code.msdn.microsoft.com/winazuretomcat 를 방문하셔서 샘플 코드와 문서를 다운로드하시기를 권합니다.

    감사합니다. :-)

    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    PaaS2010. 7. 27. 09:00

    꼭 읽어주세요: 이 글이 작성된 현 시점에 가장 최신 버전의 Azure Tools는 버전 1.2입니다. 이 강좌를 시작하시기 전에 Windows Azure Tools for Visual Studio를 1.2 버전으로 업그레이드하여 주십시오. 이전 버전을 설치하신 경우에는 SDK와 Tools를 모두 완전히 제거한 후 1.2 버전으로 새로 설치하여 주십시오. Windows Azure Tools for Visual Studio 1.2 한글판 다운로드는 http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f 에서 가능합니다.

    지난번 글 (2010/06/07 - [Cloud Development] - Hello Windows Azure / Understanding Windows Azure Development Process)에 이어서, 오늘부터는 Twitter 스타일 방명록 만들기 첫 번째 시간입니다. 이번 시간에는 Windows Azure 프로젝트를 만들고, 데이터 모델을 작성하고 파악하는 것을 실습 목표로 정의하고자 합니다.

    빠르고 편리한 실습을 위하여, Visual Web Developer 2010 Express를 사용하여 실습하는 것을 기준으로 하겠습니다. Visual Studio 2010이 이미 설치되어있으신 경우 이를 이용하셔도 됩니다. 어떤 개발 도구를 사용하더라도 반드시 Windows Azure Tools for Visual Studio가 설치되어있어야 하며 설치 방법은 2010/06/03 - [Cloud Development] - Hello Windows Azure / Windows Azure 개발 환경의 구축 에서 소개하는 내용에 따라 완료하여 주시기 바랍니다.

    개발 도구 시작하기 및 프로젝트 생성하기

    1. Visual Web Developer 2010 Express (또는 Visual Studio 2010)를 권한 상승 시킨 상태에서 시작하도록 합니다. 아래의 그림을 참고하세요. 사용자 계정 컨트롤을 사용하고 있을 경우 별도의 경고 대화 상자가 나타날 수 있으며 실행하도록 선택하시면 됩니다.

    2. Visual Web Developer 2010 Express가 실행되면 초기 화면에서 새 프로젝트 만들기 링크를 클릭합니다.

    3. 아래에 표시된 대화 상자에서 왼쪽의 개발 범주를 Cloud로 선택하면 사용 가능한 프로젝트 템플릿 중에서 "Windows Azure 클라우드 서비스"가 나타납니다. 이 항목을 클릭하고, 프로젝트 이름을 원하는 이름 (여기서는 TwistBook이라고 하겠습니다.)을 지정한 후, "솔루션용 디렉터리 만들기"에 체크하고 "확인" 버튼을 클릭합니다.

     

    특별히 솔루션용 디렉터리 만들기에 체크가 되어있는지를 확인하는 이유는, 이 옵션이 Windows Azure Tools로 생성되는 프로젝트의 특성 상 한 솔루션 안에 다수의 프로젝트가 만들어지기 때문에 이를 정확하게 분류하기 위하여 사용하는 옵션으로, 사용하도록 맞추어져있을 때 좀 더 소스 코드 관리가 편리하기 때문입니다.

    4. 배포할 Windows Azure 응용프로그램 내에 배치될 Role의 종류와 유형을 설정하는 추가 프로젝트 마법사가 아래와 같이 나타납니다. (만약 아래 화면 대신 HTML 페이지로 안내 페이지가 나타나는 경우 Azure Tools가 올바르게 설치되지 않은 상태입니다.)

    5. .NET Framework 4 역할 그룹과 클라우드 서비스 솔루션 그룹 사이의 두 개의 버튼을 이용하여 실제로 제작할 프로젝트의 유형을 설정하고 프로젝트의 이름까지 정할 수 있습니다. 우선 ASP.NET MVC 2 웹 역할 프로젝트 한 개와 작업자 역할 프로젝트 한 개를 추가하겠습니다.

    6. 이제 각 프로젝트의 정확한 이름을 설정하기 위하여, 클라우드 서비스 솔루션 그룹 안에 추가된 프로젝트 중 MvcWebRole1 프로젝트 항목을 선택하면 연필 모양의 아이콘이 이름 옆에 나타납니다. 이를 클릭하면 아래와 같이 이름을 바꿀 수 있도록 편집 영역이 나타납니다. 이 예제에서는 다음과 같이 이름을 정하였습니다.

    - MvcWebRole1 => TwistBook.WebRole
    - WorkerRole1 => TwistBook.LinkProcessor

    이름을 편집하고 나면 아래와 같은 화면이 되어있을 것입니다. 확인 버튼을 눌러 프로젝트를 생성합니다.

    7. 프로젝트의 생성을 진행하다보면 Visual Studio 2010 Professional 이상의 버전에서는 다른 ASP.NET MVC 2 프로젝트와 마찬가지로 테스트 프로젝트를 만들것인지를 물어보는 대화 상자가 나타납니다. 빠른 설명과 간결한 진행을 위하여 테스트 프로젝트를 생성하지 않는 방향으로 이 예제에서는 진행하도록 하겠습니다. (필요하신 분들께서는 생성하셔도 됩니다.) Visual Web Developer 2010 Express Edition에서는 이러한 대화 상자가 따로 나타나지 않습니다.

    8. 프로젝트 생성이 끝나면 아래와 같이 솔루션 탐색기에 총 3개의 프로젝트가 열거됩니다.

    TwistBook 프로젝트는 Cloud Application 전체를 총괄하는 프로젝트이며, Cloud 환경에서 하나의 Application으로 분류됩니다. 이 프로젝트 안에 Web Role과 Worker Role이 다수 연결되는 구조로 되어있으며, 나중에 Cloud Service Package 파일 (CSPKG)로 컴파일될 때 이 프로젝트가 기준이 됩니다.

    TwistBook.WebRole 프로젝트는 ASP.NET MVC 2를 사용하도록 프로젝트가 구성되어있으며 여기에 기본적인 트위터 스타일의 방명록 UI를 표시하거나 인증된 사용자로부터 메시지를 입력받아 Worker Role에게 처리를 위임하는 등의 작업을 수행하도록 코드를 구성할 것입니다.

    그리고 TwistBook.LinkProcessor 프로젝트는 Web Role과는 따로 실행되는 개별적인 Role 인스턴스로서, Web Role에서 받아들이는 메시지 중 이미지 파일을 twitpic.com에 게시하여 짧은 URL을 받아온다거나, 본문에 있는 긴 URL을 짧게 만들어 받아오는것과 같이 처리량이 많이 몰렸을 경우 병목 현상을 일으킬 수 있는 기능만을 전담하도록 코드를 구성할 것입니다.

    자료 구조 만들기

    1. 클라우드 환경 내부 및 외부에서 기준이 될 모델 자료 구조를 만들기 위하여, 별도의 클래스 라이브러리를 작성하도록 하겠습니다. 솔루션 탐색기에서 솔루션 항목을 오른쪽 버튼으로 클릭하고 아래 그림처럼 새 프로젝트 추가 메뉴를 클릭합니다.

    2. 일반적인 클래스 라이브러리 프로젝트를 하나 만듭니다. 이름은 TwistBook.DataModel로 지정하고, Cloud 환경 위에서 사용하도록 현재 지정된 .NET Framework 4와 동일한 빌드 타겟이 지정되어있는지 확인한 후 프로젝트를 생성합니다.

    3. TwistBook.DataModel 프로젝트에 Windows Azure Table Storage에서 사용할 Data Context 클래스를 만들도록 하겠습니다.[각주:1]

    Data Context 클래스를 만들기 위해서는 Windows Azure SDK에서 제공하는 클래스 라이브러리 파일들을 TwistBook.DataModel 프로젝트 참조에 포함시켜야 합니다. 아래 그림과 같이 솔루션 탐색기에서 TwistBook.DataModel 프로젝트 아래의 참조 항목을 오른쪽 버튼으로 클릭하고 "참조 추가" 메뉴를 클릭합니다.

    4. 참조 추가 대화 상자가 나타나면, .NET 탭을 클릭합니다. 이 과정에서 비동기적으로 Visual Studio가 관리하는 디렉터리 목록 내에 있는 모든 어셈블리들을 조사하여 실시간으로 리스트 박스에 추가합니다. 이 샘플에서 필요로 하는 SDK의 라이브러리가 목록에 나타나기까지 조금 시간이 걸릴 수 있으며 시스템마다 차이가 있을 수 있지만 약 1분 이내에 나타납니다.

    5. 나타난 항목들 중에서 다음의 항목들을 찾아 키보드의 Ctrl 키를 누른채로 하나씩 클릭하면, 아래 그림과 같이 여러 대상을 선택하고 참조로 추가할 수 있습니다.

    * System.Data.Services.Client
    * Microsoft.WindowsAzure.StorageClient

    6. 아래 그림과 같이 참조 목록이 구성되어있으면 준비가 다 된것입니다. 이제 본격적으로 코드 작성을 시작해 보도록 하겠습니다. :-)

    7. 기본으로 만들어진 클래스가 담겨있는 Class1.cs 파일의 내용을 아래와 같이 작성합니다. 코드에서 핵심이 되는 부분을 굵게 표시하였습니다.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.WindowsAzure.StorageClient; [각주:2]

    namespace TwistBook.DataModel
    {
        public class TwistModel : TableServiceEntity [각주:3]
        {
            public TwistModel()
            {
                DateTime current = DateTime.Now;
                PartitionKey = current.ToString("yyyyMMdd");
                RowKey = current.ToString("hhmmss"); [각주:4]

            }

            public string WriterName { get; set; }
            public string MessageBody { get; set; }
            public DateTime WrittenDate { get; set; }
            public string ImageUrl { get; set; } [각주:5]
        }
    }

    8. Class1.cs 파일의 이름을 클래스 이름과 동일하게 설정합니다. Windows 탐색기를 열지 않고, 아래의 그림에서처럼 솔루션 탐색기에서 직접 이름을 바꿀 수 있으며, Class1.cs 파일을 TwistModel.cs 파일로 이름을 변경합니다.

    9. TwistBook.DataModel 프로젝트에 Windows Azure Table Storage에서 사용할 Data Context 클래스를 만들도록 하겠습니다. 새 항목을 프로젝트에 추가하기 위하여 아래 그림과 같이 솔루션 탐색기에서 TwistBook.DataModel 프로젝트 항목을 오른쪽 버튼으로 클릭하면 "추가" - "새 항목 추가" 메뉴가 나타나는데 이를 클릭하시면 됩니다.

    10. 새 항목 추가 대화 상자에서 설치된 템플릿 영역에서 "Visual C# 템플릿"을 선택하고, 우측 목록에서 "클래스"를 선택합니다. 그리고 이름에 새로 추가할 클래스의 이름을 지정한 후 "추가" 버튼을 클릭합니다. 9단계와 10단계를 거쳐서 다음의 파일들을 추가로 생성합니다.

    * TwistDataServiceContext.cs
    * TwistDataSource.cs

    11. 솔루션 탐색기 내의 TwistBook.DataModel 프로젝트 항목 아래에 다음 그림과 같이 구성이 되어있으면 정상적으로 추가가 된 것입니다.

    12. 이제 TwistDataServiceContext.cs 파일을 열어서 다음과 같이 코드를 작성합니다. 코드에서 중요한 부분은 굵은 글씨로 표현하였고 여기에 따른 부가적인 설명을 각주로 붙였습니다.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.WindowsAzure;
    using Microsoft.WindowsAzure.StorageClient; [각주:6]

    namespace TwistBook.DataModel
    {
        internal class TwistDataServiceContext : TableServiceContext [각주:7]
        {
            internal TwistDataServiceContext(CloudStorageAccount account)
                : base(account.TableEndpoint.AbsoluteUri, account.Credentials) [각주:8]
            {
            }

            internal const string TwistModelName = "TwistModel";

            public IQueryable<TwistModel> TwistModel [각주:9]
            {
                get { return this.CreateQuery<TwistModel>(TwistModelName); } [각주:10]
            }

        }
    }

    13. 이어서 TwistDataSource.cs 파일을 열어서 다음과 같이 코드를 작성합니다. 코드에서 중요한 부분은 굵은 글씨로 표현하였고 이에 따른 부가적인 설명을 각주로 붙였습니다.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.WindowsAzure;
    using System.Data.Services.Client;
    using Microsoft.WindowsAzure.StorageClient; [각주:11]

    namespace TwistBook.DataModel
    {
        public class TwistDataSource
        {
            private static CloudStorageAccount storageAccount;
            private TwistDataServiceContext serviceContext;

            static TwistDataSource()
            {
                // 중요: 실제로 응용프로그램을 Cloud 환경에 배포할 때에는
                // Cloud Project 내의 다른 환경 설정 문자열을 이용하도록
                // 호출을 변경해야 합니다.
               storageAccount = CloudStorageAccount.DevelopmentStorageAccount; [각주:12]

               CloudTableClient.CreateTablesFromModel(
                    typeof(TwistDataServiceContext),
                    storageAccount.TableEndpoint.AbsoluteUri,
                    storageAccount.Credentials); [각주:13]

            }

            public TwistDataSource()
            {
                this.serviceContext = new TwistDataServiceContext(storageAccount); [각주:14]
                this.serviceContext.RetryPolicy = RetryPolicies.Retry(
                    3, TimeSpan.FromSeconds(1)); [각주:15]

            }

            public DataServiceResponse Insert(TwistModel model)
            {
                this.serviceContext.AddObject(
                    TwistDataServiceContext.TwistModelName,
                    model); [각주:16]

                return this.serviceContext.SaveChanges(); [각주:17]
            }

            public IEnumerable<TwistModel> Select()
            {
                var results = from eachTwist in this.serviceContext.TwistTable
                              select eachTwist; [각주:18]

                var query = new CloudTableQuery<TwistModel>(
                    results as DataServiceQuery<TwistModel>,
                    RetryPolicies.Retry(3, TimeSpan.FromSeconds(1))); [각주:19]

                return query.Execute(); [각주:20]
            }

            public DataServiceResponse Delete(TwistModel model)
            {
                this.serviceContext.AttachTo(
                    TwistDataServiceContext.TwistModelName,
                    model, "*"); [각주:21]

                this.serviceContext.DeleteObject(model);
                return this.serviceContext.SaveChanges();
            }
        }
    }

    Preface: ASP.NET MVC 2 Web Role에 대한 이해

    다음 Article의 내용을 올리기 전에, ASP.NET MVC 2에 대한 이해를 돕기 위하여 간단한 단락 하나를 구성하였습니다. ASP.NET MVC 2는 Microsoft의 최신 웹 기술이 적용된 프레임워크로 Windows Azure 개발 환경에서 뿐만 아니라 일반적인 웹 사이트 개발에도 얼마든지 활용될 수 있는 유용한 프레임워크입니다.

    TwistBook.WebRole 프로젝트의 노드를 솔루션 탐색기에서 살펴보면 아래와 같은 구성이 나타납니다. 이 구성은 전형적인 ASP.NET MVC 응용프로그램이며, 고전적인 웹 프로그래밍 모델에서와는 달리 직접 aspx 페이지를 부르지 않고 알기 쉬운 주소를 기반으로하는 것이 특징입니다. ASP.NET MVC 응용프로그램을 처음 접하시는 분들을 위하여 디렉터리 구조에 대한 설명을 잠시 말씀드립니다.

    App_Data: ASP.NET 응용프로그램이 데이터베이스에 연결하기 위하여 필요한 각종 코드 및 데이터베이스 연결 설정 파일들을 보관하는 디렉터리이며, ASP.NET 2.0부터 존재해왔던 디렉터리입니다. 예외적으로 이 디렉터리에는 Microsoft Access 파일 (*.mdb 또는 *.accdb)이나 소규모 웹 사이트를 위한 Embedding 가능한 SQL 데이터베이스 파일 (*.mdf 및 *.ldf)이 배치되기도 합니다.

    Content: ASP.NET MVC 응용프로그램 전반에 걸쳐서 사용되는 공통적인 클라이언트측 구성 요소 (가령 CSS 스타일 시트, XSLT 스타일 시트, 이미지 파일, 오디오 파일 등)가 이 디렉터리에 저장됩니다. 이 디렉터리에 저장된 파일들은 중간 처리기에 의하여 해석되지 않는 고유한 경로를 유지할 수 있습니다.

    [중요] Controllers: ASP.NET MVC 응용프로그램에서 "C"를 대표하는 구성 요소가 저장되는 디렉터리이며 백그라운드에서 웹 페이지를 그리거나, 웹 브라우저로부터 받아온 정보를 해석하거나, 가공하거나, 처리하는 제어 코드를 이곳에 배치합니다.

    [중요] Models: ASP.NET MVC 응용프로그램에서 "M"을 대표하는 구성 요소가 저장되는 디렉터리이며 주로 Controller 간의 통신, 데이터베이스와의 통신, 클라이언트로의 통신 등에서 기본 단위가 되는 데이터나 모델을 표현하는 클래스 코드를 이곳에 배치합니다. 이곳에 배치되는 코드에는 로직이 포함되지 않는 것을 원칙으로하며, 이곳에 배치되는 클래스들의 성격을 일반적으로는 POCO [각주:22] - 또는 - PONO [각주:23] (http://en.wikipedia.org/wiki/Plain_Old_CLR_Object)로 이해하면 쉽습니다.

    Scripts: Content 디렉터리와 유사한 성격의 디렉터리이지만 특별히 JavaScript 라이브러리들을 위하여 할당된 디렉터리로, ASP.NET MVC 2는 오픈 소스 기반의 JavaScript Framework인 jQuery를 기본으로 제공합니다. 만약 jQuery Plugin을 개발하였거나 사용하고자 하는 다른 Plugin이 있을 경우 - 또는 - jQuery 이외의 다른 JavaScript 라이브러리 (예: 네이버 jindo, script.aculo.us, Moo Tools, Google Web Toolkit, extJS, Dojo Toolkit, prototype, Yahoo! UI 등)를 이곳에 추가하면 됩니다.

    [중요] Views: ASP.NET MVC 응용프로그램에서 "V"를 대표하는 구성 요소가 저장되는 디렉터리이며 주로 Controller에 어떤 데이터를 전달할 것인지를 사용자에게 대화형으로 묻거나, Controller에 의하여 발생한 출력 결과를 사용자에게 대화형으로 전달할 때 사용하는 컨텐츠 파일들이 여기에 저장됩니다. ASP.NET MVC 2에서는 Web Forms와 Script Tag Expression을 기반으로 하는 뷰 엔진을 기초로 합니다. [각주:24]

    [중요] Global.asax: ASP.NET MVC에서 매우 중요한 구성 요소로 지금 작업하는 ASP.NET 응용프로그램이 ASP.NET MVC 엔진에 의하여 처리되어야 함을 지정하고 초기 설정을 구성하는 코드가 여기에 포함되어있습니다. 이 파일이 누락되거나 내용이 잘못되어있을 경우 ASP.NET MVC 응용프로그램으로서 동작하지 않음을 유의해야 합니다. 추가적으로 사이트 내에 다른 영역을 구성하거나, 다른 주소 패턴을 확장해야 할 경우에도 이 파일에 내용을 추가해야 설정이 적용됩니다.

    [중요] Web.config: ASP.NET 응용프로그램의 환경 설정 파일로 역시 이 파일의 내용에 문제가 있거나 누락되어있을 경우 ASP.NET MVC 응용프로그램이 올바르게 동작하지 않을 수 있음을 주의해야 합니다.

    [중요] WebRole.cs: ASP.NET 응용프로그램과는 무관하나, Windows Azure 환경에서 Web Role이 초기에 기동될 때 필요한 설정을 포함하고 있으며, 클라우드 컴퓨팅 환경에서의 실질적인 진입점이 됩니다. 이 클래스가 없을 경우 응용프로그램 실행에 문제가 있을 수 있습니다.

    다음 시간에는

    다음 시간에는 ASP.NET MVC 2 기반의 Web Role을 작성하고, 테이블 스토리지에서 실제로 데이터를 조회하거나 추가, 변경, 삭제하는 예시를 들어보도록 하겠습니다. 긴 강좌 읽어주셔서 감사하며, 즐거운 여름 휴가 되십시오. 감사합니다. :-)

    강좌에 대한 고칠 부분, 의견, 제안 등은 남정현의 클라우드 & 닷넷 블로그 (http://www.rkttu.com/), 트위터 (@rkttu), 전자 메일 (rkttu nospam rkttu dot com)을 통하여 항상 받고 있습니다. 언제든 의견 주시면 감사하겠습니다. :-)

    1. 이 샘플에서 Windows Azure Storage를 이용하는 방향으로 설명이 되어있지만, 실제로 여러분이 개발할 Windows Azure 서비스에서는 SQL Azure나 다른 곳에 배치되어있을 고가용성의 관계형 데이터베이스 시스템 (예: SQL Server 2008 R2)을 이용하는 것이 더 좋을 수 있습니다. [본문으로]
    2. Windows Azure SDK와 함께 제공되는 Table Storage를 위한 API가 포함되어있는 네임스페이스입니다. [본문으로]
    3. TableServiceEntity 클래스를 상속받도록 자료 구조를 만들어야 SDK를 이용하여 Table Storage에 데이터를 저장하거나 가져올 수 있습니다. [본문으로]
    4. TableServiceEntity 클래스의 기능을 적용하기 위하여 동일한 시그니처를 가진 생성자를 하나 만듭니다. Table Storage의 접근 효율성을 위하여, 테이블은 여러 개의 파티션으로 구분됩니다. 이 샘플에서 파티션의 분리 단위로 "날짜"를 사용하였습니다. 그리고 파티션 내에서 각각의 Entity가 고유한 의미를 가질 수 있게 하기 위하여 Row Key를 사용하여 구분합니다. Partiton Key와 Row Key가 더해져서 테이블 내에서는 이 Entity가 "유일할 수 있다"는 특성을 보장합니다. [본문으로]
    5. WriterName Property는 작성자의 이름, MessageBody Property는 메시지 본문, WrittenDate Property는 작성한 날짜와 시간을, ImageUrl Property는 같이 첨부하는 사진의 URL을 보관하는 목적으로 사용됩니다. C# 3.0 이후로 지원되는 단축 Property Getter/Setter 선언으로 별도의 private 멤버 변수를 배치하지 않고 이와 같이 단순한 코드를 만들 수 있습니다. [본문으로]
    6. Windows Azure SDK와 함께 제공되는 Table Storage를 위한 API가 포함되어있는 네임스페이스입니다. [본문으로]
    7. LINQ를 이용하여 손쉽게 데이터를 가져오거나 설정할 수 있도록 LINQ의 설정을 확장해주는 기본 추상 클래스입니다. [본문으로]
    8. CSCFG 파일 상의 정보를 표현하는 객체인 CloudStorageAccount를 생성자에서 인자로 받아 이 객체를 초기화하고, Windows Azure Storage와의 연결을 초기화합니다. [본문으로]
    9. 지연 실행을 목적으로 하는 질의 객체를 생성합니다. 지연 실행이란, 각각의 요소를 다룰 필요가 있을 때 식을 계산하고 평가하는 방식으로, 전체의 내용을 미리 메모리에 읽어들여서 처리하는 것과는 차이가 있습니다. 이 객체는 앞서 우리가 정의한 TwistModel 클래스를 트랜잭션의 단위로 사용하도록 SDK 내의 프레임워크에서 생성됩니다. [본문으로]
    10. 주의: 엔티티 클래스의 이름, ServiceContext에서 노출하는 프로퍼티의 이름, CreateQuery 메서드에 전달하는 테이블 명의 이름이 모두 같아야 혼선없이 올바르게 동작할 수 있음을 보증할 수 있습니다. [본문으로]
    11. LINQ to Azure Table Storage를 활용하는데에 필요한 클래스 및 원격 데이터 액세스에 필요한 클래스들이 굵게 강조 표시한 3개의 네임스페이스 안에 모두 포함되어있습니다. [본문으로]
    12. 현재는 실제 Windows Azure Storage 계정을 지정하지 않고 Local Development Storage 계정을 대신 지정합니다. [본문으로]
    13. 테이블 모델을 생성할 때 사용할 기준이 될 DataContext 클래스를 선택하고, 생성을 요청합니다. 이 때 접속할 대상 스토리지의 HTTP 주소와 자격 증명 정보도 한꺼번에 지정합니다. 또한, 이 작업은 TwistDataSource 클래스를 프레임워크에서 로드할 때 한 번만 발생할 수 있도록 유도하기 위하여 정적 생성자에 정의하였습니다. 테이블의 초기 구조를 할당하는 작업은 자주 일어날 필요가 없는 작업이기 때문에 성능 상의 이득을 위하여 이와 같이 작성합니다. [본문으로]
    14. 서비스 객체를 초기화합니다. 앞에서 가져온 계정 정보를 사용하여 복원된 계정 정보 객체를 사용하여 초기화하고 있다는 점을 확인하십시오. [본문으로]
    15. 혹시 있을지 모르는 장애에 대해 좀 더 완벽한 대비를 위하여, 재시도 정책을 설정할 수 있습니다. (이 부분은 매우 중요한 개념입니다.) 첫 번째 인자에는 재시도 횟수, 그리고 두 번째 인자에는 재시도 간격을 TimeSpan 객체를 이용하여 지정할 수 있습니다. 여기서는 처음 실패가 발생한 시점을 기준으로 3회 더 시도하며 각 시도 간격은 1초로 정합니다. [본문으로]
    16. 전형적인 LINQ to Entity 서비스와 마찬가지로 AddObject를 이용하여 객체의 참조를 기반으로 새로운 데이터를 추가할 수 있습니다. [본문으로]
    17. 트랜잭션 개념을 기본적으로 사용하므로 SaveChanges 메서드는 삽입, 변경, 삭제 작업이 있은 직후에는 반드시 병행되어야 합니다. [본문으로]
    18. Windows Azure Table Storage에 전송할 Query를 지연된 실행을 위한 객체로 초기화합니다. 이 문장이 실행되었다고해서 곧바로 데이터가 수집되는 것은 아닙니다. [본문으로]
    19. Windows Azure Table Storage에 실제로 Query를 전송할 클라이언트 객체를 초기화하고, 이 객체의 재시도 정책도 추가로 정의할 수 있습니다. 여기서도 3회 재시도, 매 시도마다 1초 간격을 두기로 설정합니다. [본문으로]
    20. 비로소 이 부분에서야 실제 전송과 데이터 수집이 발생하게 됩니다. [본문으로]
    21. Table Storage에서 객체를 삭제할 때에는 삭제를 위하여 검색할 대상을 지정해야 하며 이 때 사용하는 것이 AttachTo 메서드입니다. 이 메서드를 이용하여 어떤 테이블에서 어떠한 유형의 데이터를 검색할 것인지를 서비스 객체에 지정합니다. [본문으로]
    22. Plain Old CLR Object (Plain Old Java Object; POJO를 응용한 줄임말) [본문으로]
    23. Plain Old .NET Framework Object (Plain Old Java Object; POJO를 응용한 줄임말, POCO와 동일한 의미의 다른말) [본문으로]
    24. 이 글을 작성하는 시점에서 ASP.NET MVC 3에서 기본으로 채택될 예정인 Razor View Engine이 새로 발표되었습니다. Razor View Engine은 Web Form을 대체하는 ASP.NET MVC 전용의 View Engine 시스템을 뜻합니다. [본문으로]
    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    PaaS2010. 7. 20. 15:09

    Windows Azure를 이용하여 Cloud Application을 개발하다보면 한 가지 불편하다고 느끼게 되는 부분이 있습니다. 특히 Web Role을 이용하여 웹 응용프로그램을 클라우드에서 호스팅하면 특히 심하게 느껴지는 부분이 있는데, 사소한 웹 컨텐츠를 바꾸기 위해서라도 실제 Cloud 환경을 완전히 업그레이드하거나 리뉴얼하는 과정이 동반된다는 점입니다. 물론 이 과정에서 서비스를 강제로 중단하지 않고 업그레이드 프로세스를 거치도록 작업하면 대외적으로 서비스가 중단되는 일은 없지만, 상당한 시간이 소요된다는 것에는 변함이 없습니다.

    이러한 비효율성을 해결하고 좀 더 단 시간내에 쉽고 빠르게 웹 컨텐츠를 변경할 필요가 있다면 (마치 우리가 이전에 계속 사용해왔던 웹 호스팅이나 서버 호스팅과 마찬가지입니다.) Hosted Web Core (이하 HWC) Worker Role 템플릿을 이용해 보시는 것은 어떨런지요? 이 템플릿은 MSDN Code Gallery에 게시된 것으로 아래는 이 템플릿을 이용하여 얼마나 빨리 클라우드 상의 웹 사이트를 고칠 수 있는지를 보여주는 재미있는 동영상입니다.

    동영상의 내용을 간단히 요약하면, 클라우드 상에 올라와있는 페이지에 있는 Typo (오타)를 고치기 위해서 본래 취해야 할 전체 컴파일 / 업그레이드 프로세스를 거치지 않는 대신, 평소 사용하는 Windows Azure Storage Client에 새로 수정한 웹 페이지 파일을 덮어씌운 것 만으로 손쉽게 교체가 이루어진다는 것을 보여주는 것입니다.

    이 템플릿은 단방향으로 Windows Azure Storage의 특정 경로 상에 있는 파일과 현재 Role 내의 파일 시스템 상의 특정 경로 상에 있는 파일들을 직접 대조하면서 Storage에서 변경이 발생하면 이를 자동으로 추적하여 Role 내의 파일 시스템을 업데이트하는 방식입니다. 대부분의 일반적인 ASP.NET 응용프로그램 시나리오에 대해 이러한 방식의 기술은 유효하며 효율적이지만, 원자적인 업데이트 관리가 발생하지 않는다는 점을 감안해야 하며, Embedded Database를 이용하게 될 경우 충돌이 발생할 가능성도 있습니다.

    정보 출처: http://blog.smarx.com/posts/update-your-windows-azure-website-in-just-seconds-by-syncing-with-blob-storage

    HWC Worker Role 샘플 코드 다운로드: http://code.msdn.microsoft.com/hwcworker

    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    기술 소식2010. 7. 14. 00:54

    Codename: Dallas에 대한 관심이 지속적으로 높아지고 있습니다. Codename: Dallas에 대한 간단한 설명을 드리면, 클라우드 컴퓨팅 기술을 바탕으로하여 손쉽게 무료 및 유료로 프리미엄급의 통계 자료를 실시간으로 구독할 수 있는 서비스로서 Office, SharePoint 등의 시스템과 손쉽게 연동이 가능한 것이 특징입니다.

    현재 확정된 데이터 공급사 (NASA, National Geographic, Associated Press, Zillow.com, Weather Central, NAVTEQ 등)외에도 아래의 그림에서 언급하는 추가 제공사들을 포함하여 올해 4분기에 Codename: Dallas가 정식 서비스로 전환될 예정에 있으며, 8월 중에 새로운 UI를 포함하는 CTP가 런칭될 예정이라고 합니다.

    기사 출처: http://blogs.msdn.com/b/zaneadam/archive/2010/07/12/news-on-microsoft-codename-dallas-at-wwpc-2010.aspx


    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    기술 소식2010. 7. 14. 00:43

    Windows Azure Platform에 새로운 제품군이 얼마전에 새롭게 발표되었습니다. 바로 Windows Azure Platform Appliance가 그 주인공인데, 이름에서 알 수 있듯이 Windows Azure Platform의 기술을 Private Cloud로 가져올 수 있는 전용 데이터센터 하드웨어 및 소프트웨어 일체를 의미합니다. 여기에는 SQL Azure를 비롯하여 Microsoft의 Public Cloud 기술들이 다수 병합되어있으며 이런 일련의 패키지는 Microsoft와 협력 관계에 있는 다수의 파트너 사에 의하여 제공될 예정이라고 합니다.

    Windows Azure Platform Appliance는 대규모 엔터프라이즈 서비스나 정부 기관 및 데이터 센터 내에서 강력한 클라우드 컴퓨팅의 구현을 원하는 모든 서비스 제공자들을 위하여 디자인되었습니다. Windows Azure Appliance에는 이전의 데이터 센터 관리 기술보다 더욱 혁신적인 전원, 냉각 및 자동화 기술이 포함되어있습니다.

    Windows Azure Platform Appliance는 다음과 같은 시나리오에 있어 최적입니다:

    • 데이터 센터에 PaaS (Platform as a Service), SaaS (Software as a Service) 기반의 강력한 응용프로그램을 구현하기 원하는 경우
    • 수 만대 이상의 논리적/물리적 서버를 통합 운영하는 기술을 운용하는 경우
    • Windows Azure Platform의 기술적 이점을 데이터 센터에 구현하면서도, 물리적인 범주와 데이터 통치권 및 보안 규제의 확립이 필요한 경우

    Windows Azure Platform Appliance를 사용함에 따라 얻을 수 있는 장점들은 다음과 같습니다.

    효율성과 민첩성

    • 데이터센터 효율성 – 적은 수의 IT 관리자로 전원, 냉각, 운영 문제를 최소화하고, 논리적/물리적으로 구분된 수백대 이상의 서버를 적은 비용으로 운영할 수 있습니다.
    • 대규모 – 운영에 필요한 서버의 수를 수 만대 이상의 서버로 확장할 수 있는 능력이 있습니다.
    • 탄력성 – 처리 요구 사항에 따라 응용프로그램의 인스턴스 수를 동적으로 늘이거나 줄이는 것이 가능합니다.
    • 통합 – 기존의 데이터 센터 도구와 데이터 센터 고유의 작업과 잘 연동됩니다.
    • 다중 역할에 최적화됨 – 비지니스 단위 또는 조직들을 가로지르는 다중 역할에 맞게 설계되어있습니다.
    • 서비스 가용성에 최적화됨 – 장애 복구 및 자가 회복을 통한 서비스 가용성 확보에 최적화되어있습니다.

    단순성

    파트너와 고객들은 기존의 개발 도구 (예를 들어 .NET이나 PHP와 같은)들을 사용하여 각종 웹 응용프로그램과 백그라운드 서비스를 손쉽게 개발할 수 있습니다. 또한 기존에 개발된 응용프로그램들의 성능과 규모를 크게 확장하기에 편리한 방식을 제공하므로 개발 도구를 바꾸거나 하는 일 없이 Windows Azure Platform Appliance의 성능을 다양한 방면으로 활용할 수 있습니다.

    신뢰성

    파트너와 고객들은 엔터프라이즈 급의, 신뢰할 수 있고 항상 온라인에 최적화된 서비스를 이용할 수 있습니다.

    Windows Azure Platform Appliance에 대한 좀 더 자세한 내용

    흔히 사용하는 용어 중 하나인 Turn-Key 방식으로 Windows Azure Platform을 이용할 수 있기 때문에 Appliance라는 이름을 사용하고 있으며, Microsoft의 고유한 기술로 미리 구성되고 표준화된 하드웨어를 사용하기 때문에 이 Appliance의 가치는 더욱 높다고 할 수 있습니다. 만약 좀 더 확장된 서비스를 원한다면 단순히 한 개 - 또는 - 여러 개의 노드에 연결될 서버를 추가하기만 하면 됩니다. 아직 Windows Azure Appliance는 일부 고객과 파트너에게만 제공되는 기술이지만 향후에 정해지게 될 로드맵을 바탕으로 좀 더 구체화될 예정이라고 합니다. Dell, eBay, Fujitsu, HP가 Windows Azure Appliance를 자사의 데이터센터에 배포하여 새로운 클라우드 서비스를 구현할 예정에 있습니다.

    NOTE: 이러한 유형의 Appliance에 관심이 있으시다면, Vexcel Corporation의 Bing Maps Server도 참고하시면 유용합니다. (http://www.vexcel.com/geospatial/bingmapsserver/index.asp)

    출처: http://www.microsoft.com/windowsazure/appliance/

    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    이벤트2010. 5. 7. 22:17

    한국형 클라우드 컴퓨팅에 관하여, 지식경제부, 방송통신위원회, 행정안전부 3개 정부 부처, Google, Microsoft, Intel, HP, IBM, Oracle 등 유명 IT 기업, 그리고 삼성 SDS와 LG CNS 등 국내 대기업의 전문가들이 한데 모여 의견을 발표하고 교류하는 큰 행사인 제 3회 Advanced Computing Conference 2010이 2010년 5월 13일 목요일 오전 9시부터 오후 6시까지 종일 행사로 진행됩니다.

    이번 행사는 한국 시장에서 클라우드 컴퓨팅이 가지게 될 특성과 전망, 그리고 IT 업계 리더들과 정부 정책 실무자들이 바라보는 비전을 살펴볼 수 있는 좋은 자리가 될 것으로 기대됩니다. 이 행사는 코엑스 1층 그랜드 볼륨에서 전시회와 동시에 진행될 예정이라고 합니다. 클라우드 컴퓨팅에 대한 동향에 관심이 많으신 IT 업계 관계자 여러분들의 많은 참여 바랍니다.

    사전 등록 바로가기: http://acc.zdnet.co.kr/Register.aspx?a=38 / 프로그램 안내: http://acc.zdnet.co.kr/Program.aspx?a=38 / 전시 참가 신청: http://acc.zdnet.co.kr/display.aspx?a=38 

    사전 등록 바로가기: http://acc.zdnet.co.kr/Register.aspx?a=38 / 프로그램 안내: http://acc.zdnet.co.kr/Program.aspx?a=38 / 전시 참가 신청: http://acc.zdnet.co.kr/display.aspx?a=38

    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    기술 소식2010. 2. 22. 00:39

    PDC 2009에서 XDrive라는 이름으로 소개된 바 있는 Windows Azure Drive의 베타 버전이 공개되었습니다. Windows Azure Drive는 기존에 제공되던 세 가지 유형의 Storage Type 위에 추가되는 것으로 응용프로그램 배포 시 Windows Azure OS 1.1 이상의 버전을 선택하도록 하여야 클라우드 응용프로그램에서 사용할 수 있습니다. (1.0 버전의 경우, Windows Azure Drive에 관련된 API가 없습니다.)

     

    Windows Azure Drive는 기존의 BLOB 스토리지와는 별개로 Paged BLOB으로 불립니다. 내부적으로 VHD (Windows Virtual PC에서 사용하는 가상 하드 디스크 포맷과 같습니다.) 파일을 생성하여 이를 VM에 마운트하는 방식으로 사용할 수 있습니다. 그리고, 이렇게 마운트한 VHD 파일은 Windows 7이나 Windows Server 2008 R2의 경우와 마찬가지로 Windows Azure VM 내에서는 드라이브 문자가 할당되고, NTFS API를 통하여 File I/O를 수행할 수 있게 됩니다.

     

    지정할 수 있는 VHD 파일의 논리적 크기는 최소 16MB에서 최대 1TB까지 가능하지만, 실질적으로는 VHD 형식과 NTFS 파일 시스템의 오버 헤드로 1TB를 완전히 사용할 수는 없습니다. (오차가 있을 수 있다는 뜻이 됩니다.) 그리고 한 VM에서 한 번에 최대 16개의 VHD를 마운트할 수 있습니다. 부수적으로 VHD 파일의 안전한 백업을 위하여 스냅샷 작성 기능을 제공합니다. 스냅샷 기능을 통하여 만들어진 백업 버전의 VHD 파일은 읽기 전용으로 Windows Azure 응용프로그램 내에서 다시 마운트가 가능합니다.

     

    Windows Azure Drive를 이용하여 클라우드 응용프로그램을 개발하려면 2010년 2월 버전의 SDK를 필요로 합니다. 그 외 자세한 정보는 아래의 링크들을 참고하십시오.

     

     

     

    ps. (2010/04/13) 네이버 (http://www.naver.com) 메인 페이지 - 아크몬드의 윈도우 캐스트에 소개되었네요. 방문해주신 모든 분들께 감사드리며, 아크몬드님께 감사드립니다. :-)

     

     

     

    Posted by Cloud Developer 남정현 (rkttu.com)

    댓글을 달아 주세요

    1. 비밀댓글입니다

      2010.04.13 17:38 [ ADDR : EDIT/ DEL : REPLY ]