내보내기(0) 인쇄
모두 확장
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

Windows Azure 클라우드 서비스에 대한 개발 고려 사항

업데이트 날짜: 2013년 2월

Windows Azure 클라우드 서비스로 응용 프로그램 마이그레이션을 고려 중이라면 먼저 Windows Azure 클라우드 서비스를 이해하고 배우는 것이 좋습니다. Windows Azure 소개 문서에서는 Windows Azure의 구성 요소, 데이터 관리 및 지원되는 프로그래밍 SDK(소프트웨어 개발 키트)에 대해 설명합니다.

이 항목은 Windows Azure 응용 프로그램 구현 소개를 목적으로 합니다. 수많은 마이그레이션 시나리오가 있을 수 있으므로 개발자는 응용 프로그램과 사용자에게 가장 적합한 기술과 솔루션을 선택하는 것이 좋습니다.

기존 응용 프로그램을 Windows Azure로 마이그레이션하려면 다음 작업을 수행해야 합니다.

  • Windows Azure 특정 구성 및 사용자 지정 코드 추가

  • Windows Azure 응용 프로그램으로 기존 응용 프로그램 다시 패키지

  • Windows Azure 가상 컴퓨터에서 실행되는 클라우드 서비스로 응용 프로그램 배포

Windows Azure 클라우드 서비스에는 Windows Azure에 대한 응용 프로그램 코드 및 관련 구성 설정이 모두 포함됩니다. 클라우드용 응용 프로그램을 개발하는 경우 개발자가 분산 환경에서 가용성, 확장성, 안정성 및 보안을 처리하기 위해 응용 프로그램을 설계할 때처럼 일반 아키텍처 패턴을 적용할 수 있습니다. 또한 개발자는 서비스 수준 계약, 용량 계획, 고객 요금 청구, 감사, 응용 프로그램 모니터링, 트래픽 분석, 관리 비용 및 확장 또는 축소 시기를 고려해야 합니다.

저자: Selcin Turkarslan
검토자: Valery Mizonov, Avilay Parekh, Paolo Salvatori, Steve Howard

Windows Azure에서 클라우드 서비스 만들기

기존의 사설 데이터 센터 환경에서는 서비스를 실행하기 위해 하드웨어를 구입, 설정 및 유지 관리해야 합니다. Windows Azure에서는 가상화된 리소스를 할당하여 요청 시 확장할 수 있는 응용 프로그램을 설계하고 작성할 수 있습니다. 일부 내부 응용 프로그램은 아주 조금만 변경하거나 전혀 변경하지 않고 Windows Azure에서 실행할 수 있지만, 대부분의 응용 프로그램은 사실상 클라우드용으로 디자인하고 설계하는 것이 효과적일 수 있습니다. Windows Azure를 최대로 활용하려면 Windows Azure로 마이그레이션하기 전에 여러 역할을 사용하여 응용 프로그램을 수정하는 것이 좋습니다.

예를 들어, 레거시 데이터 센터에서 호스팅되는 웹 서비스는 대개 여러 기능을 단일 응용 프로그램으로 결합합니다. 이러한 응용 프로그램은 확장성이 떨어집니다. 또한 이러한 서비스는 로컬 디스크 드라이브에 응용 프로그램 상태를 저장하므로 Windows Azure 클라우드 서비스 환경에서는 작동하지 않습니다. 기존 웹 응용 프로그램에서 Windows Azure로 마이그레이션하려는 경우 두 가지 옵션이 있습니다.

