영업: 1-800-867-1380

Azure 가상 컴퓨터의 SQL Server에 대한 응용 프로그램 패턴 및 개발 전략

SQL Server 및 Azure에 대한 기술 문서

요약: Azure 환경에서 SQL Server 기반 응용 프로그램에 사용할 응용 프로그램 패턴을 결정하는 것은 디자인 측면에서 중요한 결정입니다. 이를 위해서는 SQL Server와 Azure의 각 인프라 구성 요소가 함께 작동하는 방법에 대해 확실하게 이해하고 있어야 합니다. Azure 인프라 서비스의 SQL Server를 통해 Windows Server에 구축된 기존 SQL Server 응용 프로그램을 Azure의 가상 컴퓨터로 마이그레이션, 유지 관리 및 모니터링할 수 있습니다.

본 문서는 뛰어난 응용 프로그램 아키텍처 및 디자인에 대한 기본적인 내용을 솔루션 설계자 및 개발자에게 제공하는 것을 목적으로 합니다. 솔루션 설계자 및 개발자는 본 문서의 내용에 따라 기존 응용 프로그램을 Azure로 마이그레이션하고 Azure에서 새 응용 프로그램을 개발할 수 있습니다.

각 응용 프로그램 패턴에 대해서는 온-프레미스 시나리오, 해당 클라우드 사용 솔루션 및 관련 기술 권장 사항을 다룹니다. 또한 응용 프로그램을 올바르게 디자인할 수 있도록 하기 위해 Azure 관련 개발 전략에 대해 설명합니다. 수많은 응용 프로그램 패턴이 있을 수 있으므로 설계자와 개발자는 응용 프로그램과 사용자에게 가장 적합한 패턴을 선택해야 합니다.

저자: Selcin Turkarslan

기술적으로 도와주신 분들: Luis Carlos Vargas Herring, Madhan Arumugam Ramakrishnan

기술 검토자: Corey Sanders, Drew McDaniel, Narayan Annamalai, Nir Mashkowski, Sanjay Mishra, Silvano Coriani, Stefan Schackow, Tim Hickey, Tim Wieman, Xin Jin

업데이트 날짜: 06-12-2014

콘텐츠

소개

별도의 구성 요소뿐만 아니라 여러 컴퓨터에 서로 다른 응용 프로그램 계층의 구성 요소를 분리하여 다양한 유형의 N 계층 응용 프로그램을 개발할 수 있습니다. 예를 들어 한 컴퓨터에 클라이언트 응용 프로그램 및 비즈니스 규칙 구성 요소를 배치하고, 다른 컴퓨터에 프런트 엔드 웹 계층 및 데이터 액세스 계층 구성 요소를 배치하며, 또 다른 컴퓨터에 백엔드 데이터베이스 계층을 배치할 수 있습니다. 이러한 종류의 구조화를 통해 각 계층을 서로 분리할 수 있습니다. 데이터가 오는 출처를 변경하는 경우 클라이언트 또는 웹 응용 프로그램을 변경할 필요없이 데이터 액세스 계층 구성 요소만 변경하면 됩니다.

일반적인 N 계층 응용 프로그램에는 다음과 같은 프레젠테이션 계층, 비즈니스 계층 및 데이터 계층이 있습니다.

  • 프레젠테이션 계층(웹 계층, 프런트 엔드 계층)은 사용자가 응용 프로그램과 상호 작용하는 계층입니다.

  • 비즈니스 계층(중간 계층)은 프레젠테이션 계층과 데이터 계층이 서로 통신할 때 사용하는 계층으로, 시스템의 핵심 기능이 포함되어 있습니다.

  • 데이터 계층은 기본적으로 응용 프로그램의 데이터를 저장하는 서버(예: SQL Server를 실행 중인 서버)입니다.

응용 프로그램 계층(Layer)은 응용 프로그램의 기능 및 구성 요소의 논리적 그룹화를 나타내는 반면 계층(Tier)은 개별 물리적 서버, 컴퓨터, 네트워크 및 원격 위치에서 기능 및 구성 요소의 물리적 배포를 나타냅니다. 응용 프로그램의 계층은 동일한 물리적 컴퓨터(동일한 계층)에 상주하거나 개별 컴퓨터(N 계층)에 배포되어 있을 수 있으며 각 계층의 구성 요소는 잘 구성된 인터페이스를 통해 다른 계층의 구성 요소와 통신합니다. 계층이라는 용어는 2계층, 3계층 및 N 계층과 같은 물리적 배포 패턴으로 생각할 수 있습니다. 2계층 응용 프로그램 패턴에는 응용 프로그램 서버 및 데이터베이스 서버, 이렇게 두 가지 응용 프로그램 계층이 있습니다. 응용 프로그램 서버와 데이터베이스 서버는 직접 통신합니다. 응용 프로그램 서버에는 웹 계층 및 비즈니스 계층 구성 요소가 둘 다 있습니다. 3계층 응용 프로그램 패턴에는 웹 서버, 응용 프로그램 서버(비즈니스 논리 계층 및/또는 비즈니스 계층 데이터 액세스 구성 요소가 들어 있음) 그리고 데이터베이스 서버, 이렇게 세 가지 응용 프로그램 계층이 있습니다. 웹 서버와 데이터베이스 서버는 응용 프로그램 서버를 통해 통신합니다. 응용 프로그램 계층(Layer)과 계층(Tier)에 대한 자세한 내용은 Microsoft 응용 프로그램 아키텍처 가이드를 참조하세요.

본 문서를 읽기 전에 SQL Server와 Azure에 대한 기본 개념을 알고 있어야 합니다. 자세한 내용은 SQL Server 온라인 설명서, Azure 가상 컴퓨터의 SQL ServerWindowsAzure.com을 참조하세요.

본 문서에서는 간단한 응용 프로그램뿐만 아니라 매우 복잡한 엔터프라이즈 응용 프로그램에도 적합할 수 있는 여러 가지 응용 프로그램 패턴에 대해 설명합니다. 각 패턴에 대해 자세히 설명하기 전에 Azure에서 사용할 수 있는 데이터 저장소 서비스(Azure 저장소, Azure SQL 데이터베이스Azure 가상 컴퓨터의 SQL Server)에 대해 익히는 것이 좋습니다. 응용 프로그램에 가장 적합한 디자인을 결정하려면 언제 어떤 데이터 저장소 서비스를 사용해야 할지 명확하게 이해합니다. 데이터 관리: 올바른 기술 선택 문서에서는 Azure의 각 데이터 저장소 서비스를 자세히 비교합니다.

