Skip to content
VDS · Windows Server

VPS에서의 MS SQL Server

Windows VPS에 MS SQL Server Express를 설치하고, 메모리를 제한하고, 안전하게 접근을 열고, 백업을 설정하는 방법을 설명해요.

업데이트 2026년 8월 23일

MS SQL Server는 Windows Server가 설치된 VPS에 일반 애플리케이션처럼 설치됩니다. 무료 Express 에디션이면 충분한 경우가 많아요. 제한은 데이터베이스당 10 GB, 엔진 메모리 1410 MB, 최대 4코어입니다.

티어 요구 사항

Windows Server 자체가 약 2 GB의 메모리를 차지합니다. 여기에 데이터베이스 엔진과 애플리케이션을 더해야 하죠. VDS-1과 VDS-2는 Windows + MS SQL 조합에는 너무 빠듯하고, 실질적인 최소 사양은 VDS-3(4코어 / 8 GB / 120 GB)이며, 부하가 있는 데이터베이스라면 VDS-4 이상을 선택하세요. VDS-3의 쓰기 속도 상한 240 MB/s인 NVMe 디스크는 데이터베이스용으로 충분합니다.

설치

Microsoft 웹사이트에서 SQL Server Express 설치 프로그램을 내려받아 무인 설치를 실행하세요.

.\SQLEXPR_x64_ENU.exe /q /ACTION=Install /FEATURES=SQLEngine /INSTANCENAME=SQLEXPRESS `
  /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" `
  /SECURITYMODE=SQL /SAPWD="LongPasswordHere" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS

인터페이스로 작업할 거라면 명령줄 도구(sqlcmd)와 SQL Server Management Studio를 별도로 설치하세요.

확인:

Get-Service MSSQL$SQLEXPRESS
sqlcmd -S .\SQLEXPRESS -Q "select @@version"

메모리와 코어

기본적으로 엔진은 사용 가능한 모든 메모리를 차지해서 시스템이 버티지 못합니다. Windows에 최소 2 GB를 남기고 명시적으로 제한하세요.

EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 4096; RECONFIGURE;

VDS-3(8 GB)에는 4096, VDS-5(24 GB)에는 16384가 적당합니다.

접근

1433 포트를 외부에 열어서는 안 됩니다. 선택지는 다음과 같아요.

  • 애플리케이션이 같은 머신에서 실행된다면 — 데이터베이스를 localhost에 두고 방화벽 규칙을 아예 만들지 마세요.
  • 외부 접근이 필요하다면 — 본인 주소에만 포트를 여세요.
New-NetFirewallRule -DisplayName "MSSQL" -Direction Inbound -Protocol TCP -LocalPort 1433 `
  -RemoteAddress 203.0.113.5 -Action Allow

sa 계정은 비활성화하고, 대신 본인 데이터베이스에만 권한을 가진 이름 있는 사용자를 만드는 게 좋습니다.

CREATE LOGIN app WITH PASSWORD = 'LongPassword';
CREATE DATABASE shop;
USE shop; CREATE USER app FOR LOGIN app;
ALTER ROLE db_owner ADD MEMBER app;
ALTER LOGIN sa DISABLE;

백업

자동 머신 백업도, 제어판의 상태 스냅샷도 없습니다. 데이터베이스 백업은 직접 하셔야 해요. 스케줄러에 하루 한 번 작업을 등록하세요.

sqlcmd -S .\SQLEXPRESS -Q "BACKUP DATABASE shop TO DISK='C:\backup\shop.bak' WITH INIT, COMPRESSION"

Express에서는 압축을 사용할 수 없으니 COMPRESSION을 제거하세요. 완성된 파일은 반드시 머신 밖으로 빼내세요. 데이터베이스 옆에 둔 사본은 디스크가 손실되면 소용이 없습니다.

최소 분기에 한 번은 복원을 확인하세요. 한 번도 복원해 본 적 없는 백업은 백업이 아닙니다.

흔한 실수

  • TCP/IP 프로토콜이 활성화되지 않음. 기본적으로 Express는 명명된 파이프에서만 수신합니다. SQL Server Configuration Manager에서 활성화한 뒤 서비스를 다시 시작하세요.
  • 명명된 인스턴스의 동적 포트. 1433을 명시적으로 설정하지 않으면 방화벽 규칙이 적용되지 않습니다.
  • 데이터베이스가 10 GB까지 커지고 쓰기를 멈춤. Express의 제한이며, 그 이상은 다른 에디션이나 데이터 정리가 필요합니다.
  • 잊힌 트랜잭션 로그. 전체 복구 모델에서는 .ldf 파일이 디스크를 다 먹을 때까지 커집니다. 로그를 백업하거나 단순 모델로 전환하세요.

여유 공간을 계속 확인하세요. 디스크가 가득 차면 데이터베이스가 완전히 멈춥니다. 정리 방법은 디스크와 파티션 문서를 참고하세요.