Azure SQL Database 계획
Azure는 매우 구조화된 관계형 데이터에서 비정형 데이터에 이르기까지 모든 종류의 데이터를 관리하는 데 도움을 주기 위해 PaaS(Platform as a Service) 서비스를 제공합니다.
여기서는 Azure SQL Database가 왜 관계형 데이터베이스를 호스트하기 위한 편리하고 비용 효율적이고 안전한 방법인지를 알아봅니다.
Azure SQL Database를 선택하는 이유
운송 물류 애플리케이션에는 기본 CRUD(Create, Read, Update, Delete) 작업을 실행하는 저장 프로시저가 필요합니다. 사용자는 SQL Server 및 기타 관계형 데이터베이스에 대한 작업 경험이 있습니다.
데이터베이스에 대해 다음 두 가지 선택 사항을 고려하고 있습니다.
- SQL Server 온-프레미스 호스트: IT 팀은 재무 부서와 몇몇 다른 팀을 지원하기 위해 소규모 사내 데이터 센터를 운영합니다. IT 팀과 협력하여 해당 데이터 센터에 SQL Server 배포를 호스트할 수 있습니다.
- 클라우드에서 Azure SQL Database 호스트: Azure SQL Database는 SQL Server를 기준으로 하며 필요한 관계형 데이터베이스 기능을 제공합니다.
Azure에서 물류 앱을 위한 웹 및 애플리케이션 계층을 빌드하기로 결정했습니다. 따라서 데이터베이스도 Azure에 호스트하는 것이 적절합니다. 그러나 Azure SQL Database가 현명한 선택이고 가상 머신을 사용하는 것보다 더 쉬운 다른 이유가 있습니다.
편리성
VM(가상 머신) 또는 실제 하드웨어에 SQL Server를 설치하려면 하드웨어 및 소프트웨어 요구 사항에 대해 잘 알아야 합니다. 최신 보안 모범 사례를 이해하고 운영 체제 및 SQL Server 패치를 정기적으로 관리해야 합니다. 또한 백업 및 데이터 보존 문제도 직접 관리해야 합니다.
Azure SQL Database를 사용하면 하드웨어, 소프트웨어 업데이트 및 OS 패치가 자동으로 관리됩니다. 데이터베이스 이름과 몇 가지 옵션만 지정하면 몇 분 안에 SQL 데이터베이스가 실행됩니다.
편리할 때 Azure SQL Database 인스턴스를 시작 및 중단할 수 있습니다. Azure SQL Database는 빠르고 쉽게 구성할 수 있습니다. 소프트웨어 구성에 투입하는 노력을 줄이고 더 유용한 앱을 만드는 데 집중할 수 있습니다.
비용
Microsoft에서 사용자를 위해 다양한 관리 작업을 수행하므로 구입하거나 작동하거나 유지 관리할 시스템이 없습니다.
Azure SQL Database에는 여러 가지 가격 책정 옵션이 있습니다. 이런 가격 옵션을 사용하면 예측 가능한 비용으로 성능과 비용의 균형을 맞출 수 있습니다. 한 달에 몇 달러만 내면 시작할 수 있습니다.
규모
저장해야 하는 운송 물류 데이터의 양이 매년 두 배씩 늘어나고 있습니다. 온-프레미스에서 실행한다면 얼마나 많은 추가 용량을 계획해야 할까요?
Azure SQL Database를 사용하여 수요가 달라질 때 즉석에서 데이터베이스의 성능과 크기를 조정할 수 있습니다.
보안
Azure SQL 데이터베이스에는 기본적으로 공용 인터넷에서 연결을 차단하도록 구성된 방화벽이 포함되어 있습니다. 내 데이터 대한 액세스는 내가 관리할 수 있습니다.
신뢰하는 특정 IP 주소에 대한 액세스를 허용할 수 있습니다. 액세스를 허용하면 Visual Studio, SQL Server Management Studio 또는 기타 도구를 사용하여 Azure SQL 데이터베이스를 관리할 수 있습니다.
계획 개념
Azure SQL Database를 사용하기 위해 데이터베이스 관리자가 될 필요는 없지만 시작하기 전에 이해해야 할 몇 가지 개념이 있습니다.
운송 회사는 적은 비용으로 타사와 차별화되기를 원합니다. 비용을 관리하면서 최상의 서비스를 제공하려면 데이터베이스를 설정하는 방법에 대해 잘 알고 있어야 합니다.
여기에서는 다음을 포함하여 Azure SQL Database를 만들 때 고려해야 할 사항에 대해 알아봅니다.
- 논리 서버가 데이터베이스의 관리 컨테이너 역할을 하는 방식
- 구매 모델 간의 차이점을 평가하는 방법입니다.
- 탄력적 풀을 사용하여 데이터베이스 간에 처리 성능을 공유하는 방법
- 데이터 정렬 규칙이 데이터의 비교 및 정렬 방법에 영향을 주는 방식
- Azure Portal에서 Azure SQL Database를 가져오는 방법.
- 신뢰받는 원본에서만 데이터베이스에 액세스할 수 있도록 방화벽 규칙을 추가하는 방법
하나의 서버, 여러 데이터베이스
첫 번째 Azure SQL Database를 만들 때 Azure SQL 논리 서버도 만듭니다. 논리 서버를 데이터베이스의 관리 컨테이너로 생각해보세요. 논리 서버를 통해 로그인, 방화벽 규칙 및 보안 정책을 제어할 수 있습니다. 또한 논리 서버의 각 데이터베이스에서 이러한 정책을 재정의할 수도 있습니다.
지금은 데이터베이스가 하나만 필요하지만 논리 서버를 사용하면 나중에 데이터베이스를 더 추가하고 모든 데이터베이스 간에 성능을 조정할 수 있습니다.
성능을 선택합니다. DTU와 vCore 비교
Azure SQL Database에는 두 가지 구매 모델: DTU(데이터베이스 트랜잭션 단위) 및 vCore(가상 코어).
DTU란?
DTU는 컴퓨팅, 스토리지 및 I/O 리소스의 결합된 측정값입니다. DTU 모델을 미리 구성된 단순한 구매 옵션으로 생각하세요.
vCore란?
vCore는 만들고 비용을 지불하는 컴퓨팅 및 스토리지 리소스를 보다 강력하게 제어합니다.
컴퓨팅, 스토리지 및 I/O 리소스에 대해 고정적 구성을 제공하는 DTU 모델과 달리 vCore 모델을 사용하면 이런 각 리소스를 독립적으로 구성할 수 있습니다. 예를 들어 vCore 모델을 사용하여 스토리지 용량을 늘리면서 컴퓨팅과 I/O 처리량은 기존 상태로 유지할 수 있습니다.
운송 및 물류 프로토타입에 데이터베이스가 하나만 필요합니다. 컴퓨팅, 스토리지, I/O 성능이 최적의 균형을 이루도록 하므로 DTU 옵션을 사용하기로 합니다. 프로토타입을 빌드하는 동안 작은 DTU 데이터베이스를 사용하는 것이 더 저렴합니다.
SQL 탄력적 풀이란?
Azure SQL 데이터베이스를 만들 때 SQL 탄력적 풀을 만들 수 있습니다.
탄력적 풀을 사용하면 여러 데이터베이스가 공유할 리소스 풀에 대한 하나의 가격을 선택할 수 있습니다. 탄력적 풀은 리소스 사용률 풀이며 일부 데이터베이스가 다른 시간에 최대 활동을 하는 경우에 이상적입니다. 예를 들어, 비즈니스가 여러 시간대에 걸쳐 있고, 각 데이터베이스가 가장 바쁜 시간대는 현지 시간 오전 8시라고 상상해 보십시오. 각 데이터베이스는 풀의 리소스 한도 내에서 필요한 리소스를 사용할 수 있습니다.
SQL 탄력적 풀은 eDTU(탄력적 DTU)를 사용하거나 vCore로 프로비저닝할 수 있습니다.
프로토타입의 경우 하나의 SQL 데이터베이스만 필요하므로 SQL 탄력적 풀이 필요하지 않습니다.
데이터 정렬이란 무엇인가요?
데이터 정렬은 데이터를 정렬하고 비교하는 규칙을 의미합니다. 데이터 정렬은 대/소문자 구분, 악센트 표시 및 기타 언어 특성이 중요한 경우 정렬 규칙을 정의하는 데 도움이 됩니다. 정렬 규칙을 사용하면 정렬된 시퀀스로 데이터를 정렬할 수 있습니다.
기본 데이터 정렬인 SQL_Latin1_General_CP1_CI_AS가 무엇을 의미하는지 잠시 살펴보겠습니다.
- Latin1_General은 서부 유럽 언어 제품군을 나타냅니다.
- CP1은 라틴 알파벳의 인기 있는 문자 인코딩인 코드 페이지 1252를 나타냅니다.
- CI는 비교가 대/소문자를 구분하지 않음을 의미합니다. 예를 들어, “HELLO”는 “hello”와 동일한 것으로 비교됩니다.
- AS는 비교가 악센트를 구분함을 의미합니다. 예를 들어 “résumé”는 “resume”와 동일한 것으로 비교되지 않습니다.
데이터의 정렬 및 비교 방법에 대한 특정 요구 사항이 있는 것이 아니므로 기본 데이터 정렬을 선택합니다.