요약하자면, 다음과 같은 경우 Azure에서 SQL Server를 선택합니다.

  • SQL Server 온-프레미스와의 완전한 호환성이 필요하고 기존 응용 프로그램을 Azure로 있는 그대로 마이그레이션하려고 합니다.

  • Azure 환경의 기능을 활용하려고 하지만 Azure SQL 데이터베이스(SQL 데이터베이스)에서 응용 프로그램 또는 데이터베이스에 필요한 다음과 같은 일부 기능을 지원하지 않습니다.

    • 고가용성 및 재해 복구: SQL Server의 기존 가용성 및 재해 복구 기능(예: AlwaysOn 가용성 그룹 또는 데이터베이스 미러링)이 필요할 수 있습니다. Azure 가상 컴퓨터에서 SQL Server를 사용하면 응용 프로그램에 맞는 SQL Server 기반 고가용성 및 재해 복구 솔루션을 설정하고 실행할 수 있는 모든 권한을 가집니다. 이러한 기능은 Azure에서 소프트웨어 또는 하드웨어 장애나 운영 체제 업그레이드로 인한 가동 중단이 발생하지 않도록 방지합니다. 반면에 Azure SQL 데이터베이스는 Azure에서 노드 수준 오류에 대한 복구 기능을 기본적으로 제공합니다. 노드 오류가 발생할 경우 데이터베이스가 자동으로 보조 복제본 중 하나로 장애 조치(failover)합니다. 장애 조치(failover) 발생을 제어할 수 있는 방법이 없으므로 SQL 데이터베이스에 대해 실행 중인 클라이언트 응용 프로그램의 연결 오류를 처리해야 합니다.

    • 데이터베이스 크기: 현재 SQL 데이터베이스에서는 최대 150GB 데이터로 구성된 데이터베이스를 지원합니다. 응용 프로그램에 데이터가 150GB 이상 필요한데 사용자 지정 분할 솔루션을 구현하지 않으려는 경우 Azure 가상 컴퓨터에서 SQL Server를 사용하는 것이 좋습니다.

    • HIPAA 규정 준수: Azure 가상 컴퓨터의 SQL Server는 HIPAA BAA(사업 협력 계약) 적용 대상이므로 의료 부문 고객 및 ISV(Independent Software Vendor)는 Azure SQL 데이터베이스 대신 Azure 가상 컴퓨터의 SQL Server를 선택할 수 있습니다. 규정 준수에 대한 자세한 내용은 Azure 보안 센터를 참조하세요.

    • 기능 격차: 일부 고객은 Azure SQL 데이터베이스의 기능 격차(예: 백업 및 복원 시 데이터 압축 및 유연성) 때문에 Azure SQL 데이터베이스 대신 Azure 가상 컴퓨터의 SQL Server를 선택할 수 있습니다. 자세한 내용은 Guidelines and Limitations (Azure SQL Database)를 참조하십시오.

1계층 응용 프로그램 패턴: 단일 가상 컴퓨터

이 응용 프로그램 패턴에서는 SQL Server 응용 프로그램 및 데이터베이스를 Azure의 독립 실행형 가상 컴퓨터에 배포합니다. 동일한 가상 컴퓨터에는 클라이언트/웹 응용 프로그램, 비즈니스 구성 요소, 데이터 액세스 계층 및 데이터베이스 서버가 포함되어 있습니다. 프레젠테이션, 비즈니스 및 데이터 액세스 코드는 논리적으로 분리되어 있지만 물리적으로는 단일 서버 컴퓨터에 있습니다. 대부분의 고객은 이 응용 프로그램 패턴으로 시작한 다음 시스템에 웹 역할 또는 가상 컴퓨터를 점점 추가하여 확장합니다.

이 응용 프로그램 패턴은 다음과 같은 경우 유용합니다.

  • 플랫폼이 응용 프로그램의 요구 사항에 응답하는지 여부를 확인하기 위해 Azure 플랫폼으로 간단한 마이그레이션을 수행하려고 합니다.

  • 계층 간 대기 시간을 줄이기 위해 모든 응용 프로그램 계층(Tier)을 동일한 Azure 데이터 센터의 동일한 가상 컴퓨터에서 계속 호스트하려고 합니다.

  • 단기간에 개발 및 테스트 환경을 신속하게 프로비저닝하려고 합니다.

  • 다양한 작업 수준에 대한 부하 테스트를 수행할 예정이지만 여러 물리적 컴퓨터를 소유하거나 유지 관리하지는 않으려고 합니다.

다음 다이어그램은 간단한 온-프레미스 시나리오와 Azure의 단일 가상 컴퓨터에서 클라우드 사용 솔루션을 배포하는 방법을 보여줍니다.

1계층 응용 프로그램 패턴

확장성 또는 보안 문제로 인해 별도의 계층(Tier)을 사용할 필요가 없는 경우 동일한 물리적 계층(Tier)에서 비즈니스 계층(Layer)(비즈니스 논리 및 데이터 액세스 구성 요소)을 프레젠테이션 계층(Layer)으로 배포하면 응용 프로그램 성능을 극대화할 수 있습니다.

이 패턴은 시작하기에 매우 일반적인 패턴이므로 Azure 가상 컴퓨터로 온-프레미스 데이터 및 응용 프로그램 파일을 마이그레이션하는 데 다음 링크가 유용할 수 있습니다. Azure 가상 컴퓨터의 SQL Server로 마이그레이션할 준비하기Migrating to SQL Server in an Azure Virtual Machine. 그 외에도 Azure 가져오기/내보내기 서비스를 사용하여 Blob 저장소로 데이터 전송을 수행할 수 있습니다. 가져오기/내보내기 서비스를 사용하여 데이터 파일을 Azure 저장소로 옮기는 가져오기 작업을 만듭니다. Microsoft에서는 디스크의 데이터를 Azure 저장소로 업로드합니다. Microsoft에서 데이터 파일을 사용자의 가상 컴퓨터와 동일한 데이터 센터의 BLOB 저장소로 업로드하면 원격 데스크톱을 가상 컴퓨터에 업로드하여 이러한 데이터 파일을 BLOB 저장소에서 다운로드할 수 있습니다. 또한 Blob 저장소 SDK를 사용하여 Blob 저장소에서 이러한 데이터 파일에 액세스할 수도 있습니다.

3계층 응용 프로그램 패턴: 여러 대의 가상 컴퓨터

이 응용 프로그램 패턴에서는 각 응용 프로그램 계층을 각각 다른 가상 컴퓨터에 배치함으로써 Azure에서 3계층 응용 프로그램을 배포합니다. 이 패턴은 쉬운 수직 확장 및 수평 확장 시나리오를 위한 유연한 환경을 제공합니다. 가상 컴퓨터 한 대에 클라이언트/웹 응용 프로그램이 포함되어 있는 경우 다른 가상 컴퓨터에서는 비즈니스 구성 요소를 호스트하고 또 다른 가상 컴퓨터에서는 데이터베이스 서버를 호스트합니다.

이 응용 프로그램 패턴은 다음과 같은 경우 유용합니다.

  • 복잡한 데이터베이스 응용 프로그램을 Azure 가상 컴퓨터로 마이그레이션하려고 합니다.

  • 여러 영역에서 여러 응용 프로그램 계층을 호스트하려고 합니다. 예를 들어 보고를 위해 여러 영역에 배포된 공유 데이터베이스가 있을 수 있습니다.

  • 가상화된 온-프레미스 플랫폼에서 Azure 가상 컴퓨터로 엔터프라이즈 응용 프로그램을 이동하려고 합니다. 엔터프라이즈 응용 프로그램에 대한 자세한 내용은 엔터프라이즈 응용 프로그램이란을 참조하세요.

  • 단기간에 개발 및 테스트 환경을 신속하게 프로비저닝하려고 합니다.

  • 다양한 작업 수준에 대한 부하 테스트를 수행할 예정이지만 여러 물리적 컴퓨터를 소유하거나 유지 관리하지는 않으려고 합니다.

다음 다이어그램은 각 응용 프로그램 계층을 각각 다른 가상 컴퓨터에 배치하여 Azure에서 간단한 3계층 응용 프로그램을 배치하는 방법을 보여줍니다.

3계층 응용 프로그램 패턴

