
Azure의 대표 컨셉은 Microsoft Entra ID이다(AAD)
| 항목 | Azure SQL Database | Managed Instance |
|---|---|---|
| 단위 | DB | 인스턴스 |
| 파일 시스템 | 없음 | 있음 |
| SQL Server 엔진 | 추상화됨 | 거의 그대로 |
| OS 접근 | 불가 | 일부 가능 |
| 복원 방식 | .bacpac | .bak |
| 물리 구조 접근 | 불가 | 가능 |
| 보안 구조 | 다중 테넌트 | 격리된 환경 |

Bastion은 가상 네트워크 생성시 선택 가능
Azure Portal 상단 검색창에서 Azure SQL을 검색하면
Azure SQL과 관련된 서비스 목록이 표시된다.
이 화면에서는 다음과 같은 리소스를 확인할 수 있다.
Azure SQL 선택 화면에서는 사용자의 요구사항을 기반으로
적절한 서비스를 추천하기 위해 질문을 제공한다.
이 질문들은 다음과 같은 기준을 포함한다.

Azure에서는 데이터베이스 마이그레이션을 쉽게 하기 위한 도구를 제공한다.
마이그레이션 시작 화면에서 다음 옵션을 확인할 수 있다.
Azure에서 제공하는 마이그레이션 방법은 다음과 같다.
다양한 DB → Azure 이전
→ Azure Database Migration Service
SQL Server → Azure 이전
→ Azure Arc enabled SQL Server
앱 + DB 전체 이전
→ Azure Migrate
https://learn.microsoft.com/ko-kr/azure/private-link/tutorial-private-endpoint-sql-portal
| 항목 | Azure SQL Database | Managed Instance |
|---|---|---|
| 단위 | DB | 인스턴스 |
| 파일 시스템 | 없음 | 있음 |
| SQL Server 엔진 | 추상화됨 | 거의 그대로 |
| OS 접근 | 불가 | 일부 가능 |
| 복원 방식 | .bacpac | .bak |
| 물리 구조 접근 | 불가 | 가능 |
| 보안 구조 | 다중 테넌트 | 격리된 환경 |
다음과 같이 설정한다.
컴퓨팅 계층 및 하드웨어를 설정한다.
👉 이후 Serverless와 비교 목적
데이터베이스 접근을 위한 네트워크 설정을 수행한다.
기본 제공 옵션을 그대로 유지한다.
기존 데이터 사용에서
👉 샘플 선택 (AdventureWorks)
“만들기”를 선택하면 배포가 진행된다.
쿼리 편집기를 통해 생성된 DB를 확인한다.
SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName
FROM SalesLT.ProductCategory pc
JOIN SalesLT.Product p
ON pc.productcategoryid = p.productcategoryid;
쿼리 실행 결과를 통해 데이터 확인 가능
SSMS 설치 가이드를 통해 설치 진행
연결시 Microsoft Entra 인증으로 생성했다면 Microsoft Entra 암호 입력 후
인증서 신뢰를 체크하면 연결됨
| 선택 | 결과 | 복구 가능성 |
|---|---|---|
| 데이터베이스만 삭제 | 서버 유지, DB 삭제 | 일정 기간 복구 가능 |
| 서버 삭제 | 서버 + DB 삭제 | 서버 복구 불가, DB만 일부 복구 |
| 둘 다 삭제 | 전부 삭제 | DB만 복구 가능 |
Azure SQL Database에서
현재 IP 확인 후 방화벽 등록



bastion을 통해야하므로 공용 인바운드 포트 X



vm-bastion으로 연결-ssh 로컬 파일로 접속(azureuser)



sudo su
curl -sSL -O https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
exit
sudo apt-get update
sudo apt-get install mssql-tools18 unixodbc-dev
sudo apt-get update
sudo apt-get install mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
source ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc




AdventureWorks2022.bak 다운로드 후
Blob Storage에 업로드
SAS는 다음 역할 수행









