Azure의 MySQL 및 PostgreSQL 데이터베이스 서비스

완료됨

기능적인 온-프레미스 데이터베이스가 있는 경우 Azure와 같은 클라우드 서비스로 이동하는 것을 고려해야 하는 이유는 무엇인가요? 마찬가지로 Azure에서 새 데이터베이스 시스템을 구현하는 것이 좋습니다. 많은 조직에서는 온-프레미스 데이터 센터를 사용하는 것과 비교하여 클라우드에서 고가용성 및 확장성 있는 서비스를 만드는 것이 쉽고 상대적으로 저렴하기 때문에 이 마이그레이션을 수행합니다.

신생 기업의 경우 현재 MySQL 및 PostgreSQL 온-프레미스에서 실행되는 데이터베이스는 중요 업무용이지만 데이터 센터의 크기와 관리 팀의 크기에 따라 제한됩니다. Azure 서비스를 사용하여 이러한 제한 사항을 해결할 수 있는지, 그렇다면 요구 사항에 가장 적합한 서비스를 해결할 수 있는지 조사하려고 합니다.

여기서는 Azure Database for MySQL, Azure Database for MariaDB 및 Azure Database for PostgreSQL 및 함께 사용할 수 있는 배포 옵션에 대해 알아봅니다. 또한 Azure의 가상 머신 또는 컨테이너에서 오픈 소스 데이터베이스를 실행하고 IaaS(Infrastructure-as-a-Service) 접근 방식을 실행할 때의 이점에 대해서도 알아봅니다.

Availability

Azure SLA(서비스 수준 계약)에서 보장하는 가용성은 구현의 정확한 세부 정보에 따라 달라지지만 항상 높습니다. 예를 들어 Azure Database for PostgreSQL의 경우 Microsoft는 추가 비용 없이 99.99% 가용성을 보장합니다. 더 높은 가용성을 위해 유연한 서버를 사용할 수 있습니다.

온-프레미스 네트워크에서 이 가용성을 달성하려면 하드웨어 오류에 탄력적인 시스템을 설계해야 합니다. 다음이 필요합니다.

  • 여러 물리적 서버.
  • 서버 오류가 있는 경우 쿼리를 다시 라우팅할 수 있는 부하 분산 장치입니다.
  • 서버 간에 데이터를 공유하거나 서버 간에 데이터를 복제하는 방법을 공유하는 스토리지 영역 네트워크입니다.
  • 복원력 있는 네트워크 하드웨어.
  • 환경적으로 제어되는 데이터 센터입니다.
  • 무정전 전원 공급 장치 및 백업 발전기.

이러한 모든 구성 요소는 비용이 많이 들며 구현하고 실행하려면 기술이 필요합니다. 또한 상당한 관리 리소스를 사용합니다. Azure에서는 이러한 요구 사항이 이미 해결되었습니다. 데이터베이스를 만들면 고가용성이 기본 제공됩니다.

확장성

사용자 기반이 증가하면 시스템 수요가 증가합니다. 모든 온-프레미스 시스템에는 최대 용량이 있습니다. 이 제한에 접근하면 하드웨어를 더 추가하여 늘려야 합니다. 용량을 즉시 추가할 수 없습니다. 대신 하드웨어를 구매하고, 필요한 운영 체제 및 소프트웨어를 설치하고, 업데이트를 적용한 다음, 새 데이터베이스 인스턴스에 데이터를 추가해야 합니다. 이 모든 것들은 시간이 걸릴 수 있습니다.

또한 높은 수요는 종종 일시적이라는 것을 기억하십시오. 예를 들어 성공적인 마케팅 캠페인을 실행하는 경우 트래픽이 최고조에 달한 후 수요가 낮아질 수 있습니다. 온-프레미스 설정에서 이러한 피크에 대한 시스템을 디자인해야 합니다. 즉, 시스템은 대부분의 시간 동안 사용률이 밑도는데도 여전히 청구서를 실행하고 유지 관리가 필요합니다.

이러한 문제는 클라우드에서 훨씬 쉽게 극복할 수 있습니다. 시스템이 용량에 도달하면 더 큰 계층으로 이동하거나 가상 머신을 추가하여 매우 신속하게 대응할 수 있습니다. 수요가 감소하면 용량을 제거하여 신속하게 비용을 절감할 수 있습니다. Azure에서는 사용하는 용량에 대해서만 요금을 지불합니다.

IaaS 및 PaaS