Windows Azure 클라우드 서비스에서는 모든 응용 프로그램이 하나 이상의 역할로 구현됩니다. 역할마다 응용 프로그램의 기능의 일부를 수행하는 데 필요한 코드와 구성 정보가 있습니다. 웹 역할은 웹 브라우저나 다른 HTTP 클라이언트(Microsoft의 웹 서버인 IIS에서 실행)와 직접적으로 상호 작용하는 프런트 엔드 서비스와 코드에 사용됩니다. 작업자 역할은 일반적으로 백그라운드 처리 및 지원 작업을 수행하는 데 사용되며 중간 계층 서비스에 가장 적합합니다. 역할마다 여러 인스턴스가 있을 수 있습니다. 각 인스턴스는 역할에 대해 작성된 동일한 코드를 실행하지만 각 역할 인스턴스는 Windows Azure 데이터 센터의 개별 가상 컴퓨터에 상주합니다. 각 역할의 인스턴스에서 사용할 VM 크기를 지정할 수 있습니다. 자세한 내용은 MSDN 라이브러리에서 가상 컴퓨터 크기 구성 방법을 참조하십시오. 역할 간 기능 차이뿐만 아니라, 각 역할은 응용 프로그램의 확장 단위로 사용됩니다. 다시 말해 추가 트래픽을 제공할 웹 역할 인스턴스 20개와 웹 역할에서 요청을 비동기적으로 처리할 작업자 역할 인스턴스 5개만 있을 수 있습니다. 예를 들어, 간단한 ASP.NET, PHP, Node.js 응용 프로그램이나 WCF 서비스를 만들려는 경우에는 웹 역할 하나만 사용하면 됩니다. 응용 프로그램을 프로덕션 환경으로 업로드하기 전에 클라우드 서비스에 대한 세부 기능 및 성능 테스트를 수행하여 최적의 역할 인스턴스 수와 VM 크기를 결정하는 것이 좋습니다. 클라우드 서비스 개념에 대한 자세한 내용은 Windows Azure 개발자 센터를 참조하십시오.

Windows Azure에서 제공하는 사용 가능한 저장소 옵션을 활용하는 것도 고려해 보는 것이 좋습니다. 저장소 옵션을 활용하면 응용 프로그램 논리를 간소화하고 클라우드 서비스의 성능을 향상시킬 수 있습니다. 응용 프로그램 마이그레이션을 계획하는 동안 각 데이터 저장소 옵션의 제한 사항을 이해하고 클라우드 서비스에 대해 어느 데이터 저장소 옵션을 언제 사용할지 확실히 알고 있어야 합니다. Windows Azure에서 사용 가능한 저장소 옵션에 대한 자세한 내용은 Windows Azure의 Windows Azure의 데이터 관리 서비스 개요을 참조하십시오. 또한 Windows Azure Caching 서비스를 사용하여 Windows Azure 응용 프로그램에 대한 메모리 기반 고속 저장소를 제공하고자 할 수 있습니다. 캐싱은 다른 백 엔드 소스의 정보를 임시로 저장하여 성능을 높이므로 클라우드의 데이터베이스 저장소 액세스 트랜잭션과 관련된 비용을 줄일 수 있습니다. 최상의 성능을 위해서는 Windows Azure SQL 데이터베이스 인스턴스나 저장소 계정을 호스팅하고 있는 데이터 센터와 대다수의 클라이언트에 가장 가까운 데이터 센터에 응용 프로그램을 배포하십시오. 그러나 데이터와 데이터 상주 위치에 대한 사법 또는 법률 문제가 우려되는 경우에는 데이터나 회사에 좀더 가까운 데이터 센터를 선택할 수 있습니다. 자세한 내용은 Windows Azure SQL 데이터베이스 사용 시 성능 고려 사항를 참조하십시오.

Windows Azure에서 응용 프로그램 개발

Windows Azure 클라우드 서비스 구현을 시작하려면 먼저 Windows Azure를 구독해야 합니다. 자세한 내용은 WindowsAzure.com 사이트를 참조하십시오. 그런 다음 개발 환경을 준비해야 합니다. Microsoft에서는 현재 .NET, Java, PHP, Node.js, 및 Python용 언어 관련 SDK를 제공합니다. 지원되는 프로그래밍 언어 및 플랫폼에 대한 최신 정보는 WindowsAzure.com 사이트를 참조하십시오. 또한 Windows Azure 다운로드 센터를 사용하여 모든 Windows Azure 클라이언트 라이브러리, SDK 및 명령줄 도구에 액세스할 수 있습니다.