이 응용 프로그램 패턴에는 각 계층에 VM(가상 컴퓨터)이 한 대뿐입니다. Azure에 여러 VM이 있는 경우 가상 네트워크를 설정하는 것이 좋습니다. Azure 가상 네트워크는 신뢰할 수 있는 보안 경계를 만들고 VM에서 서로 간에 개인 IP 주소를 통해 통신하도록 허용합니다. 또한 항상 모든 인터넷 연결이 프레젠테이션 계층으로만 전달되도록 합니다. 즉, 다른 계층이 아닌 프레젠테이션 계층에서만 공용 끝점을 열어야 합니다. 이 응용 프로그램 패턴을 따르는 경우 특정 IP 주소에 액세스할 수 있도록 공용 포트에 대해 네트워크 ACL(액세스 제어 목록)을 설정해야 합니다. 자세한 내용은 네트워크 액세스 제어 목록 정보를 참조하세요.

다이어그램에서 인터넷 프로토콜은 TCP, UDP, HTTP 또는 HTTPS일 수 있습니다.

중요: Azure에서 가상 네트워크 설정은 무료입니다. 그러나 온-프레미스에 연결되는 VPN 게이트웨이에 대해서는 비용이 부과됩니다. 이 요금은 연결이 프로비전되고 사용할 수 있는 시간에 따라 달라집니다.

프레젠테이션 계층이 수평 확장된 2계층 및 3계층 응용 프로그램 패턴

이 응용 프로그램 패턴에서는 다른 가상 컴퓨터에 각 응용 프로그램 계층을 배치하여 Azure 가상 컴퓨터에 2계층 또는 3계층 데이터베이스 응용 프로그램을 배포합니다. 또한 들어오는 클라이언트 요청의 볼륨 증가로 프레젠테이션 계층을 수평 확장합니다.

이 응용 프로그램 패턴은 다음과 같은 경우 유용합니다.

  • 가상화된 온-프레미스 플랫폼에서 Azure 가상 컴퓨터로 엔터프라이즈 응용 프로그램을 이동하려고 합니다.

  • 들어오는 클라이언트 요청의 볼륨 증가로 프레젠테이션 계층을 수평 확장하려고 합니다.

  • 단기간에 개발 및 테스트 환경을 신속하게 프로비저닝하려고 합니다.

  • 다양한 작업 수준에 대한 부하 테스트를 수행할 예정이지만 여러 물리적 컴퓨터를 소유하거나 유지 관리하지는 않으려고 합니다.

  • 필요에 따라 수직 확장 및 축소 가능한 인프라 환경을 소유하려고 합니다.

다음 다이어그램은 들어오는 클라이언트 요청 볼륨이 증가할 때 프레젠테이션 계층을 수평 확장함으로써 Azure에서 여러 가상 컴퓨터에 응용 프로그램 계층을 배치할 수 있는 방법을 보여 줍니다. 다이어그램에 표시된 것처럼 Azure 부하 분산 장치는 여러 가상 컴퓨터 간의 트래픽을 분산하고 연결할 웹 서버를 결정하는 작업을 담당합니다. 부하 분산 장치 뒤에 웹 서버의 인스턴스가 여러 개 있으면 프레젠테이션 계층의 고가용성이 보장됩니다. 자세한 내용은 계층 하나에 가상 컴퓨터가 여러 대인 2계층, 3계층 또는 N 계층 응용 프로그램 패턴에 대한 최선의 구현 방법에 대한 모범 사례를 참조하세요.

프레젠테이션 계층이 확장된 응용 프로그램 패턴

계층 하나에 가상 컴퓨터가 여러 대인 2계층, 3계층 또는 N 계층 응용 프로그램 패턴에 대한 최선의 구현 방법

동일한 클라우드 서비스와 동일한 가용성 집합의 동일한 계층에 속한 가상 컴퓨터를 배치하는 것이 좋습니다. 예를 들어 CloudService1AvailabilitySet1에 웹 서버 집합을 배치하고 CloudService2AvailabilitySet2에 데이터베이스 서버 집합을 배치합니다. Azure의 가용성 집합을 사용하면 고가용성 노드를 별도의 오류 도메인 및 업그레이드 도메인에 배치할 수 있습니다. 자세한 내용은 가상 컴퓨터의 가용성 관리클라우드 서비스에서 가상 컴퓨터를 연결하는 방법을 참조하세요.

계층의 여러 VM 인스턴스를 활용하려면 응용 프로그램 계층 간에 Azure 부하 분산 장치를 구성해야 합니다. 각 계층에서 부하 분산 장치를 구성하려면 각 계층의 VM에 부하 분산된 끝점을 개별적으로 만듭니다. 특정 계층의 경우 먼저 동일한 클라우드 서비스에서 VM을 만듭니다. 그러면 모든 VM의 공용 가상 IP 주소가 동일하게 됩니다. 다음으로, 해당 계층의 가상 컴퓨터 중 하나에 대한 끝점을 만듭니다. 부하 분산을 위해 해당 계층의 다른 가상 컴퓨터에 동일한 끝점을 할당합니다. 부하 분산된 집합을 만들어 여러 가상 컴퓨터 간의 트래픽을 분산시키고 백엔드 VM 노드 실패 시 부하 분산 장치에서 연결할 노드를 결정할 수 있게 합니다. 예를 들어 부하 분산 장치 뒤에 웹 서버의 인스턴스가 여러 개 있으면 프레젠테이션 계층의 고가용성이 보장됩니다.

최선의 구현 방법으로 항상 모든 인터넷 연결이 프레젠테이션 계층으로 전달되는지 먼저 확인합니다. 프레젠테이션 계층이 비즈니스 계층에 액세스한 다음 비즈니스 계층이 데이터 계층에 액세스합니다. 예를 들어 프레젠테이션 계층에서 끝점을 엽니다. 각 끝점에는 공용 포트와 개인 포트가 있습니다. 개인 포트는 가상 컴퓨터 내부에서 해당 끝점에서 트래픽을 수신하기 위해 사용됩니다. 공용 포트는 Azure 외부에서 들어오는 통신을 위한 진입점으로 Azure 부하 분산 장치에서 사용합니다. 네트워크 ACL(액세스 제어 목록)을 설정하여 모든 응용 프로그램 계층의 모든 공용 끝점에서 모든 공용 포트를 통해 들어오는 트래픽을 분리 및 제어하는 데 도움이 되는 규칙을 정의하는 것이 좋습니다. 자세한 내용은 네트워크 액세스 제어 목록 정보를 참조하세요.

Azure의 부하 분산 장치는 온-프레미스 환경의 부하 분산 장치와 유사하게 작동합니다. 자세한 내용은 가상 컴퓨터 부하 분산을 참조하십시오.

또한 Azure 가상 네트워크를 사용하여 가상 컴퓨터를 위한 개인 네트워크를 설정하는 것이 좋습니다. 그러면 가상 컴퓨터가 개인 IP 주소를 통해 서로 통신할 수 있습니다. 자세한 내용은 Azure 가상 네트워크를 참조하세요.

비즈니스 계층이 수평 확장된 2계층 및 3계층 응용 프로그램 패턴

이 응용 프로그램 패턴에서는 다른 가상 컴퓨터에 각 응용 프로그램 계층을 배치하여 Azure 가상 컴퓨터에 2계층 또는 3계층 데이터베이스 응용 프로그램을 배포합니다. 또한 응용 프로그램의 복잡성 때문에 응용 프로그램 서버 구성 요소를 여러 가상 컴퓨터에 배포하려고 할 수 있습니다.

