블로그, 데브피아, MSDN 라이브러리 동시 검색 (Powered by Google): 

Windows Azure는 Windows Server의 검증된 기술과 성능을 바탕으로 운영되는 클라우드 컴퓨팅 플랫폼입니다. 그리고, 이러한 조건을 바탕으로, 기존에 이 블로그를 읽어주시는 독자 여러분들께서 운영하시던 ASP.NET 기반의 웹 사이트들도 Windows Azure 위에서 호스팅이 가능하도록 수정하는 것도 웹 사이트의 규모나 복잡도에 따라서 다소 차이는 있을 있지만 비교적 손쉽게 이식할 수 있습니다.

 

Windows Azure로 기존의 ASP.NET 웹 사이트를 이관하면서 생각해보아야 할 이슈 사항들을 이번 개요 Chapter에서 하나씩 살펴보도록 하겠습니다.

 

1. 데이터베이스에 의존하는 어플리케이션의 경우

 

대부분의 경우, ASP.NET 웹 사이트들은 Microsoft SQL Server나 기타 다른 유형의 RDBMS와 상호작용하면서 서비스를 제공합니다. 클라우드 환경 위에서 응용프로그램을 구동하기 위해서는, 데이터베이스를 어떤 형태로 이관할 것인지 구상할 필요가 있습니다.

 

웹 사이트에서 필요로 하는 데이터베이스는 대체로 소규모 데이터베이스이고, 단독으로 이관이 가능한 데이터베이스이므로 SQL Azure로 이관하여 클라우드 환경에 대응이 가능한 데이터베이스로 구현을 바꾸는 것이 유리합니다.

 

만약, 데이터베이스 도입 비용을 줄이고, 핵심적인 데이터 조회/저장 기능만을 사용하고자 한다면, Windows Azure의 Table Storage로 저장 방식을 변경하는 작업도 고려해볼 수 있습니다. 테이블 간의 외래 키 제약 조건이나, 특수한 인덱스 설정을 이용하거나, 저장 프로시저와 같은 RDBMS 전용의 기술을 사용하지 않는 경우 클라우드 서비스 비용을 줄이는데에 도움이 될 수 있습니다.

 

2. 설정 파일의 수정이 빈번한 웹 어플리케이션의 경우

 

Windows Azure 위에 게시되는 응용프로그램은 CSPKG와 CSCFG 파일의 형태를 띕니다. CSPKG 파일은 Windows Azure 위에서 사용할 수 있도록 포장된 ZIP 형식의 패키지이며, CSCFG 파일은 Windows Azure 위에서 구동될 응용프로그램의 일반적인 설정을 포함하는 XML 문서입니다. ASP.NET 웹 사이트의 경우, 관련된 클래스 라이브러리를 포함하여 모두 CSPKG 파일 안에 포장되어 들어가게 됩니다.

 

기존 ASP.NET 웹 사이트를 운영하면서, web.config이나 web.config에서 branch를 만들어 별도의 XML 파일을 자주 수정하였던 경우, 이러한 방식을 그대로 사용하면 설정이 바뀔 때 마다 매번 새로운 패키지를 만들어서 업데이트해야 하는 문제가 수반됩니다. 이를 피하기 위하여, Windows Azure 런타임 어셈블리를 ASP.NET 웹 사이트 프로젝트의 참조에 추가하고, Windows Azure Application의 설정을 대신 사용하도록 구성하는 것이 유리합니다.

 

CSCFG 파일의 정보를 읽기 위하여 아래의 도우미 코드를 활용할 수 있습니다.

 

public class SettingsManager
{
   private static Settings _settings = new Settings();
   public static Settings Settings
   {
      get
      {
         return _settings;
      }
   }
}

public class Settings
{
   public string this[string key]
   {
      get
      {
         if (RoleManager.IsRoleManagerRunning)
         {
            return RoleManager.GetConfigurationSetting(key);
         }
         else if (System.Web.HttpContext.Current != null)
         {
            return WebConfigurationManager.AppSettings[key];
         }
         return string.Empty;
      }
   }
}

