반응형

Azure 관계형 데이터베이스 서비스

Azure SQL Database, Azure SQL을 포함한 Azure SQL 제품군에 대한 설명

  • Azure SQL은 Azure의 Microsoft SQL Server 기반 데이터베이스 서비스 제품군을 통칭하는 용어임.

Azure VMs(Virtual Machines)의 SQL Server

  • SQL Server가 설치된 Azure에서 실행되는 가상 머신임.
  • VM이 사용되었기 때문에 이 옵션은 Azure에서 컴퓨팅, 스토리지, 네트워킹의 하드웨어 인프라를 가상화하는 IaaS(Infrastructure-as-a-Service) 솔루션임.
  • 리프트 앤 시프트 방식으로 기존 온-프레미스 SQL Server 설치를 클라우드로 마이그레이션하는 데 적합한 옵션.

Azure SQL Managed Instance 

  • 온-프레미스 SQL Server 인스턴스와 100%에 가까운 호환성을 지원하고 기반 하드웨어 및 운영 체제를 추상화하는 PaaS(Platform-as-a-Service) 옵션.
  • 자동 소프트웨어 업데이트 관리, 백업 및 기타 유지 관리 작업을 포함하므로 데이터베이스 서버 인스턴스를 지원하기 위한 관리 부담을 줄여 줌.

Azure SQL Database

  • 클라우드를 위해 설계되고 스케일링 성능이 뛰어난 완전 관리형 PaaS 데이터베이스 서비스.
  • 온-프레미스 SQL Server의 핵심적인 데이터베이스 수준 기능을 포함하여, 클라우드에서 새 애플리케이션을 만들어야 하는 경우에 좋은 옵션.

Azure SQL Edge

  • 스트리밍 시계열 데이터를 처리해야 하는 IoT(사물 인터넷) 시나리오에 최적화된 SQL 엔진.

 

서비스 비교

 

관리 인스턴스 및 Azure 가상 머신의 SQL Server

Azure Virtual Machines의 SQL Server

  • Virtual Machines의 SQL Server를 사용하면 온-프레미스 하드웨어를 관리할 필요 없이 전체 버전의 SQL Server를 클라우드에서 사용 가능.
  • Azure 가상 머신에서 실행되는 SQL Server는 실제 온-프레미스 하드웨어에서 실행되는 데이터베이스를 효과적으로 복제함.
  • 온-프레미스를 실행하는 시스템에서 Azure 가상 머신으로 마이그레이션하는 것은 한 온-프레미스 서버에서 다른 서버로 데이터베이스를 이동하는 것과는 다름.
  • 이 방법은 PaaS 수준에서 지원되지 않을 수 있는 운영 체제 기능에 액세스해야 하는 마이그레이션 및 애플리케이션에 적합.
  • SQL 가상 머신은 최소한의 변경으로 빠르게 클라우드로 마이그레이션해야 하는 기존 애플리케이션을 위한 리프트 앤 시프트임.
  • 하이브리드 배포에서 기존 온-프레미스 애플리케이션을 클라우드로 확장하는 데 Azure VM의 SQL Server를 사용 가능.
  • 가상 머신에서 SQL Server를 사용하여 기존 SQL Server 애플리케이션을 개발하고 테스트 가능.
  • 가상 머신을 사용하는 경우에는 DBMS 및 운영 체제에 대한 전체 관리 권한이 있음.
  • 가상 머신을 유지 관리하는 데 사용할 수 있는 IT 리소스가 조직에 이미 있는 경우에는 완벽한 선택.
  • 가상 머신에서 SQL Server를 실행하면 온-프레미스 및 클라우드에서 호스팅된 배포를 조합하여 고유하고 다양한 비즈니스 요구를 충족할 수 있으며, 이러한 환경에서 서버 제품, 개발 도구 및 전문 지식을 동일하게 사용 가능.

 