이 응용 프로그램 패턴은 다음과 같은 경우 유용합니다.

  • 가상화된 온-프레미스 플랫폼에서 Azure 가상 컴퓨터로 엔터프라이즈 응용 프로그램을 이동하려고 합니다.

  • 응용 프로그램의 복잡성 때문에 응용 프로그램 서버 구성 요소를 여러 가상 컴퓨터에 배포하려고 합니다.

  • 비즈니스 논리를 집중적으로 사용하는 온-프레미스 LOB(기간 업무) 응용 프로그램을 Azure 가상 컴퓨터로 이동하려고 합니다. LOB 응용 프로그램은 기업 운영(예: HR(인사 관리), 급여, 공급망 관리 및 리소스 계획 응용 프로그램)에 중요한 컴퓨터 응용 프로그램 집합입니다.

  • 단기간에 개발 및 테스트 환경을 신속하게 프로비저닝하려고 합니다.

  • 다양한 작업 수준에 대한 부하 테스트를 수행할 예정이지만 여러 물리적 컴퓨터를 소유하거나 유지 관리하지는 않으려고 합니다.

  • 필요에 따라 수직 확장 및 축소 가능한 인프라 환경을 소유하려고 합니다.

다음 다이어그램은 온-프레미스 시나리오와 해당 클라우드 사용 솔루션을 보여 줍니다. 이 시나리오에서는 비즈니스 논리 계층과 데이터 액세스 구성 요소가 포함된 비즈니스 계층을 수평 확장하여 Azure에서 여러 가상 컴퓨터에 응용 프로그램 계층을 배치합니다. 다이어그램에 표시된 것처럼 Azure 부하 분산 장치는 여러 가상 컴퓨터 간의 트래픽을 분산하고 연결할 웹 서버를 결정하는 작업을 담당합니다. 부하 분산 장치 뒤에 응용 프로그램 서버의 인스턴스가 여러 개 있으면 비즈니스 계층의 고가용성이 보장됩니다. 자세한 내용은 계층 하나에 가상 컴퓨터가 여러 대인 2계층, 3계층 또는 N 계층 응용 프로그램 패턴에 대한 최선의 구현 방법를 참조하십시오.

비즈니스 계층이 확장된 응용 프로그램 패턴

프레젠테이션 및 비즈니스 계층의 수평 확장 및 SQL Server의 고가용성 기능을 갖춘 2계층 및 3계층 응용 프로그램 패턴

이 응용 프로그램 패턴에서는 프레젠테이션 계층(웹 서버)과 비즈니스 계층(응용 프로그램 서버) 구성 요소를 여러 가상 컴퓨터로 분산시켜 Azure 가상 컴퓨터에 2계층 또는 3계층 데이터베이스 응용 프로그램을 배포합니다. 또한 Azure 가상 컴퓨터에서 데이터베이스를 위한 고가용성 및 재해 복구 솔루션을 구현합니다.

이 응용 프로그램 패턴은 다음과 같은 경우 유용합니다.

  • SQL Server 고가용성 및 재해 복구 기능을 구현하여 가상화된 플랫폼 온-프레미스에서 Azure로 엔터프라이즈 응용 프로그램을 이동하려고 합니다.

  • 들어오는 클라이언트 요청 볼륨의 증가와 응용 프로그램의 복잡성으로 인해 프레젠테이션 계층 및 비즈니스 계층을 수평 확장하려고 합니다.

  • 단기간에 개발 및 테스트 환경을 신속하게 프로비저닝하려고 합니다.

  • 다양한 작업 수준에 대한 부하 테스트를 수행할 예정이지만 여러 물리적 컴퓨터를 소유하거나 유지 관리하지는 않으려고 합니다.

  • 필요에 따라 수직 확장 및 축소 가능한 인프라 환경을 소유하려고 합니다.

다음 다이어그램은 온-프레미스 시나리오와 해당 클라우드 사용 솔루션을 보여 줍니다. 이 시나리오에서는 Azure의 여러 가상 컴퓨터에서 프레젠테이션 계층 및 비즈니스 계층 구성 요소를 수평으로 확장합니다. 또한 Azure의 SQL Server 데이터베이스를 위한 HADR(고가용성 및 재해 복구) 기법을 구현합니다.

여러 VM에서 응용프로그램의 여러 복사본을 실행하면 VM 간에 요청 부하가 분산됩니다. 가상 컴퓨터가 여러 대인 경우 모든 VM에 액세스할 수 있고 한 시점에 모든 VM이 실행 중인지 확인해야 합니다. 부하 분산을 구성하는 경우 Azure 부하 분산 장치는 VM의 상태를 추적하고, 들어오는 호출을 정상 작동하는 VM 노드로 전달합니다. 가상 컴퓨터의 부하 분산을 설정하는 방법에 대한 자세한 내용은 가상 컴퓨터 부하 분산을 참조하세요. 부하 분산 장치 뒤에 웹 및 응용 프로그램 서버의 인스턴스가 여러 개 있으면 프레젠테이션 및 비즈니스 계층의 고가용성이 보장됩니다. 자세한 내용은 SQL Server 고가용성 및 재해 복구 솔루션이 필요한 응용 프로그램 패턴에 대한 최선의 구현 방법를 참조하십시오.

확장 및 고가용성

SQL Server 고가용성 및 재해 복구 솔루션이 필요한 응용 프로그램 패턴에 대한 최선의 구현 방법

Azure 가상 컴퓨터에서 SQL Server 고가용성 및 재해 복구 솔루션을 설정하는 경우 Azure 가상 네트워크를 사용하여 가상 컴퓨터에 필요한 가상 네트워크를 반드시 설정해야 합니다. 가상 네트워크 내의 가상 컴퓨터에는 서비스 가동 중지 후에도 안정된 개인 IP 주소가 있으므로 DNS 이름 확인에 필요한 업데이트 시간이 필요 없어집니다. 또한 가상 네트워크를 통해 온-프레미스 네트워크를 Azure로 확장하고 신뢰할 수 있는 보안 경계를 만들 수 있습니다. 예를 들어 응용 프로그램에 회사 도메인 제한 사항(예: Windows 인증, Active Directory)이 있는 경우 Azure 가상 네트워크를 설정해야 합니다.

Azure에서 프로덕션 코드를 실행 중인 대부분의 고객은 Azure에서 주 복제본 및 보조 복제본을 모두 유지합니다.

고가용성 및 재해 복구 기법에 대한 전체적인 정보 및 자습서는 Azure 가상 컴퓨터의 SQL Server에 대한 고가용성 및 재해 복구를 참조하세요.

Azure 가상 컴퓨터 및 Azure 클라우드 서비스(웹 및 작업자 역할)를 사용하는 2계층 및 3계층 응용 프로그램 패턴

이 응용 프로그램 패턴에서는 Azure 클라우드 서비스(웹 및 작업자 역할 - PaaS(Platform as a Service))와 Azure 가상 컴퓨터(IaaS(Infrastructure as a Service)) 모두를 사용하여 Azure로 2계층 및 3층 응용 프로그램을 배포합니다. 프레젠테이션 계층/비즈니스 계층에 Azure 클라우드 서비스를 사용하고 데이터 계층에 Azure 가상 컴퓨터의 SQL Server를 사용하는 것은 Azure에서 실행 중인 대부분의 응용 프로그램에 도움이 됩니다. 이는 Azure 클라우드 서비스에서 실행 중인 계산 인스턴스가 있으면 쉽게 관리, 배포, 모니터링 및 수평 확장이 가능하기 때문입니다.