위의 코드를 활용하는 예시는 다음과 같습니다. RoleManager.IsRoleManagerRunning 프로퍼티를 이용하여 클라우드 위에서 실행 중인 응용프로그램인지의 여부를 결정할 수 있습니다.

 

if (RoleManager.IsRoleManagerRunning)
{
   // we're in the cloud
   message.Text = RoleManager.GetConfigurationSetting("messageText");
}
else if (System.Web.HttpContext.Current != null)
{
   // we're NOT in the cloud, but we're still in a Web application
   message.Text = WebConfigurationManager.AppSettings["messageText"];
}
else
{
   // not in the cloud, not in the web... desktop app maybe?
   message.Text = ConfigurationManager.AppSettings["messageText"];
}

 

위의 샘플 코드는 http://blogs.itmentors.com/bill/2009/11/04/configuration-files-and-windows-azure 에서 발췌하였습니다.

 

3. IIS의 다른 기능 (SMTP, FTP)에 관한 이슈

 

Windows Azure의 Web Role이 IIS를 사용하기는 하지만, 있는 그대로의 기능을 모두 제공하는 것은 아닙니다. 대표적으로 SMTP와 FTP를 사용해야 하는 웹 사이트의 경우, Windows Azure로 있는 그대로의 상태를 유지하여 이관하는것은 어려울 수 있습니다. Windows Azure에서 SMTP와 FTP를 활용하기 위해서는 Worker Role을 이용해야 하며, 나아가서는 Windows Azure Storage를 응용해야 할 수 있습니다.

 

결론

 

이번 Chapter에서는 ASP.NET 웹 사이트를 Windows Azure로 이관하기 위하여 고려해야 할 사항들을 살펴보았습니다. 다음 Chapter에서는 ASP.NET 웹 사이트를 Windows Azure로 이관하는 과정에서 추가하는 EntryPoint 클래스에 대한 구체적인 분석을 해보도록 하겠습니다.

 

감사합니다.

profile image

Blog Address / http://www.rkttu.com/ Mail Address / rkttu / no / spam / rkttu / dot / com /

실제 Windows Azure 계정을 신청하기 이전에, Windows Azure 기반의 개발을 테스트하기 위하여 보통 Windows Azure SDK와 함께 제공되는 Development Fabric을 이용하여 주로 디버깅하실텐데요, 잘 동작하지 않아서 힘든 경우가 있습니다.

 

Windows Azure Development Fabric을 이용하여 프로그래밍할 때 경험할 수 있는 문제점 중 하나는, Development Fabric으로 디버거를 연결하거나, 응용프로그램 패키지를 Deploy할 때 실패할 가능성이 "종종" 있다는 점입니다. 이 부분에 대한 간단한 트러블슈팅 가이드를 써봅니다.

 

1. Development Fabric으로 프로그램을 배포하려고 할 경고 메시지가 여러번 나타난다?

 

관리자 모드로 Visual Studio를 시작하고, Development Fabric으로 디버깅을 시작하려고 할 때, 빌드 출력 창에 경고 메시지가 나타나는 경우가 있습니다. 경고 메시지의 내용은 아래와 같이 나타날 수 있습니다.

 

Windows Azure Tools: Warning: The Windows Azure development fabric and development storage are running on a 32-bit workstation. In the cloud, Windows Azure Hosted Services run in a 64-bit environment. The use of native code execution or .Net Full Trust features such as P/Invoke may require migration to 64-bit. See http://go.microsoft.com/fwlink/?LinkId=145047 for details.

 

Windows Azure 환경 위에서 실제로 운영되는 OS의 아키텍처는 32비트가 아닌 64비트 버전이기 때문에, Web Role이나 Worker Role에서 사용중인 Platform Invoke 시그니처 들이 실제 운영 환경에 배포되었을 때는 맞지 않을 수도 있으니 마이그레이션을 해야 한다는 안내 문구이며, 일반 출력 창에 나타나는 메시지이기 때문에 여러번 디버깅을 시작할 경우 여러줄에 걸쳐서 문구가 쌓여서 표시될 수 있으니 걱정하지 말고 디버깅하시면 됩니다.

 