필요한 제어 수준에 따라 Azure에서 데이터베이스를 구현할 때 두 가지 이상의 방법 중에서 선택할 수 있습니다.

  • IaaS(Infrastructure as a Service). IaaS 접근 방식을 선택하면 Azure에서 실제 인프라를 실행합니다. 가상 머신과 가상 네트워크를 만들어 연결한 다음 필요한 소프트웨어 및 데이터를 설치합니다. 가상 머신을 실행하는 것은 물리적 서버를 실행하는 것과 같습니다. 운영 체제 및 소프트웨어를 유지 관리하지만 데이터 센터, 환경 제어 또는 인터넷 연결에 대해 걱정할 필요가 없습니다.
  • PaaS(Platform as a Service). PaaS 접근 방식을 선택하는 경우 Azure는 물리적 인프라, 필요한 가상 서버 및 데이터베이스 소프트웨어를 실행합니다. 이러한 구성 요소에 대한 구성 또는 유지 관리 작업을 수행할 필요가 없습니다. 예를 들어 Azure는 서비스 팩을 자동으로 적용합니다. 데이터베이스 관리에 집중할 수 있습니다. Azure에서 오픈 소스 데이터베이스를 실행하기 위한 PaaS 제품에는 Azure Database for MySQL, Azure Database for MariaDBAzure Database for PostgreSQL이 포함됩니다.

MySQL, MariaDB 및 PostgreSQL용 Azure Database 서비스는 무엇인가요?

MySQL, MariaDB 또는 PostgreSQL을 기반으로 하는 온-프레미스 데이터베이스 시스템이 있고 데이터베이스를 클라우드로 이동하려는 경우 Azure Database for MySQL, Azure Database for MariaDB 또는 Azure Database for PostgreSQL을 사용하는 것이 좋습니다. 이러한 서비스를 사용하여 새 데이터베이스를 구현할 수도 있습니다. 예를 들어 개발자와 데이터베이스 관리자가 해당 데이터베이스 서버에 대한 경험이 있고 새 시스템을 학습하는 데 시간을 소비하지 않으려는 경우 Azure Database for MySQL, Azure Database for MariaDB 또는 Azure Database for PostgreSQL 을 사용하면 직원이 기존 지식을 사용할 수 있습니다. Azure Database for MySQL, Azure Database for MariaDBAzure Database for PostgreSQL은 PaaS 시스템이므로 가상 서버 또는 네트워크를 설계하거나 구현할 필요가 없습니다.

MySQL용 Azure Database란?

Azure Database for MySQL은 MySQL Community Edition을 기반으로 Azure 클라우드에서 MySQL의 PaaS 구현입니다. 현재 필요에 따라 MySQL 버전 5.6, 5.7 및 8.0에 대한 지원에서 선택할 수 있습니다. MySQL이 발전함에 따라 추가 버전에 대한 지원이 제공됩니다.

Azure Database for MySQL에서는 다음 기능을 사용할 수 있습니다.

  • 기본 제공되는 고가용성 기능
  • 예측 가능한 성능입니다.
  • 수요에 빠르게 대응하는 간편한 크기 조정.
  • 미사용 데이터와 이동 중인 데이터를 모두 보호합니다.
  • 지난 35일 동안의 자동 백업 및 지정 시간 복원
  • 엔터프라이즈 수준의 보안 및 법률 준수.

시스템은 종량제 가격을 사용하므로 사용하는 항목에 대해서만 지불합니다.

다음 두 가지 배포 옵션 중에서 선택할 수 있습니다.

Azure Database for MySQL - 유연한 서버

Azure Database for MySQL - 유연한 서버는 데이터베이스를 여러 가용성 영역으로 복제하여 더 큰 가용성을 제공합니다. 또한 데이터베이스 서비스를 빠르게 시작하고 중지하여 비용을 최적화할 수 있습니다.

Azure Database for MySQL은 하드웨어, 네트워크 구성 요소, 가상 서버, 소프트웨어 패치 및 기타 기본 구성 요소를 관리할 필요 없이 대규모 데이터베이스로 확장하는 글로벌 데이터베이스 시스템을 제공합니다.

Azure Database for MariaDB란?

MariaDB는 Oracle의 MySQL 인수에 대한 응답으로 커뮤니티에서 만든 MySQL의 포크입니다. Azure Database for MariaDB는 Azure 클라우드에서 MariaDB의 PaaS 구현입니다.

MariaDB는 MySQL에 대한 드롭인 대체 기능으로 설계되어 클라이언트 앱을 광범위하게 다시 표시하거나 데이터베이스 스키마를 변경하지 않고도 MySQL 데이터베이스를 MariaDB 데이터베이스로 바꿀 수 있습니다. MariaDB의 많은 기능은 MySQL과 동일합니다. 예를 들면 다음과 같습니다.

  • 데이터베이스 구조 및 인덱스
  • 데이터 정의 명령
  • 클라이언트 프로토콜, 구조 및 API
  • mysqldumpmysqladmin 프로그램

MySQL과 MariaDB 간의 이러한 유사성은 MySQL에 대한 마이그레이션 작업이 MariaDB에서 Azure Database for MariaDB와 매우 유사하다는 것을 의미합니다. 시스템 간에는 몇 가지 차이점이 있습니다. 예를 들어 MariaDB는 ColumnStore 및 Redis Cache를 지원하며, 둘 다 성능을 최적화하는 데 사용할 수 있습니다.

비고