Azure는 클라우드 서비스를 통해 사용자를 위한 인프라를 유지 관리하고, 일상적인 유지 관리를 수행하고, 운영 체제에 패치를 적용하고, 서비스 및 하드웨어 오류에서 복구하려고 시도합니다. 응용 프로그램에 수평 확장이 필요한 경우 응용 프로그램에서 사용하는 인스턴스 또는 가상 컴퓨터 수를 늘리거나 줄여 클라우드 서비스 프로젝트에 자동 및 수동 수평 확장 옵션을 사용할 수 있습니다. 또한 온-프레미스 Visual Studio를 사용하여 응용 프로그램을 Azure의 클라우드 서비스 프로젝트에 배포할 수도 있습니다.

요약하자면, 프레젠테이션/비즈니스 계층에 대한 광범위한 관리 작업을 소유하고 싶지 않고 응용 프로그램에 소프트웨어 또는 운영 체제의 복잡한 구성이 필요 없는 경우 Azure 클라우드 서비스를 사용하세요. Azure SQL 데이터베이스에서 사용자가 필요로 하는 기능 중 일부를 지원하지 않으면 데이터 계층에 Azure 가상 컴퓨터의 SQL Server를 사용하세요. Azure 클라우드 서비스에서 응용 프로그램을 실행하고 Azure 가상 컴퓨터에 데이터를 저장하는 것은 두 서비스의 이점을 결합하는 것입니다. 자세한 비교는 Azure에서의 개발 전략: 기존 웹 개발과 Azure 클라우드 서비스 및 Azure 웹 사이트 비교를 참조하세요.

이 응용 프로그램 패턴에는 프레젠테이션 계층에 Azure 실행 환경에서 실행 중인 클라우드 서비스 구성 요소인 웹 역할이 포함되어 있습니다. 이 계층은 IIS 및 ASP.NET에서 지원하는 것처럼 웹 응용 프로그램 프로그래밍을 위해 사용자 지정되어 있습니다. 비즈니스 또는 백엔드 계층에는 Azure 실행 환경에서 실행 중인 클라우드 서비스 구성 요소인 작업자 역할이 포함되어 있습니다. 이 계층은 일반적인 개발에 유용하고 웹 역할을 위한 백그라운드 처리를 수행할 수 있습니다. 데이터베이스 계층은 Azure의 SQL Server 가상 컴퓨터에 상주하고 있습니다. 프레젠테이션 계층과 데이터베이스 계층은 직접 통신하거나 비즈니스 계층(작업자 역할 구성 요소)을 통해 통신합니다.

이 응용 프로그램 패턴은 다음과 같은 경우 유용합니다.

  • SQL Server 고가용성 및 재해 복구 기능을 구현하여 가상화된 플랫폼 온-프레미스에서 Azure로 엔터프라이즈 응용 프로그램을 이동하려고 합니다.

  • 필요에 따라 수직 확장 및 축소 가능한 인프라 환경을 소유하려고 합니다.

  • Azure SQL 데이터베이스가 응용 프로그램 또는 데이터베이스에 필요한 일부 기능을 지원하지 않습니다.

  • 다양한 작업 수준에 대한 부하 테스트를 수행할 예정이지만 여러 물리적 컴퓨터를 소유하거나 유지 관리하지는 않으려고 합니다.

다음 다이어그램은 온-프레미스 시나리오와 해당 클라우드 사용 솔루션을 보여 줍니다. 이 시나리오에서는 웹 역할에 프레젠테이션 계층을 배치하고 작업자 역할에 비즈니스 계층을 배치하지만 데이터 계층은 Azure의 가상 컴퓨터에 배치합니다. 여러 웹 역할에서 프레젠테이션 계층의 여러 복사본을 실행하면 웹 역할 간 요청에 대한 부하가 분산됩니다. Azure 클라우드 서비스를 Azure 가상 컴퓨터와 결합하는 경우 Azure 가상 네트워크도 설정하는 것이 좋습니다. Azure 가상 네트워크를 사용하면 클라우드의 동일한 클라우드 서비스 내에서 안정적이고 지속적인 개인 IP 주소를 가질 수 있습니다. 가상 컴퓨터와 클라우드 서비스를 위한 가상 네트워크를 정의하면 가상 컴퓨터와 클라우드 서비스는 개인 IP 주소를 통해 서로 통신할 수 있게 됩니다. 또한 동일한 Azure 가상 네트워크에 가상 컴퓨터와 Azure 웹/작업자 역할이 있으면 대기 시간이 줄어들고 연결의 보안이 강화됩니다. 자세한 내용은 클라우드 서비스란, Azure 실행 모델Azure 가상 네트워크를 참조하세요.

다이어그램에 표시된 것처럼 Azure 부하 분산 장치는 여러 가상 컴퓨터 간의 트래픽을 분산하고 연결할 웹 서버 또는 응용 프로그램 서버를 결정합니다. 부하 분산 장치 뒤에 웹 및 응용 프로그램 서버의 인스턴스가 여러 개 있으면 프레젠테이션 계층 및 비즈니스 계층의 고가용성이 보장됩니다. 자세한 내용은 SQL Server 고가용성 및 재해 복구 솔루션이 필요한 응용 프로그램 패턴에 대한 최선의 구현 방법를 참조하십시오.

클라우드 서비스가 포함된 응용 프로그램 패턴

이 응용 프로그램 패턴을 구현하는 또 다른 접근 방식은 다음 다이어그램에 표시된 것처럼 프레젠테이션 계층 및 비즈니스 계층 구성 요소가 포함된 통합 웹 역할을 사용하는 것입니다. 이 응용 프로그램 패턴은 안정적인 디자인이 필요한 응용 프로그램에 유용합니다. Azure에서는 웹 및 작업자 역할에 대해 상태 비저장 컴퓨터 노드를 제공하므로 Azure 캐싱, Azure 테이블 저장소 또는 Azure SQL 데이터베이스 기술 중 하나를 사용하여 세션 상태를 저장하는 논리를 구현하는 것이 좋습니다.

클라우드 서비스가 포함된 응용 프로그램 패턴

Azure 가상 컴퓨터, Azure SQL 데이터베이스 및 Azure 웹 사이트와 혼합된 응용 프로그램 패턴

이 응용 프로그램 패턴은 기본적으로 솔루션에서 Azure IaaS(Infrastructure as a Service) 구성 요소를 Azure PaaS(Platform-as-a-Service) 구성 요소와 결합하는 방법을 보여주는 것을 목적으로 합니다. 이 패턴은 관계형 데이터 저장소를 위한 Azure SQL 데이터베이스에 중점을 둡니다. 이 패턴에는 Azure IaaS(Infrastructure as a Service) 서비스의 일부인 Azure 가상 컴퓨터의 SQL Server가 포함되어 있지 않습니다.

이 응용 프로그램 패턴에서는 동일한 가상 컴퓨터에 프레젠테이션 및 비즈니스 계층을 배치하고 Azure SQL 데이터베이스(SQL 데이터베이스) 서버에 액세스하여 데이터베이스 응용 프로그램을 Azure에 배포합니다. 기존의 IIS 기반 웹 솔루션을 사용하여 프레젠테이션 계층을 구현할 수 있습니다. 또는 Azure 웹 사이트를 사용하여 결합된 프레젠테이션 및 비즈니스 계층을 구현할 수 있습니다.

