Real-World Windows Azure Development Guide – Windows Azure에 대한 생각 뒤집기

Windows Azure를 이용하여 프로그래밍을 하는 작업은 개발자나 관리자 모두에게 큰 변화를 요구합니다. 그 중에서도 가장 큰 변화는, 관리하고 점검해야 할 리소스의 폭 자체에 큰 변동이 온다는 것입니다. 대개의 경우, 인프라를 서비스로 제공받을 것인지, 플랫폼까지를 서비스로 제공받을 것인지, 심지어는 소프트웨어 자체를 서비스로 제공받기를 원할지 중에서 하나를 골라야 합니다. 하지만 개발자들의 관심사는 무엇을 서비스로 제공하는 것 말고도, “어떻게활용할 수 있는가에 대한 것 역시 이슈가 됩니다.


Windows Azure와 같은 플랫폼 기반 클라우드에 대해서 일반적으로 많이 오해하는 부분 중 하나는, 지금 내가 운영 중인 웹 사이트나 서비스 전체를 클라우드로 옮겨야만 하는 것에 대한 부분입니다. 이렇게 하지 않으면 클라우드를 쓰는 것이라고 말할 수 없는 것일까요? 결론부터 이야기하면 전혀아닙니다. 클라우드를 이용하는 방법은 전적으로 여러분의 아이디어에 달려있는 것이다.


신뢰할 수 있고 유연한 저장소를 응용프로그램에 통합하기


Windows Azure에는 서비스나 웹 사이트를 호스팅하기 위한 Compute가 있고, Compute의 성능에 대응할 수 있는 초고속 대용량 저장소인 Storage 서비스가 같이 그룹을 지어 다닙니다. 물론 둘 사이는 Affinity Group으로 묶어서 재해가 발생했을 경우 가용성을 보장할 수 있도록 밴드를 형성하는 것이 기본입니다. 하지만, 기존에 개발 중인 소프트웨어 그 자체에 신뢰할 수 있고 유연한 저장소를 만들고자 한다면 독립적으로 Storage 서비스만을 이용할 수도 있습니다.


익히 알려진 대로, Storage 서비스에는 세부적으로 세 가지 유형의 저장소가 있습니다. 대표적으로 파일을 저장하거나 BLOB 이미지를 관리할 수 있는 BLOB Storage, 대용량 비 관계형 데이터베이스인 Table Storage, 그리고 고속으로 메시지를 큐에 저장하고 불러올 수 있는 Queue Storage가 있습니다. 이들 서비스 모두 HTTP HTTPS 프로토콜을 지원하는데다가, RESTFUL 기반 서비스이기 때문에 인터넷과 호환되는 응용프로그램을 개발할 것이라고 한다면, 여러분이 어떤 개발 도구를 사용하든, 어떤 운영 체제를 목표로 응용프로그램을 개발하든 관계없이 마음껏 활용할 수 있습니다. C# Visual Basic .NET 의 경우 Windows Azure SDK 안의 공식 어셈블리를 사용하면 LINQ to Azure Table Storage까지 사용할 수 있으며, 그 외 많은 오픈 소스 라이브러리들을 Microsoft Interoperability Bridge 공식 웹 사이트를 통하여 찾아볼 수 있습니다.


여러분의 웹 사이트를 좀 더 인터넷 친화적으로 만들기


요즈음 웹 사이트들은 매우 개방적입니다. 단순히 RSS ATOM Feed로 데이터를 노출한다거나, RESTFUL 기반 URL 다시 쓰기를 지원한다고 해서 그런 것이 아니라, 인증에 대한 개념 자체를 완전히 다르게 해석하고 접근하는 사이트들이 많기 때문입니다. Open ID, Live ID 등 다양한 방법으로 불리고 있지만 한 가지 일관성을 보이는데 바로 이들 개별 웹 사이트들은 여러분의 ID와 암호가 무엇인지에 대해서는 전혀 관심이 없고, 그저 여러분이 누구인지에 대해서만 관심이 있을 뿐이라는 점입니다. 이러한 인증 행태를 놓고 클레임 기반 인증이라고 말합니다.


