SQL Server on Linux란?

완료됨

Linux를 실행하는 조직은 SQL Server를 사용하여 데이터베이스를 호스트할 수 있습니다. 이와 마찬가지로 SQL Server를 실행하는 조직에서는 해당 서버를 Linux 운영 체제로 이동하는 것을 생각할 수 있습니다. 그러나 이러한 변경을 수행해야 하는 이유는 무엇인가요?

Wide World Importers에서 시스템 관리자로서 모든 프런트 엔드 웹 서버와 백 엔드 Windows 데이터베이스 팜을 호스트하는 Linux 서버를 담당하고 있다고 해보겠습니다. 그렇지만 대신 Linux 환경을 사용하고 SQL Server on Linux를 배포하려고 하므로 SQL Server on Linux를 사용하는 경우의 주요 이점을 살펴봅니다. 목표는 CTO에 전달할 프레젠테이션을 만드는 것입니다. SQL Server on Linux의 이점 및 Linux에 설치할 경우의 영향을 설명합니다.

여기서는 SQL Server on Linux 실행을 고려해야 하는 이유를 알아보겠습니다.

왜 SQL Server on Linux를 사용할까요?

Linux는 Linux 커널에서 실행되는 운영 체제 또는 배포 컬렉션입니다. 온-프레미스 및 클라우드 기반 배포를 위한 인기 있는 운영 체제 선택 옵션입니다. SQL Server는 일반적으로 Windows 운영 체제에서만 실행되는 인기 높은 RDBMS(관계형 데이터베이스 관리 시스템)입니다. SQL Server 2017부터 Microsoft는 Linux 운영 체제에서 SQL Server 설치를 지원했습니다.

SQL Server를 실행하려면 Windows 플랫폼으로 제한되지 않는다는 점에 기억하세요. Linux는 오픈 소스이므로 저렴한 상용 하드웨어에 설치하여 운영 체제 라이선스 비용을 절감할 수 있습니다. 또한 Linux는 더 적은 공간을 차지하고 하드웨어 요구 수준도 낮추므로 Windows 기반 서버에서 Linux 기반 VM을 더 빠르게 실행할 수 있습니다.

SQL Server on Linux는 Ubuntu, Red Hat Enterprise Linux 및 SUSE를 지원합니다.

왜 SQL Server를 사용해야 하나요?

Wide World Importers에 대한 데이터 플랫폼으로 SQL Server on Linux를 선택하는 경우 현재 Windows 플랫폼에서 실행되는 기존 SQL Server 데이터베이스를 모두 Linux로 배포할 수 있습니다. 또한 Linux 버전의 SQL Server를 사용하여 기존 애플리케이션을 실행할 수 있으며, 조직에서 기존 DBA 및 애플리케이션 개발 기술을 재사용할 수 있습니다.

새 Linux 환경으로 쉽게 백업하고 복원할 수 있습니다. 위험 요소를 좀 더 낮출 수 있는 접근 방법은 업무상 중요하지 않은 데이터베이스를 Linux로 이동하고 해당 기능과 성능을 Windows와 직접 비교하는 것입니다. 입증된 경우 전체 데이터 자산을 마이그레이션하기 위한 자세한 마이그레이션 전략을 만들 수 있습니다. 이 작업을 다른 데이터베이스 기술 및 다른 운영 체제로 전환하는 데 필요한 방법과 비교해 보세요.

또한 SQL Server on Linux에는 업계 최고의 성능을 제공하는 모든 이점이 있습니다. TPC-E 벤치마크에서 최고의 성능을 나타내며, TPC-H 1TB, 10TB 및 30TB 벤치마크에서도 최고 성능을 나타냅니다. NIST(미국 국립표준기술원)에 따르면, SQL Server on Linux는 가장 안전한 데이터베이스입니다.