이 응용 프로그램 패턴은 다음과 같은 경우 유용합니다.

  • Azure에 구성된 기존 SQL 데이터베이스 서버가 이미 있고 응용 프로그램을 신속하게 테스트하려고 합니다.

  • Azure 환경의 기능을 테스트하려고 합니다.

  • 단기간에 개발 및 테스트 환경을 신속하게 프로비저닝하려고 합니다.

  • 비즈니스 논리 및 데이터 액세스 구성 요소가 웹 응용 프로그램 내에 자체 포함될 수 있습니다.

다음 다이어그램은 온-프레미스 시나리오와 해당 클라우드 사용 솔루션을 보여 줍니다. 이 시나리오에서는 Azure의 단일 가상 컴퓨터에 응용 프로그램 계층을 배치하고 Azure SQL 데이터베이스에서 데이터에 액세스합니다.

혼합된 응용 프로그램 패턴

결합된 웹 및 응용 프로그램 계층을 Azure 웹 사이트를 사용하여 구현하기로 선택한 경우 웹 응용 프로그램의 맥락에서 중간 계층 또는 응용 프로그램 계층을 DLL(동적 연결 라이브러리)로 유지하는 것이 좋습니다.

또한 본 문서 끝에 있는 Azure에서의 개발 전략: 기존 웹 개발과 Azure 클라우드 서비스 및 Azure 웹 사이트 비교 섹션에서 제공하는 권장 사항을 검토하여 프로그래밍 기법에 대해 자세히 알아보세요.

N 계층 하이브리드 응용 프로그램 패턴

N 계층 하이브리드 응용 프로그램 패턴에서는 온-프레미스와 Azure 간에 분산된 여러 계층에서 응용 프로그램을 구현합니다. 따라서 다른 계층을 변경하지 않고 특정 계층을 수정하거나 추가할 수 있는 유연하고 재사용 가능한 하이브리드 시스템을 만들 수 있습니다. 회사 네트워크를 클라우드로 확장하려면 Azure 가상 네트워크 서비스를 사용합니다.

이 하이브리드 응용 프로그램 패턴은 다음과 같은 경우 유용합니다.

  • 일부는 클라우드에서, 일부는 온-프레미스에서 실행되는 응용 프로그램을 빌드하려고 합니다.

  • 기존 온-프레미스 응용 프로그램의 일부 또는 모든 요소를 클라우드로 마이그레이션하려고 합니다.

  • 가상화된 온-프레미스 플랫폼에서 Azure로 엔터프라이즈 응용 프로그램을 이동하려고 합니다.

  • 필요에 따라 수직 확장 및 축소 가능한 인프라 환경을 소유하려고 합니다.

  • 단기간에 개발 및 테스트 환경을 신속하게 프로비저닝하려고 합니다.

  • 경제적인 방법으로 엔터프라이즈 데이터베이스 응용 프로그램을 위한 백업을 만들려고 합니다.

다음 다이어그램은 온-프레미스 및 Azure에 걸쳐 있는 N 계층 하이브리드 응용 프로그램 패턴을 보여 줍니다. 다이어그램에 표시된 것처럼 온-프레미스 인프라에는 사용자 인증 및 권한 부여를 지원하는 Active Directory 도메인 서비스 도메인 컨트롤러가 있습니다. 이 다이어그램은 데이터 계층의 일부분이 온-프레미스 데이터 센터에 있는 반면 데이터 계층의 일부분은 Azure에 있는 시나리오를 보여 줍니다. 응용 프로그램의 필요에 따라 여러 가지 다른 하이브리드 시나리오를 구현할 수 있습니다. 예를 들어 프레젠테이션 계층 및 비즈니스 계층은 온-프레미스 환경에 두고 데이터 계층은 Azure에 둘 수 있습니다.

Azure 라이브러리에서 이 항목을 보는 데 문제가 있으세요? MSDN 라이브러리에서 시도해 보십시오.

N 계층 응용 프로그램 패턴

Azure에서는 Active Directory를 조직의 독립 실행형 클라우드 디렉터리로 사용하거나 기존 온-프레미스 Active Directory를 Azure Active Directory와 통합할 수도 있습니다. 다이어그램에 표시된 것처럼 비즈니스 계층 구성 요소는 여러 데이터 원본에 액세스할 수 있습니다. 예를 들어 내부의 개인 IP 주소를 통해 Azure의 SQL Server 또는 가상 네트워크를 통해 온-프레미스 SQL Server에 액세스하거나 .NET Framework 데이터 공급자 기술을 사용하여 SQL 데이터베이스에 액세스할 수 있습니다. 이 다이어그램에서 Azure SQL 데이터베이스(SQL 데이터베이스)는 선택적 데이터 저장소 서비스입니다.

N 계층 하이브리드 응용 프로그램 패턴에서 다음 워크플로를 지정된 순서로 구현할 수 있습니다.

  1. MAP(Microsoft Assessment and Planning) Toolkit을 사용하여 클라우드로 이동해야 하는 엔터프라이즈 데이터베이스 응용 프로그램을 식별합니다. MAP Toolkit은 가상화하려는 컴퓨터에서 재고 및 성능 데이터를 수집하고 용량 및 평가 계획에 대한 권장 사항을 제공합니다.

  2. Azure 플랫폼에서 필요한 리소스 및 구성을 계획합니다(예: 저장소 계정 및 가상 컴퓨터). 자세한 마이그레이션 계획은 Azure 가상 컴퓨터의 SQL Server로 마이그레이션할 준비하기를 참조하세요.

  3. 회사 네트워크 온-프레미스와 Azure 가상 네트워크 간에 네트워크 연결을 설정합니다. 회사 네트워크 온-프레미스와 Azure의 가상 컴퓨터 간에 연결을 설정하려면 다음 두 가지 방법 중 하나를 사용합니다.

    1. Azure의 가상 컴퓨터에서 공용 끝점을 통해 온-프레미스와 Azure 간에 연결을 설정합니다. 이 방법을 사용하면 쉽게 설정할 수 있고 가상 컴퓨터에서 SQL Server 인증을 사용할 수 있게 됩니다. 또한 공용 포트에서 네트워크 ACL(액세스 제어 목록)을 설정하여 특정 IP 주소에 대한 액세스를 허용할 수 있습니다. 자세한 내용은 네트워크 액세스 제어 목록 정보를 참조하세요.

    2. Azure VPN(가상 사설망) 터널을 통해 온-프레미스와 Azure 간에 연결을 설정합니다. 이 방법을 사용하면 도메인 정책을 Azure의 가상 컴퓨터로 확장할 수 있습니다. 또한 방화벽 규칙을 설정하고 가상 컴퓨터에서 Windows 인증을 사용할 수 있습니다. 현재, Azure에서는 보안된 사이트 간 VPN과 지점 및 사이트 간 VPN 연결을 지원합니다.

      • 보안된 사이트 간 연결을 사용하면 온-프레미스 네트워크와 Azure의 가상 네트워크 간의 가상 연결을 설정할 수 있습니다. 온-프레미스 데이터 센터 환경을 Azure에 연결하는 데 좋습니다.

      • 보안된 지점 및 사이트 간 연결을 사용하면 Azure의 가상 네트워크와 장소에 관계 없이 실행 중인 개인 컴퓨터 간의 네트워크 연결을 설정할 수 있습니다. 이는 대부분 개발 및 테스트를 목적으로 하는 경우 권장됩니다.

      Azure의 SQL Server에 연결하는 방법은 Azure 가상 컴퓨터의 SQL Server에 대한 연결 고려 사항을 참조하세요.

  4. 온-프레미스 데이터를 Azure의 가상 컴퓨터 디스크에 백업하는 예약 작업 및 경고를 설정합니다. 자세한 내용은 Azure Blob 저장소 서비스로 SQL Server 백업 및 복원Azure 가상 컴퓨터에서 SQL Server의 백업 및 복원을 참조하세요.

  5. 응용 프로그램의 필요에 따라 다음 세 가지 일반 시나리오 중 하나를 구현할 수 있습니다.

    1. 웹 서버, 응용 프로그램 서버 및 중요하지 않은 데이터를 Azure의 데이터베이스 서버에 보관하고 중요한 데이터는 온-프레미스에 보관할 수 있습니다.

    2. 웹 서버 및 응용 프로그램 서버를 온-프레미스에 보관하고 데이터베이스 서버는 Azure의 가상 컴퓨터에 보관할 수 있습니다.

    3. 데이터베이스 서버, 웹 서버 및 응용 프로그램 서버를 온-프레미스에 보관하고 데이터베이스 복제본은 Azure의 가상 컴퓨터에 보관할 수 있습니다. 이 설정으로 온-프레미스 웹 서버 또는 보고 응용 프로그램에서 Azure의 데이터베이스 복제본에 액세스할 수 있습니다. 따라서 온-프레미스 데이터베이스의 작업을 더 줄일 수 있습니다. 이 시나리오는 읽기 작업이 매우 많은 경우와 개발을 목적으로 구현하는 것이 좋습니다. Azure에서 데이터베이스 복제본 만들기에 대한 자세한 내용은 Azure 가상 컴퓨터의 SQL Server에 대한 고가용성 및 재해 복구의 AlwaysOn 가용성 그룹을 참조하세요.