2. Development Fabric으로 진입하는 도중에 Visual Studio가 응답 없음 - 또는 - 마우스/키보드 동작을 받아들이지 않고 경고음만을 낸다? / Development Fabric이 기동되는듯 하다가 한참 후에 Null Reference 오류가 발생한다?

 

실제 디버깅에 들어가지 못하고 Visual Studio가 먹통이 되는 경우 또한 간혹있을 수 있습니다. 이는 Development Fabric이 정상적으로 초기화되지 못하였을 경우 발생할 수 있는 문제이며, Windows Azure Development Fabric을 사용하실 때에는 아래의 내용을 숙지하셔서 Development Fabric이 정확히 초기화 작업을 처리할 수 있도록 하는 것이 좋습니다.

 

a. 한 번에 한 Windows Azure 응용프로그램에 대해서만 디버깅하실 것을 권합니다.

 

b. 디버깅이 끝나면, 작업표시줄의 트레이 아이콘 표시 영역에 나타난 Windows Azure Development Fabric 프로그램을 직접 종료하여 주십시오. 가급적, 디버깅이 끝나면 Windows Azure Simulation Service와 Storage Service는 함께 종료해야 하며, 프로그램을 직접 닫으려할 때, 기동 중인 서비스를 모두 중단시킬지 안내하는 창이 나타나면 중단하도록 선택하여 주십시오.

 

문제가 발생하였을 경우에는 다음과 같이 조치하실 수 있습니다.

 

a. 실행 중인 Visual Studio를 모두 종료하시고, Windows Azure SDK v1.1 프로그램 그룹에서 Development Fabric 아이콘을 더블 클릭하여 Standalone으로 Development Fabric을 시작합니다.

 

b. Storage 서비스의 기동 상태를 Windows Azure 아이콘을 오른쪽 버튼으로 클릭하여 확인하고, 시작되지 않았을 경우 강제로 시작을 시도합니다. 시작되지 않을 경우, SQL 서버 인스턴스가 시스템에서 실행 중인 것이 있는지 확인해 봅니다.

 

c. Show Development Storage UI 메뉴 항목을 클릭하고, 나타나는 화면에서 "Reset" 버튼을 클릭하여 스토리지 설정을 초기화하도록 예약합니다.

 

d. Windows Azure Development Fabric을 종료하며, 이 때 모든 서비스를 중단할지 묻는 메시지 박스에서 중단하도록 선택합니다.

 

e. Visual Studio를 열어서 빌드할 때, "정리" 기능을 이용하여 빌드 산출물들을 모두 제거하도록 한 후 다시 시도합니다.

 

3. Windows Azure로 응용프로그램을 개발하면서 인텔리센스 기능을 사용하려할 때 Visual Studio 2010이 갑자기 충돌을 일으키며 종료된다?

 

Visual Studio 2010 RC 패치 (KB980610)가 발표되었습니다.

위의 글에서 소개하는 KB980610 패치를 시스템에 설치하시기 바랍니다.

 

짧은 글이었지만, 도움이 되셨기를 바라며 글을 마무리해봅니다. 감사합니다. :-)

profile image

Blog Address / http://www.rkttu.com/ Mail Address / rkttu / no / spam / rkttu / dot / com /

FIX: Visual Studio 2010 Release Candidate crashes when the IntelliSense window appears or is dismissed in Text Editor 라는 이름으로 KB980610 문서로 등록된 Visual Studio 2010 RC 패치가 나왔습니다. Visual Studio 2010 RC 버전을 통하여 프로그래밍할 때, ASPX 페이지의 인텔리센스를 사용할 때 발생할 수 있는 프로그램 충돌 현상을 수정하는 것으로 RTM 버전에서는 수정될 것으로 보입니다.

 

Windows Azure를 이용하여 샘플 프로그래밍을 할 때에도 자주 경험할 수 있는 불편 사항이므로 Windows Azure SDK를 설치하여 테스트 중이신 분들도 모두 아래의 페이지에서 제공되는 패치를 다운로드하여 설치하실 것을 권합니다. 패치 설치 작업 도중에는 관리자 권한을 필요로 합니다.

 

