안녕하세요. SQLER의 코난 김대우입니다.
이번 강좌에서는, 1-5. SQL클라우드와 On-Premise를 진행 하겠습니다.
SQLER에서 진행되는, 챗GPT와 함께 배우는 SQL Server 강좌 목록
TL;DR
클라우드 데이터베이스와 On-Premise 데이터베이스의 유사점과 차이점을 살펴보고, 각각 어떤 장단점이 있는지, SQL Server는 어떻게 클라우드에서 적용되는지 살펴보겠습니다.
강좌에서 계속 클라우드 SQL, Azure SQL 이야기를 하시는데요, 대체 클라우드와 SQL이 어떤 관계가 있나요?
기업과 조직의 IT 인프라스트럭처는 클라우드로 이전 중
SQL Server는 마이크로소프트의 데이터베이스 플랫폼입니다. 마이크로소프트는 Azure 클라우드 서비스도 제공합니다. 데이터베이스와 클라우드 모두 있으니 클라우드 데이터베이스도 제공하고 있겠지요.
클라우드에서 데이터베이스를 다양한 목적에 맞춰 사용할 수 있도록 마이크로소프트 Azure는 여러 옵션을 제공합니다. 이 강좌에서는 간략히 클라우드에 대해 알아보고, 어떤 클라우드 데이터베이스가 제공되는지 살펴보겠습니다.
클라우드 비교 및 요약: On-Premise vs IaaS vs PaaS
이미 클라우드에 대해서는 다들 알고 계시겠지만, 정리 차원에서 짚어 보겠습니다.
참고링크: 개발자 커뮤니티 SQLER.com - IaaS, PaaS, SaaS - 누구나 클라우드를 말한다
이미지 - On-Premise, IaaS, PaaS, SaaS 비교
☑️ 챗GPT 활용: On-Premise, IaaS, PaaS, SaaS 비교해서 설명해줘
On-Premise
직접 인프라스트럭처부터 OS, 애플리케이션까지 모두 설치하고 관리하면서 사용하는 방식이 On-Premise입니다. On-Premise의 장점은 인프라부터 개발, OS는 물론, 플랫폼과 애플리케이션 등 모든 기술 스택을 직접 관리할 수 있다면, 회사나 조직에서 이를 모두 제어 가능한 장점이 있습니다
단점으로는 인프라의 구축하고 유지하는데 인력과 시간이 소요되고 클라우드 서비스에 비해, 확장성이나 유연성 확보가 어려울 수 있습니다.
IaaS
클라우드 서비스 제공자가 인프라를 제공합니다.
장점으로 인프라 구축과 유지에 시간을 뺏기지 않고 필요시에 신속하게 이용할 수 있으며, 클라우드 서비스 제공자가 인프라 정비에 많은 금액을 투자하므로 일반적으로 사용자가 직접 운용하는 것보다 가용성이 높고. 확장성 확보도 신속하게 처리 가능합니다.
단점으로는 인프라 부분이 캡슐화되어 있으므로, 자사에서 보안이나 가용성, 성능 등을 세밀하게 제어하고자 하는 기업에는 적합하지 않습니다. Scale-out으로 동적 확장할 경우, 애플리케이션에 대한 수정과 부하 분산(Load Balancing) 처리 등은 IaaS에서 기본으로 제공되지 않습니다. 서비스에 필요한 개발 코드 수정이 필요하거나 부하 분산 등을 위한 추가 비용이 발생할 수 있습니다.
PaaS
인프라와 플랫폼 모두 클라우드 서비스 제공자가 관리합니다.
장점으로는, 개발자에게 가장 유용한 클라우드 서비스로 애플리케이션 로직과 개발이라는 핵심 업무에 집중할 수 있습니다. 또한 부하분산(Load Balancing)이나 확장성 확보도 PaaS는 클라우드 서비스 제공자 측에서 수행해 주기 때문에 일단 애플리케이션 코드를 작성해서 서비스 제공자가 준비한 플랫폼에 올리기만 하면, 동적 확장 기능과 같은 모든 PaaS의 기능을 활용 가능합니다.
단점으로는, PaaS 서비스의 구조상 애플리케이션 플랫폼이 함께 제공되는 구조. 즉, 플랫폼에 종속되는 구조로 애플리케이션이 개발되기 때문에 타 PaaS 플랫폼 등으로 이전이 어려울 수 있습니다. 기존 애플리케이션이 있을 경우, 같은 개발 언어나 프레임워크를 이용한다고 해도, 최소한의 개발 리소스를 투입해 PaaS 플랫폼에 맞도록 애플리케이션을 수정하는 과정이 필요합니다. 예를 들어, Python Flask로 구축된 웹 서비스 애플리케이션이 있을 경우 이를 Azure PaaS로 올리려면, 최소한 Azure에서 동작하기 위한 일부 코드 수정이 필요하며, 이는 어느 PaaS 플랫폼이나 마찬가지입니다.
☑️ 챗GPT 활용: 클라우드 PaaS 환경으로 애플리케이션을 이전하기 위한 코드 수정에 대해서 알려줘
SQL 클라우드 서비스
위의 클라우드의 IaaS / PaaS에 대해 이해하셨다면, 아래의 클라우드 SQL 서비스에 대해 정리할 수 있습니다.
이미지 - SQL Server On-Premise 부터 PaaS 까지
Azure VM의 SQL Server: IaaS
SQL Server 워크로드를 편리하게 On-Premise에서 클라우드로 이전(리프트 앤 시프트 -lift and shift)하며 SQL Server 호환성 및 운영 체제 수준 액세스를 100% 유지합니다.
On-Premise의 SQL 서버를 클라우드로 이전하기 쉽습니다. On-Premise와 마찬가지로 모든 SQL 서버 제어가 가능하기 때문에, 이런 제어 기능을 사용하는 애플리케이션도 그대로 클라우드로 이전할 수 있습니다.
Azure SQL Managed Instance: PaaS
Azure VM SQL Server의 수준과 Azure SQL Database 수준의 중간 정도입니다. 일부 VM의 기능을 사용 가능하며, 관리되는 환경이기 때문에 Azure SQL Database의 거의 모든 PaaS 혜택을 제공합니다. SQL Server 데이터베이스 엔진과 거의 동일한 기능을 제공하며, 서비스로 제공되는 관리형 인스턴스를 통해 기존 SQL Server 애플리케이을 올릴 수 있고, 클라우드로 이전에 대부분 적합합니다.
☑️ 챗GPT 활용: 클라우드 VM(Virtual Machine)과 IaaS에 대해서 알려줘
Azure SQL Database: 높은 수준의 PaaS
완전하게 관리되는(Fully managed) 클라우드 SQL 데이터베이스입니다. 클라우드의 장점을 최대한 가져와 개발에만 집중해 빠른 비즈니스 전개가 가능합니다. 데이터베이스를 제외한 나머지 부분에서는 제어할 수 있는 기능이 제한됩니다.
AWS나 구글 클라우드의 SQL 서버
- AWS에서는 RDS로 SQL Server를 PaaS로 제공합니다.
SQL 데이터베이스 서버 | Amazon Web Services
- Google Cloud에서는 SQL Server - Cloud SQL로 제공합니다.
SQL Server용 Cloud SQL - 관계형 데이터베이스 서비스
SQL Server와 클라우드 서비스 요약
SQL Server는 On-Premise부터 클라우드 IaaS와 PaaS에서 모두 사용 가능하며, 대부분의 클라우드 서비스 제공자(CSP)는 IaaS부터 완전 관리형 PaaS까지 SQL Server를 지원합니다. 즉, SQL Server를 배우면 표준 SQL 기능부터, On-Premise - 클라우드까지 다양한 환경에서 활용할 수 있습니다.
이미지 - SQL Server 2022의 클라우드 연결성
이미지 - 하이브리드 클라우드와 비즈니스 연속성
감사합니다.
SQL 강좌 책 구매
강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다.