Azure에서의 개발 전략: 기존 웹 개발과 Azure 클라우드 서비스 및 Azure 웹 사이트 비교

Azure에서 다중 계층 SQL Server 기반 응용 프로그램을 구현 및 배포하기 위해 다음 두 가지 프로그래밍 방법 중 하나를 사용할 수 있습니다.

  • Azure에서 기존 웹 서버(IIS - 인터넷 정보 서비스)를 설정하고 Azure 가상 컴퓨터의 SQL Server에서 데이터베이스에 액세스합니다.

  • 클라우드 서비스를 구현하여 Azure에 배포합니다. 그런 다음 이 클라우드 서비스가 Azure 가상 컴퓨터의 SQL Server에서 데이터베이스에 액세스할 수 있는지 확인합니다. 클라우드 서비스에는 여러 웹 및 작업자 역할이 포함될 수 있습니다.

다음 테이블에는 Azure 가상 컴퓨터의 SQL Server와 관련하여 Azure 클라우드 서비스 및 Azure 웹 사이트를 기존의 웹 개발과 비교하여 보여 줍니다. Azure VM의 SQL Server를 공용 가상 IP 주소 또는 DNS 이름을 통해 Azure 웹 사이트의 데이터 원본으로 사용할 수 있으므로 이 테이블에는 Azure 웹 사이트가 포함되어 있습니다.

Azure 라이브러리에서 이 항목을 보는 데 문제가 있으세요? MSDN 라이브러리에서 시도해 보십시오.

 

Azure 가상 컴퓨터에서의 기존 웹 개발

Azure의 클라우드 서비스

Azure 웹 사이트를 통한 웹 호스팅

온-프레미스로부터 응용 프로그램 마이그레이션

  • 기존 응용 프로그램 그대로입니다.

  • 응용 프로그램에 웹 및 작업자 역할이 필요합니다.

  • 기존 응용 프로그램 그대로지만 빠른 확장성이 필요한 자체 포함 웹 응용 프로그램 및 웹 서비스에 적합합니다.

개발 및 배포

  • Visual Studio, WebMatrix, Visual Web Developer, WebDeploy, FTP, TFS, IIS Manager, PowerShell.

  • Visual Studio, Azure SDK, TFS, PowerShell. 각 클라우드 서비스에는 서비스 패키지와 구성을 배포할 수 있는 스테이징 및 프로덕션, 이렇게 두 가지 환경이 있습니다. 스테이징 환경을 프로덕션 환경으로 승격시키기 전에 클라우드 서비스를 배포하여 스테이징 환경을 테스트할 수 있습니다.

  • Visual Studio, WebMatrix, Visual Web Developer, FTP, GIT, BitBucket, CodePlex, DropBox, GitHub, Mercurial, TFS, Web Deploy, PowerShell.

관리 및 설정

  • 응용 프로그램, 데이터, 방화벽 규칙, 가상 네트워크 및 운영 체제에 대한 관리 작업을 수행해야 합니다.

  • 응용 프로그램, 데이터, 방화벽 규칙 및 가상 네트워크에 대한 관리 작업을 수행해야 합니다.

  • 응용 프로그램 및 데이터에 대한 관리 작업만 수행해야 합니다.