http://support.microsoft.com/kb/980610

profile image

Blog Address / http://www.rkttu.com/ Mail Address / rkttu / no / spam / rkttu / dot / com /

지난번에 올렸던 Internet Explorer 9에 대한 인터뷰 기사에 이어서, 실질적인 IE 9.0의 모습을 살펴볼 수 있는 동영상도 같이 올려봅니다. 이 동영상은 IE 9 개발 팀이 진행하는 인터뷰이며, 전체적으로 Windows Live Mail과 GMail과 같이 자바스크립트 엔진을 극적으로 활용하는 웹 어플리케이션에서의 성능 향상이 얼마나 이루어지고 있는지를 보여줍니다.

IE 9부터는 인터넷 환경에 최적화된 자바스크립트 엔진을 직접 고안하고 개발하여 자바스크립트 기반의 웹 사이트에서 문제가 되는 속도 문제를 획기적으로 개선하고자 하는 것이 주된 취지입니다. 이 부분 만으로도, Internet Explorer로 보다 쾌적한 웹 검색 경험을 얻을 수 있을 것입니다. 그리고, 더 나아가서는 Direct 2D 엔진을 통하여 Windows Vista나 Windows 7에서 지원하는 Aero 엔진과 함께 고해상도 기반의 웹 브라우징도 경험이 가능할 것으로 보입니다.

아래 동영상을 감상하기 위해서는 Silverlight 플러그인이 필요합니다. 아래 동영상이 보이지 않을 경우, Silverlight 플러그인을 http://www.microsoft.com/silverlight 에서 설치하시거나, 브라우저 보안 설정을 확인하여 Silverlight 플러그인이 동작할 수 있도록 설정하여 주십시오. (원본 페이지: http://channel9.msdn.com/posts/Charles/IE-9-First-look-at-the-new-JS-Engine/)


profile image

Blog Address / http://www.rkttu.com/ Mail Address / rkttu / no / spam / rkttu / dot / com /

이번 Exploring Windows Azure 세미나를 시작으로 올 한해는 Windows Azure에 관련된 다양한 발표 및 소프트웨어 개발 활동을 병행해 나갈 계획에 있습니다. 계획의 일환으로, Windows Azure에서 사용할 수 있도록 이전부터 지속적으로 개발해 오던 xPlatform 프로젝트를 Windows Azure에서도 사용할 수 있도록 준비할 계획입니다.

xPlatform 프로젝트는 Windows를 시작으로, Linux, Mac OS X 등 다양한 운영 체제에서 기본적으로 닷넷의 기본 프레임워크에서는 노출하지 않는 Low Level API를 손쉽게 호출하고, 포인터나 비 관리 메모리 영역을 손쉽게 제어할 수 있도록 돕습니다. 현재는 32비트 버전의 Windows에서 사용할 수 있도록 코드를 완성하였고 첫 알파 릴리즈를 지난 가을에 런칭한 상태입니다.

Windows Azure는 단순히 웹 서비스를 클라우드 환경 위에 올리는것 뿐만이 아니라, Windows Azure의 바탕을 이루고 있는 64비트 버전의 운영 체제를 얼마나 잘 활용할 수 있는가에 대한 부분도 중요한 관건이 될 것입니다. Windows Azure의 기능을 극대화하고, 향후에 개발될 다양한 클라우드 기반 응용프로그램의 품질 향상에 기여할 수 있게 하기 위하여 xPlatform을 64비트 버전의 서버 운영 체제에서도 사용할 수 있도록 프로젝트 방향을 정하기로 하였습니다.

Windows Azure 개발 및 플랫폼 관련 프로그래밍에 관심있으신 개발자 여러분들의 많은 관심과 참여 부탁드립니다. 조만간, 64비트 버전으로 개량된 xPlatform 라이브러리를 런칭할 수 있도록 하겠습니다. 감사합니다. :-)


profile image

Blog Address / http://www.rkttu.com/ Mail Address / rkttu / no / spam / rkttu / dot / com /

이전 1 2 3 4 5 ... 59 다음