Azure SQL Database Managed Instance

  • Azure SQL Managed Instance는 완전히 제어 가능한 SQL Server 인스턴스를 클라우드에서 효과적으로 실행함.
  • 동일한 인스턴스에 여러 데이터베이스를 설치 가능.
  • 온-프레미스 서버와 마찬가지로 이 인스턴스를 완전히 제어 가능.
  • SQL Managed Instance는 백업, 소프트웨어 패치, 데이터베이스 모니터링 및 그 밖의 일반적인 작업을 자동화하며, 이와 동시에 사용자가 데이터베이스의 보안 및 리소스 할당을 완전히 제어 가능.
  • 관리되는 인스턴스는 백업용 Azure Storage, 원격 분석용 Azure Event Hubs, 인증용 Azure Active Directory, TDE(투명한 데이터 암호화)용 Azure Key Vault 등의 Azure 서비스와 보안 및 지원 가능성 기능을 제공하는 몇 가지 Azure 플랫폼 서비스에 따라 달라짐.
  • 모든 통신은 인증서를 사용하여 암호화되고 서명됨.
  • 통신 당사자를 신뢰성을 검사하기 위해, 관리되는 인스턴스는 인증서 해지 목록을 통해 이러한 인증서를 지속적으로 확인함.
  • 인증서가 해지되면 관리되는 인스턴스는 데이터를 보호하기 위해 연결을 종료함.
  • 가상 머신에서 SQL Server 서버를 실행할 때 발생하는 관리 오버헤드 없이 온-프레미스 SQL Server 인스턴스와 모든 데이터베이스를 클라우드로 리프트 앤 시프트하려는 경우 Azure SQL Managed Instance를 사용 하면 됨.
  • Azure SQL Managed Instance는 Azure SQL Database에 없는 기능을 제공함.
  • 시스템에서 연결된 서버, Service Broker(서버 간에 작업을 배포하는 데 사용할 수 있는 메시지 처리 시스템) 또는 데이터베이스 메일(데이터베이스에서 사용자에게 메일 메시지를 보낼 수 있도록 하는) 등의 기능을 사용하는 경우 관리되는 인스턴스를 사용해야 함.
  • 기존의 온-프레미스 시스템과의 호환성을 확인하려면 DMA(Data Migration Assistant)를 설치면 되며, SQL Server에서 데이터베이스를 분석하고 관리되는 인스턴스로의 마이그레이션을 차단할 수 있는 문제를 보고 해줌.
  • Azure SQL Managed Instance의 경우 서비스가 자동으로 관리 작업을 수행하거나 관리 작업을 크게 간소화해 주기 때문에 시스템 관리자가 관리 작업을 처리하는 데 소요되는 시간이 줄어듦.
  • 자동화된 작업에는 운영 체제, 데이터베이스 관리 시스템 소프트웨어 설치 및 패치, 동적 인스턴스 크기 조정 및 구성, 백업, 데이터베이스 복제(시스템 데이터베이스 포함), 고가용성 구성, 상태 및 성능 모니터링 데이터 스트림의 구성이 포함됨.
  • Azure SQL Managed Instance는 온-프레미스에서 실행되는 SQL Server Enterprise Edition과 100%에 가깝게 호환됨.

 