Microsoft에서는 다양한 플랫폼에서 실행되는 클라이언트 응용 프로그램이 클라우드에 연결할 수 있도록 Windows Azure SQL 데이터베이스(SQL 데이터베이스)에 연결하는 기본 클라이언트 응용 프로그램에 대한 표준 클라이언트 연결 API로 ODBC를 채택했습니다. SQL Server Native Client OLE DB 공급자는 SQL Server 2012에 마지막으로 제공되며 SQL 데이터베이스에서는 지원되지 않습니다. Windows 또는 Windows Azure에서 응용 프로그램을 작성할 때는 SQL Server 2008 R2 이상과 함께 제공되는 SQL Server Native Client ODBC 드라이버를 사용해야 합니다. 응용 프로그램의 새 버전 및 향후 버전 개발 시 ODBC를 채택하는 것이 좋습니다. OLE DB를 사용하는 기존 응용 프로그램의 경우 향후 로드맵의 일부로서 응용 프로그램을 ODBC로 마이그레이션하는 것을 고려하는 것이 좋습니다. OLE DB 응용 프로그램을 ODBC 응용 프로그램으로 변환하는 방법에 대한 자세한 내용은 OLE DB에서 ODBC로 변환 지침 백서를 참조하십시오. Windows Azure Preview 버전부터 Windows Azure는 Windows Azure Web Sites라는 새 서비스를 서비스 공급자에게 제공합니다. 개발자는 이 새로운 서비스를 사용하여 웹 사이트를 신속하게 작성하고 Windows Azure에 배포할 수 있습니다. 이 새 서비스를 사용하여 Windows Azure 포털에서 웹 사이트를 직접 개발하고 게시할 수 있습니다. 자세한 내용은 WindowsAzure.com 사이트의 Windows Azure 웹 사이트를 참조하십시오.

다른 응용 프로그램 개발과 마찬가지로, 다중 테넌트 분산 클라우드 환경에서 가용성, 재해 복구 및 보안을 처리하도록 응용 프로그램을 설계해야 합니다. 자세한 내용은 Windows Azure의 Windows Azure SQL 데이터베이스 사용 시 고가용성 및 재해 복구 고려 사항Windows Azure용 보안 리소스를 참조하십시오. Windows Azure에 응용 프로그램을 등록하기 전에 소프트웨어 개발의 시작 단계에서 보안 요구 사항을 해결하는 것이 좋습니다. Windows Azure에서 응용 프로그램 개발에 대한 자세한 내용은 Windows Azure 응용 프로그램 개발을 참조하십시오.

Windows Azure 응용 프로그램 기록, 테스트, 진단 및 디버깅

Windows Azure가 클라우드에서 다중 테넌트의 확장 가능한 동적 플랫폼인 경우 응용 프로그램을 설계할 때 클라우드 관련 모니터링 및 진단 기술을 고려해야 합니다. 소프트웨어 개발 초기에 모니터링 및 진단을 고려하는 것이 좋습니다. 응용 프로그램이 클라우드에 배포된 후에는 기존 모니터링 및 진단 기술이 적절한 서비스를 제공하는지 여부를 평가하는 것이 좋습니다. 예를 들어, 많은 로그 파일을 생성하는 응용 프로그램의 경우 진단 및 로깅 설정을 조정해야 할 수 있습니다. 그러면 추가 분석을 위해 내부 환경으로 신속히 다운로드하거나 검사할 수 있는 적은 수의 로그 파일만 생성됩니다.