SQL Server 사용을 고려해야 할 또 다른 이유는 PolyBase 기능입니다. PolyBase를 사용하면 외부 테이블에 데이터를 제공하는 데이터의 외부 소스를 설정할 수 있습니다. 쿼리를 제출하는 경우 SQL Server 데이터베이스 내의 일반 테이블에 저장된 것과 동일한 방식으로 이러한 외부 테이블에서 데이터를 반환할 수 있습니다. 데이터의 외부 소스에는 Hadoop, Azure Blob Storage 계정, Oracle, PostgreSQL, MongoDB 등이 포함될 수 있습니다. 외부 테이블을 설정하면 이를 사용하여 ETL(추출, 변환, 로드) 패키지나 별도의 가져오기 또는 내보내기 도구를 사용하지 않고도 SQL Server에서 데이터를 내보내거나 가져올 수 있습니다. 또한 PolyBase를 사용하여 데이터의 외부 소스를 SQL Server 비즈니스 인텔리전스 도구와 통합할 수 있습니다.

Wide World Importers에는 SQL Server 외에 Oracle 및 SAP HANA의 데이터베이스가 있습니다. ETL 도구를 사용하여 데이터 웨어하우스를 이러한 모든 원본의 데이터로 채워서 이를 대상으로 보고서를 작성하는 것을 고려하고 있었습니다. PolyBase를 사용하여 SQL Server를 배포하는 경우에는 대신 Oracle 및 SAP HANA를 SQL Server에 외부 데이터 원본으로 추가하여 세 가지 시스템을 통합할 수 있었습니다. 이렇게 하면 보고서는 SQL Server에 대한 모든 쿼리를 제출할 수 있지만 Oracle 및 SAP HANA에 저장된 데이터는 계속 포함됩니다. 이 구성에서 SQL Server는 데이터 가상화 허브 역할을 합니다.

공유 코드베이스

Linux와 Windows 모두에서 SQL Server는 모든 지원되는 운영 체제에서 SQL Server가 실행되도록 하는 SQLPAL(SQL 플랫폼 추상화 계층)을 사용합니다. 그러므로 개발자들이 좋아하는 언어(예: .NET, PHP, node.JS, Java 또는 Python)를 사용하여 애플리케이션을 작성할 수 있고, Windows, Linux, Linux 컨테이너, Azure SQL Edge 또는 Azure SQL Database에서 실행되는 SQL Server를 사용하는지에 관계없이 어디에서나 애플리케이션이 동일한 방식으로 실행될 수 있습니다.

컨테이너

VM을 사용할 때의 단점은 실행하는 서비스에 리소스가 필요한지에 관계없이, 각 VM에 운영 체제의 모든 리소스가 필요하다는 것입니다. 컨테이너화된 가상화 시스템은 개별 애플리케이션 및 서비스를 격리하면서 호스트 운영 체제를 공유함으로써 이러한 단점을 해소합니다. 한 컨테이너에서 실행되는 서비스는 다른 컨테이너의 서비스에서 격리됩니다. 서비스의 경우 마치 별도의 VM에서 실행되는 것처럼 보이지만, 단일 운영 체제의 메모리와 프로세서를 공유하고 있는 것입니다.

Linux 컨테이너에서 SQL Server를 실행할 수 있습니다. 이러한 컨테이너를 여러 개 관리해야 하는 경우 Kubernetes 또는 Docker Swarm과 같은 오케스트레이션 도구를 사용할 수 있습니다. 고가용성을 위해서 또는 컨테이너에 새 코드를 배포하여 DevOps 팀이 연속 통합 또는 지속적인 업데이트를 구현하도록 하기 위해 이와 같이 할 수 있습니다.

지식 점검

1.

SAP HANA에 제품 카탈로그 데이터가 있고 Linux에서 실행되는 SQL Server에 판매 데이터가 있습니다. 두 시스템의 데이터를 사용하여 모든 제품에 대한 이익률을 분석하는 보고서를 작성하면서도 데이터베이스 관리자에게 필요한 작업량은 최소화하려고 합니다. 어떻게 해야 하나요?

2.

영업 팀에서 주문을 기록하고 판매 실적 데이터를 보는 데 사용하는 Python으로 작성된 모바일 앱이 있습니다. 최근 Windows 서버에서 Ubuntu Linux 서버로 데이터베이스를 마이그레이션했습니다. 앱 코드에서 어떤 변경을 해야 하나요?