Azure SQL Database

  • Azure SQL Database는 Microsoft의 PaaS 제품임.
  • 클라우드에서 관리되는 데이터베이스 서버를 만든 다음 이 서버에 데이터베이스를 배포함.
  • 단일 데이터베이스 또는 탄력적 풀로 사용할 수 있음.
  • 최소한의 관리로 저렴한 비용에 최상의 옵션을 제공함.
  • 온-프레미스에 설치된 SQL Server와 완전히 호환되지 않음.
  • 애플리케이션 디자인이 애플리케이션에 필요한 모든 변경 내용을 수용할 수 있는 새로운 클라우드 프로젝트에서 사용되는 경우가 많음.
  • 사용자가 항상 가장 안전한 최신 버전의 서비스를 실행할 수 있도록 자동으로 SQL Server 소프트웨어를 업데이트하고 패치함.
  • Azure SQL Database의 스케일링 성능 기능을 사용하면 비용이 많이 드는 수동 업그레이드를 수행할 필요 없이 데이터를 저장하고 처리하는 데 사용할 수 있는 리소스 확장 가능.
  • 99.99% 이상의 시간 동안 데이터베이스가 실행되는 고가용성을 보장.
  • 특정 시점 복원을 지원하므로 과거의 특정 시점에 있었던 상태로 데이터베이스를 복구 가능.
  • 데이터베이스를 여러 지역에 복제하여 복원력과 재해 복구 역량을 높일 수 있음.
  • Advanced Threat Protection은 데이터베이스의 잠재적인 보안 문제를 탐지하고 수정하는 데 도움이 되는 취약성 평가와 같은 고급 보안 기능을 제공함.
  • 데이터베이스에 저장되어 있는 데이터(미사용 데이터)와 네트워크를 통해 전송되고 있는 데이터(이동 중 데이터)를 보호하는 암호화를 제공함으로써 데이터를 안전하게 보호해줌.

 

Single Database
  • 단일 SQL Server 데이터베이스를 신속하게 설정 및 실행 가능.
  • 클라우드에서 데이터베이스 서버를 만들고 실행하며, 이 서버를 통해 데이터베이스에 액세스함.
  • Microsoft에서 서버를 관리하므로 사용자가 할 일은 데이터베이스를 구성하고 테이블을 만들고 데이터를 채우는 것.
  • 스토리지 공간, 메모리 또는 처리 성능이 추가로 필요한 경우 데이터베이스를 스케일링 가능.
  • 기본적으로 리소스는 미리 할당되며, 사용자가 요청한 리소스에 대해서는 시간당 요금이 청구됨.
  • 서버리스 구성을 지정 가능.
  • Microsoft가 자체 서버를 생성하며, 이렇게 생성된 서버는 다른 Azure 구독자에게 속한 데이터베이스와 공유 가능.
  • Microsoft에서는 데이터베이스의 프라이버시를 보호함.
  • 데이터베이스 크기는 자동으로 스케일링되며, 리소스는 필요에 따라 할당 또는 할당 취소됨.

 

Elastic Pool
  • 기본적으로 여러 데이터베이스가 다중 테넌시를 통해 동일한 리소스(예: 메모리, 데이터 스토리지 공간 및 처리 성능)를 공유할 수 있다는 점을 제외하고 Single Database와 비슷함.
  • 리소스는 풀을 의미 함.
  • 사용자가 풀을 만들면 해당 사용자의 데이터베이스만 그 풀을 사용할 수 있음.
  • 시간이 가면서 달라지는 리소스 요구 사항이 포함된 데이터베이스가 있는 경우에 유용하며, 비용을 절감하는 데 도움이 됨.
  • Elastic Pool을 사용하면 풀에서 사용 가능한 리소스를 사용하고 처리가 완료되면 리소스를 해제 가능.

 

관리 인스턴스 및 Azure 가상 머신의 SQL Server

Azure Virtual Machines의 SQL Server

  • Virtual Machines의 SQL Server를 사용하면 온-프레미스 하드웨어를 관리할 필요 없이 전체 버전의 SQL Server를 클라우드에서 사용 가능.

 

오픈 소스 데이터베이스 시스템을 위한 Azure 데이터베이스 서비스