다음은 Windows Azure에 사용할 수 있는 몇 가지 문제 해결 도구 및 기술입니다.

  • WAD(Windows Azure Diagnostics): Windows Azure 서비스에서 작업 및 진단 데이터를 수집합니다. Windows Azure 진단은 분석을 위해 IIS 7.0 로그, Windows 진단 인프라 로그, Windows 이벤트 로그, 성능 카운터, 크래시 덤프 및 사용자 지정 오류 로그 등 다양한 데이터 원본의 진단 데이터를 구성 가능한 일정 간격으로 기록하고 수집된 정보를 Windows Azure 테이블 및 BLOB 저장소에 보관합니다. 자세한 내용은 Windows Azure 진단 개요를 참조하십시오.

  • System Center Windows Azure MP(관리 팩): Windows Azure 모니터링 관리 팩을 사용하면 Windows Azure에서 실행되는 응용 프로그램의 가용성과 성능을 모니터링할 수 있습니다. 자세한 내용은 Windows Azure 응용 프로그램용 모니터링 팩 가이드를 참조하십시오. Windows Azure 진단과 System Center Windows Azure 관리 팩을 모두 사용하여 Windows Azure 응용 프로그램의 가용성과 성능을 효과적으로 모니터링하는 것이 좋습니다. 추가 비디오는 System Center 2012: 사설 및 공용 클라우드에서 응용 프로그램 관리를 참조하십시오.

  • Windows Azure 저장소 분석: 로깅을 수행하고 저장소 계정에 대한 메트릭 데이터를 제공합니다. 이 데이터를 사용하여 요청을 추적하고, 사용자 추세를 분석하고, 저장소 계정 관련 문제를 진단할 수 있습니다. 자세한 내용은 MSDN 라이브러리의 저장소 분석을 참조하십시오.

  • SQL 데이터베이스 연결 관리: 응용 프로그램에서 재시도 논리를 구현하여 오류 코드를 처리합니다. 자세한 내용은 TechNet wiki의 SQL 데이터베이스의 연결 관리를 참조하십시오.

  • Windows Azure PowerShell Cmdlet: Windows Azure PowerShell Cmdlet을 사용하면 PowerShell에서 Windows Azure 클라우드 및 데이터 관리 서비스를 직접 검색, 구성 및 관리할 수 있습니다. 이러한 도구는 Windows Azure 서비스를 사용하는 응용 프로그램을 개발 및 테스트할 때 유용할 수 있습니다. 자세한 내용은 Windows Azure PowerShell Cmdlet을 참조하십시오.

다른 응용 프로그램과 마찬가지로 Windows Azure 클라우드 서비스도 기능, 종단 간 실행, 성능, 확장성, 보안 등 프로덕션 환경으로 업로드하기 전에 세부 테스트를 거쳐야 합니다.

자세한 지침은 Windows Azure 응용 프로그램 개발을 위한 최선의 문제 해결 방법을 참조하십시오. 보충 정보로 MSDN 라이브러리의 Windows Azure에서 호스팅된 서비스 및 로깅 데이터 모니터링Windows Azure 응용 프로그램 테스트, 관리, 모니터링 및 최적화를 참조하십시오.

Windows Azure의 클라우드 기반 네트워킹 및 연결 옵션

