개요
이 실습에서는 Terraform을 사용하여 Google Cloud 리소스를 만들고, 업데이트하고, 폐기합니다. 먼저 Google Cloud를 제공업체로 정의합니다.
그런 다음 네트워크를 언급하지 않고 VM 인스턴스를 만들어 Terraform이 구성 코드를 어떻게 파싱하는지 확인해 볼 것입니다. 그리고 코드를 수정하여 네트워크를 추가하고 Google Cloud에 VM 인스턴스를 만들게 됩니다.
VM 인스턴스를 업데이트하는 방법을 살펴보겠습니다. 기존 구성을 수정하여 태그를 추가한 다음 머신 유형을 수정할 것입니다. 그런 다음 terraform 명령어를 실행하여 생성된 리소스를 폐기합니다.
목표
이 실습에서는 다음 작업을 실행하는 방법을 알아봅니다.
- Terraform 설치 확인
- Google Cloud를 제공업체로 정의
- Terraform을 사용하여 Google Cloud 리소스 생성, 변경, 폐기
작업 1. Cloud 콘솔에 로그인합니다.
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
-
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다.
왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.
-
Google Cloud 콘솔 열기 버튼
- 남은 시간
- 이 실습에 사용해야 하는 임시 사용자 인증 정보
- 필요한 경우 실습 진행을 위한 기타 정보
-
Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).
실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.
팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.
참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
-
필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.
{{{user_0.username | "Username"}}}
실습 세부정보 패널에서도 사용자 이름을 확인할 수 있습니다.
-
다음을 클릭합니다.
-
아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.
{{{user_0.password | "Password"}}}
실습 세부정보 패널에서도 비밀번호를 확인할 수 있습니다.
-
다음을 클릭합니다.
중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요.
참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
-
이후에 표시되는 페이지를 클릭하여 넘깁니다.
- 이용약관에 동의합니다.
- 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
- 무료 체험판을 신청하지 않습니다.
잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.
참고: Google Cloud 제품 및 서비스 목록이 있는 메뉴를 보려면 왼쪽 상단의 탐색 메뉴를 클릭하거나 검색창에 제품 또는 서비스 이름을 입력합니다.
작업 2. Terraform 설치 확인
-
Google Cloud 메뉴에서 Cloud Shell 활성화(
)를 클릭합니다. 대화상자가 나타나면 계속을 클릭합니다.
-
메시지가 표시되면 '계속'을 클릭합니다.
-
다음 명령어를 실행하여 Terraform이 설치되었는지 확인합니다.
참고: Terraform 버전이 최신 버전이 아니라는 경고가 표시되더라도 걱정하지 마세요. 이 실습 안내는 Terraform v1.0.5 이상의 버전에서 작동됩니다.
terraform --version
참고: Terraform 웹사이트에서 최신 버전의 Terraform을 다운로드할 수 있습니다. Terraform은 지원되는 모든 플랫폼 및 아키텍처에서 바이너리 패키지로 배포되며 Cloud Shell은 Linux 64비트를 사용합니다.
출력은 다음과 같습니다(출력 예시이므로 복사하지 마세요).
Terraform v1.5.7
Terraform은 Cloud Shell에 사전 설치된 상태로 제공됩니다. Terraform이 이미 설치되어 있으면 바로 인프라를 만들 수 있습니다.
작업 3. Google Cloud 제공업체 추가
-
main.tf 파일을 만듭니다.
touch main.tf
-
Cloud Shell 툴바에서 편집기 열기를 클릭합니다. 새 창에서 열기를 클릭하여 편집기를 별도의 탭에 열어 둡니다.
-
다음 코드를 main.tf 파일에 복사합니다.
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
project = "{{{project_0.project_id | Project ID}}}"
region = "{{{project_0.default_region | Region}}}"
zone = "{{{project_0.default_zone | Zone}}}"
}
-
파일 > 저장을 클릭합니다.
- Cloud Shell로 전환하고
terraform init 명령어를 실행합니다.
terraform init
출력은 다음과 같아야 합니다(출력 예시이므로 복사하지 마세요).
Initializing the backend...
Initializing provider plugins...
- Finding hashicorp/google versions matching "4.15.0"...
- Installing hashicorp/google v4.15.0...
- Installed hashicorp/google v4.15.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
작업 4. 인프라 빌드
네트워크 파라미터를 지정하지 않고 컴퓨팅 인스턴스를 만들어 보고 Terraform이 이러한 구성을 어떻게 처리하는지 살펴보겠습니다.
- 편집기 창으로 전환합니다.
main.tf 파일 내에 다음 코드 블록을 입력합니다.
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
}
-
파일 > 저장을 클릭하여 main.tf 파일을 저장합니다.
-
이제 다음 명령어를 실행하여 Compute Engine이 생성되는지 미리 봅니다.
terraform plan
- 다음 오류와 함께 구성이 실패합니다. 네트워크 없이 Compute Engine을 구성할 수 없기 때문입니다.
│ Error: Insufficient network_interface blocks
│
│ on main.tf line 15, in resource "google_compute_instance" "terraform":
│ 15: resource "google_compute_instance" "terraform" {
│
│ At least 1 "network_interface" blocks are required.
- 이제
google_compute_instance 블록에 다음 코드 세그먼트를 포함하여 네트워크를 추가합니다.
network_interface {
network = "default"
access_config {
}
}
main.tf 파일의 최종 코드는 다음과 같습니다.
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
project = "{{{project_0.project_id | Project ID}}}"
region = "{{{project_0.default_region | Region}}}"
zone = "{{{project_0.default_zone | Zone}}}"
}
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
}
-
파일 > 저장을 클릭하여 main.tf 파일을 저장합니다.
- 이제
terraform plan 명령어를 실행하여 Compute Engine이 생성되는지 미리 봅니다.
terraform plan
메시지가 표시되면 승인을 클릭합니다.
출력은 다음과 같아야 합니다(출력 예시이므로 복사하지 마세요).
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_compute_instance.terraform will be created
+ resource "google_compute_instance" "terraform" {
+ can_ip_forward = false
+ cpu_platform = (known after apply)
+ current_status = (known after apply)
+ deletion_protection = false
...
Plan: 1 to add, 0 to change, 0 to destroy.
- 다음 명령어를 실행하여 원하는 변경사항을 적용합니다.
terraform apply
-
yes를 입력하여 계획된 작업을 확인합니다.
출력은 다음과 같아야 합니다(출력 예시이므로 복사하지 마세요).
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
참고: 오류가 발생하면 이전 단계를 다시 실행하여 main.tf 파일에 올바른 코드가 입력되었는지 확인하세요.
내 진행 상황 확인하기를 클릭하여 생성된 Compute Engine을 확인합니다.
인프라 빌드
Cloud 콘솔에서 확인
Google Cloud 콘솔에서 리소스가 생성되었는지 확인합니다.
-
Google Cloud 콘솔의 탐색 메뉴(
)에서 Compute Engine > VM 인스턴스를 클릭합니다.
-
생성된 terraform 인스턴스를 확인합니다.

작업 5. 인프라 변경
이 작업에서는 인프라에 대해 2가지 유형의 변경을 수행합니다.
컴퓨팅 리소스에 태그 추가
Terraform은 리소스를 생성하는 것 외에도 해당 리소스를 변경할 수도 있습니다.
- 다음과 같이 표시되도록
tags 인수를 방금 만든 인스턴스에 추가합니다.
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
tags = ["web", "dev"]
# ...
}
-
terraform plan을 실행합니다.
terraform plan
-
terraform apply를 실행하여 인스턴스를 업데이트합니다.
terraform apply
출력은 다음과 같아야 합니다(출력 예시이므로 복사하지 마세요).
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
# google_compute_instance.terraform will be updated in-place
~ resource "google_compute_instance" "terraform" {
id = "projects/qwiklabs-gcp-00-da04aeabe9ab/zones/us-central1-c/instances/terraform"
name = "terraform"
~ tags = [
+ "dev",
+ "web",
]
# (17 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
Plan: 0 to add, 1 to change, 0 to destroy.
프리픽스 ~는 Terraform이 리소스를 인플레이스 업데이트한다는 의미입니다.
- 메시지가 표시되면
yes라고 응답합니다. 그러면 Terraform이 인스턴스에 태그를 추가합니다.
내 진행 상황 확인하기를 클릭하여 태그가 추가되었는지 확인합니다.
컴퓨팅 리소스에 태그 추가
VM을 중지하지 않고 머신 유형 수정
실행 중인 VM에서는 VM의 머신 유형을 변경할 수 없습니다. 실행 중인 VM의 머신 유형 변경을 Terraform이 어떻게 처리하는지 살펴보겠습니다.
-
main.tf로 이동하여 terraform 인스턴스의 machine_type 인수를
e2-micro에서 e2-medium으로 수정하여 다음과 같이 만듭니다.
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-medium"
tags = ["web", "dev"]
# ...
}
-
terraform plan을 실행합니다.
terraform plan
- 다시
terraform apply를 실행하여 인스턴스를 업데이트합니다.
terraform apply
아래와 같이 경고와 함께 terraform apply가 실패합니다. (출력 예시이므로 복사하지 마세요.)
╷
│ Error: Changing the machine_type, min_cpu_platform, service_account, enable_display, shielded_instance_config, scheduling.node_affinities or network_interface.[#d].(network/subnetwork/subnetwork_project) or advanced_machine_features on a started instance requires stopping it. To acknowledge this, please set allow_stopping_for_update = true in your config. You can also stop it by setting desired_status = "TERMINATED", but the instance will not be restarted after the update.
│
│ with google_compute_instance.terraform,
│ on main.tf line 31, in resource "google_compute_instance" "terraform":
│ 31: resource "google_compute_instance" "terraform" {
- 실행 중인 VM의 머신 유형은 변경할 수 없습니다. VM이
machine_type를 업데이트하기 전에 중지되도록 하려면 allow_stopping_for_update argument를 true로 설정하여 코드가 다음과 같이 표시되도록 합니다.
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-medium"
tags = ["web", "dev"]
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
allow_stopping_for_update = true
}
-
terraform plan을 실행합니다.
terraform plan
- 다시
terraform apply를 실행하여 인스턴스를 업데이트합니다.
terraform apply
-
메시지가 표시되면 yes라고 응답합니다.
-
Cloud 콘솔에서 VM 인스턴스로 이동하고 생성된 terraform 인스턴스를 클릭하여 machine-type의 변경사항과 추가된 태그를 확인합니다.

내 진행 상황 확인하기를 클릭하여 Compute Engine Terraform 머신 유형이 e2-medium인지 확인합니다.
machine-type의 인프라 변경
작업 6. 인프라 폐기
이제까지 인프라를 빌드하고 변경하는 방법을 살펴보았습니다. 여러 리소스를 생성하고 리소스 종속 항목을 표시하는 방법으로 넘어가기 전에 Terraform 관리형 인프라를 완전히 폐기하는 방법을 알아보겠습니다.
- 다음 명령어를 실행합니다.
yes라고 응답하여 이 계획을 실행하고 인프라를 폐기합니다.
terraform destroy
프리픽스 -은 인스턴스와 네트워크가 폐기될 것임을 나타냅니다.
- Cloud 콘솔의 VM 인스턴스로 이동하여 인스턴스 terraform이 더 이상 존재하지 않는지 확인합니다.
내 진행 상황 확인하기를 클릭하여 인프라가 폐기되었는지 확인합니다.
인프라 폐기
수고하셨습니다.
이 실습에서는 다음을 수행하는 방법을 배웠습니다.
- Terraform 설치 확인
- Google Cloud를 제공업체로 정의
- Terraform을 사용하여 Google Cloud 리소스 생성, 변경, 폐기
실습 종료하기
실습을 완료하면 실습 종료를 클릭합니다. Google Skills에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
- 별표 1개 = 매우 불만족
- 별표 2개 = 불만족
- 별표 3개 = 중간
- 별표 4개 = 만족
- 별표 5개 = 매우 만족
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2026 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.