MySQL, MariaDB 및 PostgreSQL

  • MySQL, MariaDB 및 PostgreSQL은 여러 전문 분야에 맞게 조정된 관계형 데이터베이스 관리 시스템임.
  • MySQL은 사용하기 간편한 오픈 소스 데이터베이스 관리 시스템으로 설계됨.
  • MySQL은 LAMP(Linux, Apache, MySQL, PHP) 스택 앱을 위한 최고의 오픈 소스 관계형 데이터베이스임.
  • MySQL은 Community, Standard, Enterprise 등 여러 Edition이 있음.
  • Community Edition은 무료로 사용할 수 있으며, Linux에서 실행되는 웹 애플리케이션용 데이터베이스 관리 시스템으로 널리 사용되고, Windows용 버전도 있음.
  • Standard Edition은 보다 뛰어난 성능을 제공하며 데이터를 저장을 위해 다른 기술을 사용.
  • Enterprise Edition은 향상된 보안, 가용성 및 스케일링 성능을 비롯하여 광범위한 도구 및 기능 세트를 제공.
  • Standard 및 Enterprise Edition은 일반 기업에서 가장 많이 사용되는 버전으로, 이 버전의 소프트웨어는 무료가 아님.
  • MariaDB는 MySQL의 원래 개발자가 만든 최신 데이터베이스 관리 시스템.
  • 데이터베이스 엔진이 성능 향상을 위해 다시 작성되고 최적화됨.
  • MariaDB는 Oracle Database(다른 인기 있는 상용 데이터베이스 관리 시스템)와의 호환성을 제공.
  • MariaDB의 주목할 만한 한 기능으로 temporal 데이터가 기본적으로 지원됨.
  • 테이블은 여러 버전의 데이터를 보유할 수 있으므로 애플리케이션에서 과거의 특정 시점에 나타난 데이터를 쿼리 가능.
  • PostgreSQL은 하이브리드 관계형 개체 데이터베이스.
  • 관계형 테이블에 데이터를 저장할 수 있지만, PostgreSQL 데이터베이스를 사용하면 사용자 지정 데이터 형식을 고유한 비관계형 속성과 함께 저장 가능.
  • 데이터베이스 관리 시스템을 확장 가능.
  • 데이터베이스에 코드 모듈을 추가하여 쿼리를 통해 실행 가능.
  • 선, 원 및 다각형과 같은 기하학적 데이터를 저장하고 조작하는 기능이 있음.
  • PostgreSQL에는 pgsql이라는 자체 쿼리 언어가 있으며, 데이터베이스 내에서 실행되는 저장 프로시저를 작성할 수 있도록 하는 기능이 포함된 표준 관계형 쿼리 언어인 SQL의 변형임.

 

Azure Database for MySQL

  • Azure Database for MySQL은 MySQL Community Edition을 기반으로 하는 Azure 클라우드에서 MySQL의 PaaS.
  • 필요에 따라 추가 비용 없이 고가용성과 스케일링 성능이 포함되며, 사용한 양만큼만 요금을 지불함.
  • 특정 시점 복원을 사용한 자동 백업이 제공됨.
  • 서버는 방화벽 규칙을 적용하고 필요에 따라 SSL 연결을 요구하는 연결 보안을 제공함.
  • 서버 매개 변수를 여러 개 사용하면 잠금 모드, 최대 연결 수 및 시간 제한과 같은 서버 설정을 구성 가능.
  • 하드웨어, 네트워크 구성 요소, 가상 서버, 소프트웨어 패치 및 기타 기본 구성 요소를 관리할 필요 없이 최대 규모의 데이터베이스로 스케일 업되는 글로벌 데이터베이스 시스템을 제공함.
  • 특정 작업은 Azure Database for MySQL에서 사용할 수 없으며, 주로 보안 및 관리와 관련이 있음.
  • Azure에서 데이터베이스 서버 자체의 이러한 측면을 관리함.
  • Azure Database for MySQL에는 단일 서버 및 유연한 서버의 두 가지 배포 옵션이 있음.
  • Azure Database for MySQL 유연한 서버 - 데이터베이스 관리 기능 및 구성 설정에 대해 보다 세분화된 제어 및 유연성을 제공하며, 개발 또는 마이그레이션에 권장되는 배포 옵션임.
  • Azure Database for MySQL 단일 서버  - 단일 서버를 이미 사용하는 기존 애플리케이션에 가장 적합합니다.

 