Windows Azure는 기존 응용 프로그램을 클라우드와 통합하고 네트워크 트래픽을 관리하는 데 사용할 수 있는 다양한 네트워킹 기능을 제공합니다. 다음은 Windows Azure의 기본 네트워킹 및 연결 구성 요소입니다.

  • Windows Azure Service Bus: Windows Azure 내의 서비스 간 통신 및 내부 서버와 Windows Azure 간 통합 유지를 위해 Windows Azure Service Bus를 사용하는 것이 좋습니다. Service Bus는 응용 프로그램 계층에서 보안 메시징 및 릴레이 기능을 제공합니다. Windows Azure Service Bus는 https://myhostname.servicebus.windows.net과 같이 단순 통합 네임스페이스로 공용 네트워크에서 공통 보안 메시징 서비스를 지원하는 클라우드 기반 통신 인프라를 제공합니다. 또한 Service Bus는 .NET API, REST API 및 WCF 프로그래밍 모델을 지원합니다.

  • Windows Azure 액세스 제어 서비스: Windows Azure 액세스 제어를 사용하여 클라우드에서 호스팅하는 WCF 및 REST 웹 서비스와 최종 사용자 응용 프로그램에 대해 페더레이션된 클레임 기반 액세스 제어를 제공하는 것이 좋습니다. 액세스 제어는 복잡한 인증 논리를 코드로 분할할 필요 없이 웹 응용 프로그램과 서비스에 액세스해야 하는 사용자를 쉽게 인증하는 방법을 제공하는 Windows Azure 서비스입니다. 이 서비스는 WIF(Windows Identity Foundation)와의 통합도 제공합니다. ACS에 대한 자세한 내용은 Windows Azure 액세스 제어 서비스로 웹 사용자 인증 방법을 참조하십시오.

  • Windows Azure 트래픽 관리자: 트래픽 관리자를 사용하면 수신 트래픽 부하를 여러 호스팅 Windows Azure 서비스(동일한 데이터센터 또는 전 세계의 여러 데이터센터에서 실행되는지 여부와 상관 없음)에 분산할 수 있습니다. 트래픽을 효과적으로 관리하여 응용 프로그램의 성능, 가용성 및 복원력을 높일 수 있습니다. Windows Azure 트래픽 관리자는 현재 CTP(Community Technology Preview)에 포함되어 있으며 무료로 사용할 수 있습니다.

  • Windows Azure 콘텐츠 배달 네트워크: Windows Azure CDN(콘텐츠 배달 네트워크)은 응용 프로그램에 대한 최상의 경험을 제공하기 위해 고객이나 사용자에게 가장 가까운 위치에서 콘텐츠를 캐싱할 수 있는 글로벌 솔루션을 개발자에게 제공합니다. CDN은 사용자에게 콘텐츠 배달을 위한 최대 대역폭을 제공하기 위해 전략적인 위치에 컴퓨터 인스턴스의 정적 콘텐츠 출력과 Windows Azure BLOB을 캐싱합니다. Windows Azure 플랫폼 관리 포털을 사용하여 콘텐츠 공급자에 대해 CDN 배달을 설정할 수 있습니다. 자세한 내용은 Windows Azure CDN 개요를 참조하십시오.



  • Windows Azure 가상 네트워크: Windows Azure Preview 릴리스부터 내부와 클라우드 사이에 보안 사이트 간 네트워크 연결을 제공하는 이 새 서비스가 지원됩니다. 자세한 내용은 MSDN 라이브러리의 Windows Azure 가상 컴퓨터 개요를 참조하십시오.

  • Windows Azure SQL 데이터 동기화(SQL 데이터 동기화): 이 서비스는 현재 두 가지 주요 기능을 제공합니다. 이 서비스를 사용하면 Windows Azure SQL 데이터베이스의 데이터베이스와 내부 SQL Server 데이터베이스 간에 데이터를 동기화하여 내부 및 클라우드 기반 응용 프로그램에서 동일한 데이터를 활용할 수 있습니다. 또한 데이터가 동일한 데이터 센터에 있는지 아니면 다른 데이터 센터 또는 지역에 있는지에 관계없이 여러 SQL 데이터베이스 인스턴스 간에 데이터를 동기화할 수 있습니다. SQL 데이터 동기화는 흔히 Windows Azure 트래픽 관리자와 함께 사용됩니다. 경고: SQL 데이터 동기화는 현재 미리 보기로만 사용할 수 있으며 이후 릴리스를 위한 제품 사용자 의견용으로만 사용되므로 프로덕션 환경에서는 사용할 수 없습니다.

자세한 내용은 Windows Azure의 네트워킹 및 캐싱을 참조하십시오.

Windows Azure에서 응용 프로그램 배포 및 관리

클라우드 서비스 또는 응용 프로그램 개발을 완료한 후에는 컴파일하여 Windows Azure에 업로드합니다. 다음과 같은 4가지 배포 시나리오가 있습니다.

  • 새 배포

  • 구성 변경

  • 증분형 코드 업그레이드

  • 주요 업그레이드

Windows Azure에서는 하나의 Windows Azure 계정으로 여러 구독을 구성할 수 있습니다. 이를 통해 서비스마다 별도의 개발 및 테스트 환경을 구축할 수 있습니다. 이 경우 먼저 서비스를 테스트 구독에 배포하고 나서 프로덕션 구독에 배포하는 것을 고려해 보십시오. 클라우드 서비스를 프로덕션 구독에 배포한 후에는 연속 테스트에 준비 환경을 사용할 수 있습니다. 서비스를 가동할 준비가 되면 프로덕션 환경으로 이동할 수 있습니다.

참고 항목

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft. All rights reserved.