Compute Engine에서 SQL Server 데이터베이스 만들기
실습
1시간
universal_currency_alt
크레딧 5개
show_chart
중급
info
이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
이 콘텐츠는 아직 휴대기기에 최적화되지 않음
최상의 경험을 위해 데스크톱 컴퓨터에서 이메일로 전송된 링크를 사용하여 방문하세요.
개요
이 실습에서는 비공개 네트워크에서 SQL Server 데이터베이스 서버를 프로비저닝합니다. 그런 다음 해당 서버를 관리하는 데 사용할 수 있는 Windows 머신을 공용 네트워크에 만듭니다. 또한 데이터베이스에 연결하는 데 사용할 수 있는 Linux 클라이언트를 공용 네트워크에 만듭니다. 마지막으로 비공개 네트워크에서만 SQL Server 데이터베이스에 액세스할 수 있도록 허용하는 방화벽 규칙을 설정합니다.
목표
이 실습에서는 다음 작업을 수행하는 방법을 알아봅니다.
- 클라이언트 및 서버 VM 만들기
- 데이터베이스 서버 관리
- 클라이언트에서 데이터베이스에 연결
설정 및 요건
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
-
시크릿 창을 사용하여 Google Skills에 로그인합니다.
-
실습 사용 가능 시간(예: 1:15:00)을 참고하여 해당 시간 내에 완료합니다.
일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.
-
준비가 되면 실습 시작을 클릭합니다.
-
실습 사용자 인증 정보(사용자 이름 및 비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.
-
Google Console 열기를 클릭합니다.
-
다른 계정 사용을 클릭한 다음, 안내 메시지에 이 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.
-
약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
작업 1. 클라이언트 및 서버 VM 만들기
-
새 웹브라우저 창을 열고 Google Cloud 콘솔(console.cloud.google.com)로 이동합니다.
-
프로젝트 선택기를 사용하여 이름이 'qwiklabs-gcp'로 시작하는 첫 번째 프로젝트를 선택합니다.
-
탐색 메뉴(
)에서 Cloud 개요를 클릭합니다.
-
프로젝트 정보 섹션에서 프로젝트 ID를 찾아 복사하여 텍스트 파일에 붙여넣습니다. (이 파일은 나중에 필요합니다.)

- 콘솔의 오른쪽 상단에 있는 Cloud Shell 활성화(
) 아이콘을 클릭합니다.
Cloud Shell 터미널이 브라우저 창 하단에 있는 창에서 열립니다.
- 지난 실습의 완성된 버전이 포함된 GitHub 저장소를 클론하려면 다음 명령어를 입력합니다.
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
- 다음 폴더로 변경합니다.
cd ~/training-data-analyst/courses/db-migration/terraform-sql-server-on-gce/
-
ls를 입력하면 이 폴더에 지난 실습에서 완료한 Terraform 파일이 표시됩니다.
-
편집기 열기를 클릭하고 메시지가 표시되면 새 창에서 열기를 클릭합니다.
-
training-data-analyst/courses/db-migration/terraform-sql-server-on-gce/ 폴더로 이동하여 terraform.tfvars 파일을 엽니다.
-
project_id 변수를 프로젝트 ID와 일치하도록 변경합니다.
-
리전을 으로, 영역을 으로 변경합니다.
-
비공개 네트워크에 SQL Server 머신을 만듭니다. vm-sql-server-windows.tf라는 파일을 추가하고 다음 Terraform 코드를 붙여넣습니다.
# Create Windows SQL Server in Private VPC
resource "google_compute_instance" "sql-server-windows" {
name = "sql-server-windows-${random_id.instance_id.hex}"
machine_type = "e2-standard-2"
zone = var.gcp_zone_1
tags = ["allow-rdp", "allow-sql"]
boot_disk {
initialize_params {
image = "windows-sql-cloud/sql-2017-express-windows-2016-dc-v20200414"
}
}
network_interface {
network = google_compute_network.private-vpc.name
subnetwork = google_compute_subnetwork.private-subnet_1.name
# access_config { } - Remove access_config for no External IP
}
}
output "sql-server-windows" {
value = google_compute_instance.sql-server-windows.name
}
output "sql-server-windows-external-ip" {
value = "NONE"
}
output "tsql-server-windows-internal-ip" {
value = google_compute_instance.sql-server-windows.network_interface.0.network_ip
}
- SQL Server를 관리하는 데 사용할 수 있는 Windows 머신을 공용 네트워크에 만듭니다. vm-windows-admin.tf라는 파일을 추가하고, 다음 Terraform 코드를 붙여넣습니다.
# Create VM Windows Admin
resource "google_compute_instance" "windows-admin" {
name = "windows-admin-${random_id.instance_id.hex}"
machine_type = "e2-standard-2"
zone = var.gcp_zone_1
tags = ["allow-rdp"]
boot_disk {
initialize_params {
image = "windows-cloud/windows-server-2016-dc-v20200424"
}
}
network_interface {
network = google_compute_network.public-vpc.name
subnetwork = google_compute_subnetwork.public-subnet_1.name
access_config { }
}
}
output "windows-admin-name" {
value = google_compute_instance.windows-admin.name
}
output "windows-admin-external-ip" {
value = google_compute_instance.windows-admin.network_interface.0.access_config.0.nat_ip
}
output "windows-admin-internal-ip" {
value = google_compute_instance.windows-admin.network_interface.0.network_ip
}
참고: 이 서버는 공용 네트워크에 있으므로 RDP를 통해 연결할 수 있습니다. 그런 다음 비공개 네트워크의 SQL Server에 RDP를 연결하여 관리합니다.
- SQL Server에 연결하는 데 사용할 수 있는 Linux 클라이언트인 머신을 하나 더 만듭니다. vm-sql-client.tf라는 다른 파일을 추가한 후, 다음 Terraform 코드를 추가합니다.
# Create VM SQL Client
resource "google_compute_instance" "sql-client" {
name = "sql-client-${random_id.instance_id.hex}"
machine_type = "e2-micro"
zone = var.gcp_zone_1
tags = ["allow-ssh"]
boot_disk {
initialize_params {
image = "ubuntu-os-cloud/ubuntu-1604-xenial-v20200429"
}
}
metadata_startup_script = "sudo apt-get update;"
network_interface {
network = google_compute_network.public-vpc.name
subnetwork = google_compute_subnetwork.public-subnet_1.name
access_config { }
}
}
output "sql-client-name" {
value = google_compute_instance.sql-client.name
}
output "sql-client-external-ip" {
value = google_compute_instance.sql-client.network_interface.0.access_config.0.nat_ip
}
output "sql-client-internal-ip" {
value = google_compute_instance.sql-client.network_interface.0.network_ip
}
참고: SQL Server 클라이언트 소프트웨어를 설치하고 SQL Server 데이터베이스에 대한 연결을 테스트하는 데 사용하는 Ubuntu Linux 머신입니다.
- 비공개 네트워크에서 SQL Server로의 통신을 허용하는 방화벽 규칙을 만듭니다. vpc-firewall-rules-private.tf 파일을 열고 다음 방화벽 규칙을 끝에 추가합니다.
# allow SQL only from public subnet
resource "google_compute_firewall" "private-allow-sql" {
name = "${google_compute_network.private-vpc.name}-allow-sql"
network = google_compute_network.private-vpc.name
allow {
protocol = "tcp"
ports = ["1433"]
}
source_ranges = [
"${var.subnet_cidr_public}"
]
target_tags = ["allow-sql"]
}
- Terraform을 초기화하고 계획을 만들려면 Cloud Shell 터미널로 돌아가서 다음 명령어를 입력합니다.
terraform init
terraform plan
- 리소스를 만들려면 다음 명령어를 실행합니다.
terraform apply -auto-approve
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
클라이언트 및 서버 VM 만들기
작업 2. 데이터베이스 서버 관리
-
Terraform 프로세스가 완료되면 탐색 메뉴(
)에서 Compute Engine을 클릭합니다.
-
여러 머신이 나열되어 있으며 사용자 이름과 비밀번호를 추적해야 합니다. 이를 위해 컴퓨터에서 텍스트 편집기를 열고 다음 템플릿을 붙여넣습니다.
Windows Admin RDP Login
Username:
Password:
SQL Server RDP Login
Internal IP:
Username:
Password:
SQL Server User
Username:
Password:
-
windows-admin- 머신을 찾고 RDP 버튼의 드롭다운 화살표를 클릭한 다음 Windows 비밀번호 설정을 선택합니다.
-
사용자 이름을 원하는 이름으로 변경하고 설정을 클릭하여 비밀번호를 생성합니다.
-
비밀번호를 클립보드에 복사한 다음, 생성한 텍스트 파일에 사용자 이름과 비밀번호를 기록합니다.
-
마찬가지로 sql-server-windows-라는 이름의 머신에 대한 사용자 이름과 비밀번호를 생성합니다. 텍스트 파일에 사용자 이름과 비밀번호를 기록하는 것을 잊지 마세요. 또한 SQL Server 머신의 내부 IP 주소를 찾아 텍스트 파일에 기록합니다.
-
RDP를 사용하여 Windows 관리 머신에 로그인합니다.
-
Windows Start(시작) 메뉴에서 Remote Desktop(원격 데스크톱) 바로가기를 선택합니다. 서버 관리자 대시보드를 닫아도 됩니다.
-
SQL Server의 내부 IP 주소를 입력하고 Connect(연결)를 클릭합니다. 그런 다음 기록해 둔 사용자 이름과 비밀번호로 로그인합니다.
Yes(예)를 클릭하면 SQL Server 머신에 로그인됩니다. 이 머신에서 서버 관리자 대시보드를 닫아도 됩니다.
- SQL Server 사용자 로그인을 만들려면 Start(시작) 메뉴를 클릭하고 ssms를 입력한 다음 Microsoft SQL Server Management Studio의 바로가기를 선택합니다.
Management Studio가 시작되면 로컬 서버 이름이 이미 채워져 있어야 합니다.
-
Connect(연결)를 클릭하여 로그인합니다.
-
객체 탐색기에서 상단의 Server(서버)를 마우스 오른쪽 버튼으로 클릭하고 Properties(속성)를 선택합니다.
-
Security(보안) 탭을 클릭한 다음 SQL Server and Windows authentication mode(SQL Server 및 Windows 인증 모드)를 선택합니다.
-
OK(확인)를 클릭하고 메시지를 읽은 다음, OK(확인)를 클릭하여 메시지를 닫습니다.
-
SQL Server를 다시 시작하려면 객체 탐색기에서 다시 마우스 오른쪽 버튼으로 클릭하고 Restart(다시 시작)를 선택합니다. 프롬프트가 표시되면 동의한 다음, 서버가 다시 시작될 때까지 몇 초간 기다립니다. 다시 시작되었는지 확인하려면 Refresh(새로고침) 버튼을 클릭해야 할 수 있습니다.
-
Object Explorer(객체 탐색기)에서 Security(보안)와 Logins를 더블클릭하여 확장합니다.
-
Logins(로그인)를 마우스 오른쪽 버튼으로 클릭하고 New Login(새 로그인)을 선택합니다.
-
Login-name(로그인 이름) 텍스트 상자에 사용자 이름을 지정합니다.
-
SQL Server authentication(SQL Server 인증)을 선택합니다.
- 비밀번호를 설정하고 Enforce password policy(비밀번호 정책 시행)를 해제합니다.
-
OK(확인)를 클릭하여 로그인을 만듭니다.
-
방금 만든 SQL Server 사용자의 사용자 이름과 비밀번호를 텍스트 파일에 기록합니다.
-
SQL Server 머신에 대한 원격 데스크톱 세션과 Windows 관리 머신에 대한 RDP 연결을 닫습니다.
작업 3. 클라이언트에서 데이터베이스에 연결
-
Google Cloud 콘솔과 Compute Engine 서비스로 돌아갑니다.
-
sql-client- 머신 옆의 SSH를 클릭합니다.
-
이 머신에 SQL Server 클라이언트 소프트웨어를 설치하고 방금 만든 로그인을 테스트합니다. SSH 연결이 설정되면 다음 명령어를 입력합니다.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev
참고: 프롬프트가 표시될 때마다 예를 선택합니다.
- SQL 클라이언트가 경로에 포함되도록 다음 명령어를 입력합니다.
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
클라이언트에서 데이터베이스에 연결
- 머신의 IP 주소와 생성한 SQL Server 사용자 이름을 사용하여 다음 명령어를 입력하고 메시지가 표시되면 비밀번호를 입력합니다.
sqlcmd -S 10.2.2.3,1433 -U username
오류가 발생하지 않으면 클라이언트 로그인에 성공한 것입니다. 이 시점에는 데이터베이스가 없으므로 다른 작업을 수행할 필요가 없지만 완전한 솔루션이 마련되어 있습니다. 데이터베이스 서버는 공개 액세스가 차단된 보안 네트워크에 있습니다. 데이터베이스를 관리하는 데 사용할 수 있는 Windows 머신이 공용 네트워크에 있고, SQL Server 포트를 통해 데이터베이스에 액세스할 수 있는 클라이언트 머신이 있습니다.
-
quit를 입력하여 sqlcmd를 종료한 다음 SSH 세션을 닫습니다.
-
Cloud Shell 터미널로 돌아가서 다음 명령어를 입력하여 실습 초반에 만든 모든 항목을 삭제합니다.
terraform destroy -auto-approve
수고하셨습니다. 이 실습에서는 비공개 네트워크에 SQL Server 머신을 프로비저닝했습니다. 그런 다음 데이터베이스 서버를 관리하는 데 사용된 Windows 머신을 공용 네트워크에 만들었습니다. 또한 데이터베이스에 연결하는 데 사용된 Linux 클라이언트를 공용 네트워크에 만들었습니다. 마지막으로 비공개 네트워크에서만 SQL Server 데이터베이스에 액세스할 수 있도록 허용하는 방화벽 규칙을 설정합니다.
실습 종료하기
실습을 완료하면 실습 종료를 클릭합니다. Google Skills에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
- 별표 1개 = 매우 불만족
- 별표 2개 = 불만족
- 별표 3개 = 중간
- 별표 4개 = 만족
- 별표 5개 = 매우 만족
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2026 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.