HADR(고가용성 및 재해 복구)

  • 동일한 가용성 집합과 동일한 클라우드 서비스 내에 가상 컴퓨터를 배치하는 것이 좋습니다. 동일한 가용성 집합에 VM을 유지하면 Azure에서는 고가용성 노드를 별도의 오류 도메인 및 업그레이드 도메인에 배치할 수 있습니다. 마찬가지로, 동일한 클라우드 서비스 내에 VM을 유지하면 부하 분산이 가능해져 VM이 Azure 데이터 센터 내의 로컬 네트워크를 통해 다른 VM과 직접 통신할 수 있게 됩니다.

  • 가동 중지 시간이 발생하지 않도록 Azure 가상 컴퓨터의 SQL Server를 위한 고가용성 및 재해 복구 솔루션을 구현해야 합니다. 지원되는 HADR 기술은 Azure 가상 컴퓨터의 SQL Server에 대한 고가용성 및 재해 복구를 참조하세요.

  • 데이터 및 응용 프로그램을 백업해야 합니다.

  • 하드웨어 문제로 인해 데이터 센터의 호스트 컴퓨터에서 문제가 발생하면 Azure에서는 가상 컴퓨터를 이동할 수 있습니다. 또한 보안 또는 소프트웨어 업데이트를 위해 호스트 컴퓨터가 업데이트되는 경우 VM에서 계획된 가동 중지가 발생할 수 있습니다. 따라서 연속적인 가용성을 위해 각 응용 프로그램 계층에서 VM을 두 개 이상 유지 관리하는 것이 좋습니다. Azure는 단일 가상 컴퓨터에는 SLA를 제공하지 않습니다. 자세한 내용은 Azure Business Continuity Technical Guidance를 참조하십시오.

  • Azure는 기본 하드웨어 또는 운영 체제 소프트웨어로 인해 발생한 실패를 관리합니다. 응용 프로그램의 고가용성을 보장하기 위해 웹 또는 작업자 역할의 여러 인스턴스를 구현하는 것이 좋습니다. 자세한 내용은 클라우드 서비스, 가상 컴퓨터 및 가상 네트워크 서비스 수준 계약Azure 응용 프로그램을 위한 재해 복구 및 고가용성을 참조하세요.

  • 데이터 및 응용 프로그램을 백업해야 합니다.

  • Azure VM의 SQL Server 데이터베이스에 상주하는 데이터베이스의 경우 가동 중지 시간이 발생하지 않도록 고가용성 및 재해 복구 솔루션을 구현해야 합니다. 지원되는 HDAR 기술은 Azure 가상 컴퓨터의 SQL Server에 대한 고가용성 및 재해 복구를 참조하세요.

  • SQL Server 데이터베이스 미러링: Azure 클라우드 서비스(웹/작업자 역할)와 함께 사용하는 경우 지원됩니다. SQL Server VM 및 클라우드 서비스 프로젝트는 동일한 Azure 가상 네트워크 내에 있을 수 있습니다. SQL Server VM이 동일한 가상 네트워크에 없으면 SQL Server 별칭을 만들어 SQL Server의 인스턴스로 통신을 라우팅해야 합니다. 또한 별칭 이름은 SQL Server 이름과 일치해야 합니다.

  • 고가용성은 Azure 작업자 역할, Azure Blob 저장소 및 Azure SQL 데이터베이스에서 상속합니다. 예를 들어 Azure 저장소는 모든 blob, 테이블 및 큐 데이터에 대해 3개의 복제본을 유지 관리합니다. Azure SQL 데이터베이스는 언제라도 데이터의 복제본 세 개(주 복제본 한 개와 보조 복제본 두 개)를 계속해서 실행할 수 있습니다. 자세한 내용은 저장소SQL 데이터베이스를 참조하세요.

  • Azure VM의 SQL Server를 Azure 웹 사이트의 데이터 원본으로 사용하는 경우 Azure 웹 사이트에서는 Azure 가상 네트워크를 지원하지 않음을 염두에 두세요. 즉, Azure 웹 사이트에서 Azure의 SQL Server VM으로의 모든 연결은 가상 컴퓨터의 공용 끝점을 통해야 합니다. 이로 인해 고가용성 및 재해 복구 시나리오에 몇 가지 제한 사항이 발생할 수 있습니다. 예를 들어 데이터베이스 미러링에서 Azure의 SQL Server 호스트 VM 간에 Azure 가상 네트워크를 설정하도록 요구하므로 데이터베이스 미러링을 통해 SQL Server VM에 연결된 Azure 웹 사이트의 클라이언트 응용 프로그램은 새로운 주 서버에 연결될 수 없습니다. 따라서 현재 Azure 웹 사이트에는 SQL Server 데이터베이스 미러링을 사용할 수 없습니다.

  • SQL Server AlwaysOn 가용성 그룹: Azure의 SQL Server VM과 함께 Azure 웹 사이트를 사용하는 경우 AlwaysOn 가용성 그룹을 설정할 수 있습니다. 하지만 AlwaysOn 가용성 그룹 수신기를 구성해서 부하 분산된 공용 끝점을 통해 주 복제본으로 통신이 라우팅되도록 해야 합니다.

크로스-프레미스 연결

  • Azure 가상 연결을 사용하여 온-프레미스에 연결할 수 있습니다.

  • Azure 가상 연결을 사용하여 온-프레미스에 연결할 수 있습니다.

  • Azure 가상 네트워크가 지원되지 않습니다.

확장성

  • 가상 컴퓨터 크기를 늘리거나 디스크를 추가하여 수직 확장할 수 있습니다. 가상 컴퓨터 크기에 대한 자세한 내용은 Azure의 가상 컴퓨터 및 클라우드 서비스 크기를 참조하세요.

  • 데이터베이스 서버의 경우: 수평 확장은 데이터베이스 분할 기법과 SQL Server AlwaysOn 가용성 그룹을 통해 가능합니다.

    과도한 읽기 작업의 경우 여러 보조 노드에서 AlwaysOn 가용성 그룹SQL Server 복제를 사용할 수 있습니다.

    과도한 쓰기 작업의 경우 여러 물리적 서버 간에 데이터 행 분할을 구현하여 응용 프로그램을 수평 확장할 수 있습니다.

    또한 데이터 종속 라우팅을 사용한 SQL Server를 사용하여 수평 확장을 구현할 수 있습니다. DDR(데이터 종속 라우팅)을 사용하면 클라이언트 응용 프로그램(일반적으로 비즈니스 계층)에서 분할 메커니즘을 구현하여 여러 SQL Server 노드로 데이터베이스 요청을 라우팅해야 합니다. 비즈니스 계층에는 데이터 분할 방법과 데이터가 포함된 노드에 대한 매핑이 포함되어 있습니다.

    가상 컴퓨터를 실행하는 응용 프로그램을 확장할 수 있습니다. 자세한 내용은 응용 프로그램의 크기를 조정하는 방법을 참조하십시오.

  • 수직 확장은 여러 웹 및 작업자 역할을 사용하여 가능합니다. 웹 역할 및 작업자 역할을 위한 가상 컴퓨터 크기에 대한 자세한 내용은 클라우드 서비스 크기 구성을 참조하십시오.

  • Cloud Services를 사용하면 여러 역할을 정의하여 처리를 분산하고 응용 프로그램의 유연한 확장이 가능합니다. 각 클라우드 서비스에는 웹 역할 및/또는 작업자 역할이 하나 이상 들어 있고 각기 고유한 응용 프로그램 파일 및 구성을 가지고 있습니다. 클라우드 서비스를 확장하려면 한 역할에 배포된 역할 인스턴스(가상 컴퓨터)의 수를 늘리고, 클라우드 서비스를 축소하려면 역할 인스턴스의 수를 줄이면 됩니다. 자세한 내용은 Azure 실행 모델을 참조하세요.

  • 수평 확장은 클라우드 서비스, 가상 컴퓨터 및 가상 네트워크 서비스 수준 계약과 부하 분산 장치를 통한 기본 제공 Azure 고가용성 지원을 통해 가능합니다.

  • 다중 계층 응용 프로그램의 경우 웹/작업자 역할 응용 프로그램을 데이터 서버 VM에 연결할 때 Azure 가상 네트워크를 통해 연결하는 것이 좋습니다. 또한 Azure에서는 동일한 클라우드 서비스 내에 있는 VM에 대한 부하 분산을 제공하여 VM 간에 사용자 요청을 분산합니다. 이러한 방식으로 연결된 가상 컴퓨터는 Azure 데이터 센터 내의 로컬 네트워크를 통해 다른 가상 컴퓨터와 직접 통신할 수 있습니다.

  • 관리 포털의 자동 크기 조정뿐만 아니라 예약 시간도 설정할 수 있습니다. 자세한 내용은 응용 프로그램의 크기를 조정하는 방법을 참조하십시오.

  • 확장 및 축소: 웹 사이트에 예약된 인스턴스(VM)의 크기를 확장/축소할 수 있습니다.

  • 수평 확장: 웹 사이트를 위해 예약된 인스턴스(VM)를 추가할 수 있습니다.

  • 관리 포털의 자동 크기 조정뿐만 아니라 예약 시간도 설정할 수 있습니다. 자세한 내용은 웹 사이트 확장 방법을 참조하세요.

이러한 프로그래밍 메서드 중에서 선택하는 방법에 대한 자세한 내용은 다음을 참조하세요. Azure 웹 사이트, 클라우드 서비스 및 VMs: 용도

추가 리소스

참고 항목

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

커뮤니티 추가 항목

표시:
© 2014 Microsoft