Azure Database for MariaDB

  • Azure Database for MariaDB는 Azure에서 실행할 수 있도록 조정된 MariaDB 데이터베이스 관리 시스템.
  • MariaDB Community Edition을 기반으로 하며, 데이터베이스는 Azure에서 완벽하게 관리되고 제어됨.
  • 서비스를 프로비저닝하고 데이터를 전송한 후에는 시스템에 추가 관리가 거의 필요하지 않음.

 

Azure Database for PostgreSQL

  • PostgreSQL을 선호하는 경우 Azure 클라우드에서 PostgreSQL의 PaaS 구현을 실행하도록 Azure Database for PostgreSQL을 선택 가능.
  • MySQL 서비스와 동일한 가용성, 성능, 스케일링, 보안 및 관리 이점을 제공.
  • 온-프레미스 PostgreSQL 데이터베이스의 일부 기능은 Azure Database for PostgreSQL에서 사용할 수 없으며, 주로 사용자가 데이터베이스에 추가하여 다양한 프로그래밍 언어(지원되는 pgsql 이외의 언어)로 저장 프로시저를 작성하는 것과 같은 특수한 작업을 수행하는 데 사용할 수 있는 확장, 그리고 운영 체제와의 직접 상호 작용과 관련이 있음.
  • 가장 자주 사용되는 핵심 확장 세트가 지원되며, 사용 가능한 확장 목록이 계속 검토 중임.
  • Azure Database for PostgreSQL 단일 서버, 유연한 서버, 하이퍼스케일의 세 가지 배포 옵션이 있음.
  • Azure Database for PostgreSQL 단일 서버 - Azure Database for MySQL과 유사한 이점을 제공하며, 세 가지 가격 책정 계층 중에서 선택 가능. 기본, 범용 및 메모리 최적화가 있으며, 계층마다 서로 다른 CPU 수, 메모리 및 스토리지 크기를 지원함. 지원하려는 로드에 따라 한 가지를 선택 해야함.
  • Azure Database for PostgreSQL 유연한 서버 - 완벽한 관리형 데이터베이스 서비스로 더 많은 제어 및 서버 구성 사용자 지정을 제공하고 더 향상된 비용 최적화 제어를 제공함.
  • Azure Database for PostgreSQL 하이퍼스케일(Citus) - 여러 서버 노드에 걸쳐 쿼리를 스케일링하여 대규모 데이터베이스 로드를 지원하는 배포 옵션으로 데이터베이스는 여러 노드 간에 분할됨. 데이터는 파티션 키 또는 분할 키의 값에 따라 청크로 분할되고, Azure 클라우드에서 가장 큰 데이터베이스 PostgreSQL 배포에 대해 이 배포 옵션을 사용하는 것이 좋음.

 

 


 

이전

 

[Azure 자격증 - DP-900] Azure에서 관계형 데이터에 대한 고려 사항 - Part 1

관계형 데이터 관계형 데이터의 특징 관계형 데이터베이스에서는 실제 세계의 엔터티 컬렉션을 테이블로 모델링함. 엔터티는 정보를 기록할 대상이면 무엇이든 될 수 있으며, 주로 중요한 개

epictrave.tistory.com

 

다음 글

 

[Azure 자격증 - DP-900] Azure에서 비관계형 데이터 작업에 대한 고려 사항 설명

Azure 스토리지의 기능 Azure Blob 스토리지 Azure Blob 스토리지는 클라우드에서 매우 많은 양의 비정형 데이터를 Blob(이진 대형 개체)로 저장할 수 있는 서비스. Blob은 데이터 파일을 클라우드 기반 스

epictrave.tistory.com

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기