클레임 기반의 인증을 사용하는 웹 사이트들의 대표적인 예로, Twitter 관련 플러그인 사이트들이 있으며, 페이스 북에 올라가는 수많은 Social App들 역시 그러합니다. 그리고 국내에서는 그간 유명했던 스프링노트가 Open ID를 잘 지원하고 있고, 과거의 이야기가 되었지만 ME2DAY 역시 Open ID를 지원했던 때가 있습니다. 클레임 기반의 인증을 통하게 되면 어떤 이점이 있기에 이렇게 많은 웹 사이트들이 채택을 하고 있는 것일까요? 조금 전에 이야기한 것처럼, 여러분의 웹 사이트가 책임지고 관리해야 할 위험 부담 중 가장 큰 것을 완전히 덜어버리고 비용도 절감할 수 있기 때문입니다.


클레임 기반의 인증을 여러분의 웹 사이트에 적용한다는 것은, 해당 웹 사이트를 방문하는 사용자들이 이미 타 기관에서 인증을 거친 후에 다시 여러분의 웹 페이지로 이동한 것을 의미하고 여기에 대한 모든 정보를 해당 인증 기관으로부터 선택적으로 넘겨 받게 되는 것입니다. 다시 이야기하지만 상대방의 ID와 암호를 알 필요 없이 피아식별이 된 상태를 유지할 수 있다는 것입니다.


Windows Azure의 경우, 여기에 한 가지 더 편리한 서비스를 제공하는데, 이번에 새로 업그레이드된 Windows Azure AppFabric Access Control v2.0이 그 주인공입니다. 이하 Access Control은 처음 발표 당시에는 여러분이 소유하고 있었던 Active Directory를 인증의 주체로 세울 수 있는 Active Directory Federation Services (AD FS)와 이에 연관된 서비스만을 지원했지만, 이번 업그레이드에서는 그 뿐만 아니라 Windows Live ID, Google, Yahoo, Facebook 등의 유명한 인터넷 서비스 공급자들의 ID로 신원 인증 수단으로 추가 지원하게 되었습니다. 인증 관련 서비스에 장애가 발생할 걱정 없이, 그리고 여러분의 개별 웹 사이트에 대한 해킹 위험은 최소화시키면서 서비스 그 자체에만 집중할 수 있게 되는 것입니다.


확장 가능한 Cache/Session 서비스 사용하기


Windows Azure에 근래 들어서 추가된 또 다른 매력적인 서비스는 바로 AppFabric Cache 서비스입니다. AppFabric Cache Server AppFabric Cache와 기술을 공유하지만, 내부적으로는 Windows Azure Cloud Computing 기술을 바탕으로 매우 높은 성능의 Cache 서비스를 제공하는 것으로, ASP .NET 뿐만 아니라 다른 여러 플랫폼과도 혼용해서 사용할 수 있는 것이 장점입니다.


단순히 Cache 서비스뿐만 아니라, Session State까지 AppFabric Cache에서 통합 관리할 수 있기 때문에, 사이트 간 Session 공유나 Single Sign On 등의 기능을 어렵지 않게 구현할 수도 있습니다.


그 외에도 수 많은 가능성들


이 글에서 모두 열거하기 힘들 정도로 Windows Azure의 서비스들은 날이 갈수록 풍성해지고 성숙도를 더해가고 있습니다. Real-World Windows Azure Development Guide 시리즈는 Windows Azure Platform의 여러 기술들을 지속적으로 알리고 개발자들에게 좀 더 친숙한 Cloud 개발을 할 수 있는 방안을 모색하기 위하여 시리즈로 연재 될 예정입니다. 많은 관심과 피드백을 독자 여러분들께 부탁 드리고자 합니다.


 

댓글 남기기