MySQL 및 MariaDB에서 Azure로의 데이터베이스 마이그레이션은 매우 유사하기 때문에 이 과정에서 함께 설명합니다.

중요합니다

작성 당시에는 Azure Database for MariaDB에 대한 유연한 서버 배포 옵션이 없습니다.

PostgreSQL용 Azure Database란?

PostgreSQL을 선호하는 경우 Azure Database for PostgreSQL을 선택하여 Azure Cloud에서 해당 데이터베이스 서버의 PaaS 구현을 가져올 수 있습니다. MySQL 서비스와 동일한 가용성, 성능, 크기 조정, 보안 및 관리 이점을 제공합니다.

다음 세 가지 배포 옵션 중에서 선택할 수 있습니다.

Azure Database for PostgreSQL – 유연한 서버

Azure Database for PostgreSQL - 유연한 서버는 MySQL 유연한 서버와 비슷한 이점을 제공합니다. 이를 사용하여 가장 높은 수준의 가용성과 편리한 다시 시작을 제공할 수 있습니다.

Azure에서 MySQL, MariaDB 및 PostgreSQL을 실행하기 위한 IaaS 옵션

IaaS 접근 방식을 사용하여 클라우드에서 물리적 아키텍처를 복제합니다. 시스템의 기초가 되는 운영 체제 및 소프트웨어를 더 많이 제어하려면 IaaS를 선택할 수 있습니다.

그러나 요구 사항 및 기존 시스템의 복잡성에 따라 IaaS 접근 방식을 구현하기 위해 채택할 수 있는 몇 가지 방법이 있습니다.

리프트 앤 시프트

한 가지 방법은 데이터 센터와 일치하는 가상 네트워크 인프라를 만들어 클라우드에서 온-프레미스 아키텍처를 미러링하는 것입니다. 온-프레미스 시스템의 각 서버에 대한 가상 머신을 만듭니다. 가상 머신에 데이터베이스 관리 시스템 소프트웨어(MySQL, MariaDB 또는 PostgreSQL)를 설치하고 구성합니다. 그런 다음 클라이언트 코드 또는 구성을 거의 변경하지 않으면서 시스템을 클라우드로 리프트 앤 시프트 합니다.

이 전략을 사용하면 마이그레이션을 위한 단계별 프로세스를 따릅니다. Azure 네트워크 게이트웨이를 사용하여 온-프레미스에서 다른 요소를 유지하면서 시스템의 일부를 증분 방식으로 클라우드로 이동합니다. 이 하이브리드 방법을 사용하여 각 단계에서 시스템을 안정화하고 필요한 경우 롤백합니다.

미리 빌드된 가상 머신 사용

마켓플레이스에는 MySQL, MariaDB 및 PostgreSQL 서버에 대해 미리 구성된 가상 머신이 포함됩니다. 이러한 이미지는 데이터베이스 서버 소프트웨어를 직접 설치할 필요가 없으므로 시간을 절약합니다. 데이터베이스 가상 머신을 설정할 때 Marketplace에 올바른 버전의 데이터베이스 소프트웨어가 있는 이미지가 있는지 확인하고 사용하는 것이 좋습니다.

사용자 지정 가상 머신 이미지를 Azure에 업로드하고 이를 사용하여 가상 머신을 만들 수도 있습니다. 이 이미지에는 선택한 데이터베이스 소프트웨어와 데이터베이스 자체도 포함될 수 있습니다. 자세한 내용은 자습서: Azure PowerShell을 사용하여 Azure VM의 사용자 지정 이미지 만들기를 참조하세요.

MySQL, MariaDB 또는 PostgreSQL 컨테이너 사용

고려할 수 있는 또 다른 가상화 기술은 컨테이너화입니다. 컨테이너는 가상 머신과 비슷하지만 운영 체제를 호스트 컴퓨터와 공유합니다. 컨테이너는 가상 머신보다 작으므로 호스트 컴퓨터에서 더 많은 컨테이너를 실행하고 새 컨테이너를 더 빠르게 시작할 수 있습니다. 그러나 운영 체제가 공유되므로 Windows 컴퓨터에서 Linux 컨테이너를 실행할 수 없습니다. 물리적 서버에서 컨테이너를 실행하려면 Docker와 같은 컨테이너 호스트 소프트웨어가 필요합니다. 컨테이너는 이미지에서 배포되며 가상 머신과 마찬가지로 해당 이미지에는 MySQL, MariaDB 및 PostgreSQL과 같은 데이터베이스 소프트웨어가 포함될 수 있습니다.

Azure에서 적은 수의 컨테이너를 실행하려면 가상 머신에 Docker를 설치합니다. 또는 Container Instances 서비스를 사용하는 경우 사용자 고유의 가상 머신을 설정하지 않고 Azure에서 컨테이너를 실행할 수 있습니다. 서로 통신해야 하는 많은 수의 컨테이너를 쉽게 관리하려면 Azure Kubernetes Service를 사용합니다.