| 항목 | SQL Database | Managed Instance |
|---|---|---|
| 구조 | 논리 DB | 인스턴스 |
| 파일 시스템 | 없음 | 있음 |
| 복원 방식 | .bacpac | .bak |
MI는 Lift & Shift에 적합
.bak은 완벽한 시점 복원용 백업/복구 파일이고, .bacpac은 클라우드 이전 및 버전 업/다운그레이드용 마이그레이션 파일이다.
| 구분 | .bak | .bacpac |
|---|---|---|
| 성격 | 물리적 백업 | 논리적 아카이브 |
| 목적 | 특정 시점의 DB를 그대로 복원 | DB 구조와 데이터를 다른 환경으로 이전 |
| 포함 내용 | 데이터 파일 구조, 트랜잭션 로그 상태 등 | 테이블 구조(스키마) + 데이터 |
| 일관성 | 트랜잭션 로그 포함으로 특정 시점 일관성 보장 | 데이터와 구조를 추출해서 이동 |
| 속도 | 빠름 | 상대적으로 느릴 수 있음 |
| 용량 | 큼 | 작음 |
| 대용량 DB | 적합 | 대용량에는 비효율적일 수 있음 |
| 버전 호환성 | 낮음. 상위 버전에서 만든 .bak은 하위 버전 복원 불가 | 높음. 하위 버전으로도 이동 가능 |
| Azure SQL Database | 직접 가져오기 불가 | 가져오기 가능 |
| Azure SQL Managed Instance | 복원 가능 | 가져오기 가능하지만 .bak이 더 적합 |
.bak의 장점.bak 파일은 특정 시점의 데이터베이스를 그대로 저장한 Point-in-time 스냅샷이다.
백업 도중 데이터가 변경되더라도 트랜잭션 로그를 함께 포함하기 때문에 데이터 무결성이 보장된다.
즉, 운영 중인 DB를 백업하더라도
“백업 시점 기준으로 데이터가 깨지지 않은 상태”를 유지할 수 있다.
.bak은 데이터베이스의 물리적 페이지 단위 블록을 통째로 백업한다.
그래서 대용량 데이터베이스에서는 .bacpac보다 백업/복원 속도가 훨씬 유리하다.
특히 수백 GB~TB 단위 DB에서는 .bak 방식이 사실상 필수에 가깝다.
.bak 백업은 SQL Server 엔진의 기본 백업 기능을 사용한다.
그래서 운영 중인 서버에서 백업을 수행해도 비교적 안정적으로 동작하고, 시스템 부하도 상대적으로 적다.
.bacpac의 장점.bacpac은 데이터베이스의 물리 구조를 그대로 복사하는 것이 아니라,
테이블 구조와 데이터를 논리적으로 추출한 파일이다.
그래서 SQL Server 버전에 덜 종속된다.
예를 들어 SQL Server 2022에서 만든 .bak은 SQL Server 2019로 복원할 수 없지만, .bacpac은 구조와 데이터를 추출한 형태이기 때문에 하위 버전으로 이동할 수 있다.
Azure SQL Database는 사용자에게 파일 시스템 접근 권한을 제공하지 않는다.
그래서 SQL Server의 물리 백업 파일인 .bak을 직접 복원할 수 없다.
반면 .bacpac은 스키마와 데이터만 담은 논리적 아카이브이기 때문에 Azure SQL Database로 가져올 수 있다.
즉,
.bak 복원 가능.bacpac 가져오기 사용.bacpac은 트랜잭션 로그나 여유 디스크 공간을 포함하지 않는다.
순수하게 구조와 데이터만 추출해서 압축하기 때문에 .bak보다 파일 크기가 훨씬 작아질 수 있다.
자료 예시에서는 4.3GB .bak 파일이 197MB .bacpac 파일로 줄어들 수 있음을 설명한다.
| 상황 | 적합한 파일 |
|---|---|
| SQL Server 전체를 특정 시점으로 복구 | .bak |
| 대용량 DB 백업/복원 | .bak |
| Managed Instance로 복원 | .bak |
| Azure SQL Database로 이전 | .bacpac |
| 버전 차이가 있는 환경으로 이동 | .bacpac |
| 파일 크기를 줄여 이관 | .bacpac |
한 줄로 정리하면,
.bak은 “복구용”, .bacpac은 “이전용”에 가깝다.

| 서비스 분야 | AWS (Amazon Web Services) | Azure (Microsoft Azure) | GCP (Google Cloud Platform) |
|---|---|---|---|
| 컴퓨팅 (가상 서버) | EC2 (Elastic Compute Cloud) 가장 다양한 인스턴스 타입 제공 | Azure Compute Windows 서버와의 호환성 우수 | Compute Engine 빠른 부팅 속도와 자동 할인 기능 |
| 컨테이너 (컨테이너 관리) | ECS / EKS Kubernetes 및 자체 서비스 지원 | Azure Kubernetes Service (AKS) Kubernetes 관리 및 통합 강점 | Google Kubernetes Engine (GKE) Kubernetes 원조, 안정적 관리 |
| 스토리지 (객체 스토리지) | S3 클라우드 스토리지 사실상 표준 | Blob Storage 온프레미스 연동 용이 | Cloud Storage 다양한 클래스, 비용 효율 |
| 데이터베이스 (관계형 DB) | RDS MySQL, PostgreSQL 등 다양한 엔진 지원 | Azure SQL Database SQL Server와 완벽 호환 | Cloud SQL 간편한 관리와 성능 |
| 서버리스 (코드 실행) | Lambda 다양한 언어 및 서비스 연동 | Azure Functions .NET 환경과 자연스러운 통합 | Cloud Functions 사용량 기반 단순 과금 |
| 빅데이터 (분석, DW) | Redshift / EMR DW + 빅데이터 플랫폼 | Synapse Analytics 데이터 통합 및 분석 강점 | BigQuery 압도적 속도와 확장성 |
| AI/ML (머신러닝 플랫폼) | SageMaker 모델 개발~배포 End-to-End | Azure Machine Learning MS AI 기술과 통합 | Vertex AI TensorFlow 기반 최신 AI 기술 |