개요
이 실습에서는 로컬 백엔드를 만든 다음 Cloud Storage 버킷을 만들어 상태를 원격 백엔드로 마이그레이션해 봅니다.
목표
이 실습에서는 다음 작업을 수행하는 방법을 알아봅니다.
- 로컬 백엔드 만들기
- Cloud Storage 백엔드 만들기
- Terraform 상태 새로고침하기
작업 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 --version
작업 3. 로컬 백엔드 추가
이 섹션에서는 로컬 백엔드를 구성한 다음 Cloud Storage 버킷으로 이동해 봅니다.
- 새 Cloud Shell 창에서
main.tf 구성 파일을 만듭니다.
touch main.tf
- 프로젝트 ID를 검색하려면 다음 명령어를 실행합니다.
gcloud config list --format 'value(core.project)'
- Cloud Shell 툴바에서 편집기 열기를 클릭합니다. Cloud Shell과 코드 편집기 사이를 전환하려면 필요에 따라 편집기 열기 또는 터미널 열기를 클릭합니다.
- 다음 Cloud Storage 버킷 리소스 코드를
main.tf 구성 파일에 복사합니다.
provider "google" {
project = "{{{project_0.project_id|Project ID}}}"
region = "{{{project_0.default_region|Region}}}"
}
resource "google_storage_bucket" "test-bucket-for-state" {
name = "{{{project_0.project_id|Project ID}}}"
location = "US" # Replace with EU for Europe region
uniform_bucket_level_access = true
}
- 로컬 백엔드를
main.tf 파일에 추가합니다.
terraform {
backend "local" {
path = "terraform/state/terraform.tfstate"
}
}
그러면 terraform/state 디렉터리에 있는 terraform.tfstate 파일을 참조하게 됩니다.
main.tf의 최종 코드는 아래와 같습니다.
provider "google" {
project = "{{{project_0.project_id|Project ID}}}"
region = "{{{project_0.default_region|Region}}}"
}
resource "google_storage_bucket" "test-bucket-for-state" {
name = "{{{project_0.project_id|Project ID}}}"
location = "US" # Replace with EU for Europe region
uniform_bucket_level_access = true
}
terraform {
backend "local" {
path = "terraform/state/terraform.tfstate"
}
}
Terraform은 사용하기 전에 구성된 모든 백엔드를 초기화해야 합니다.
- Cloud Shell 툴바에서 터미널 열기를 클릭한 다음, 다음 명령어를 사용하여 Terraform을 초기화합니다.
terraform init
- 변경사항을 적용합니다. 프롬프트에 yes를 입력하여 확인합니다.
terraform apply
이제 Cloud Shell 편집기에 terraform/state 디렉터리에 있는 terraform.tfstate라는 상태 파일이 표시될 것입니다.
- 상태 파일을 확인합니다.
terraform show
google_storage_bucket.test-bucket-for-state 리소스가 표시될 것입니다.
내 진행 상황 확인하기를 클릭하여 로컬 백엔드가 생성되었는지 확인합니다.
로컬 백엔드 추가
작업 4. Cloud Storage 백엔드 추가
- 편집기에서
main.tf 파일로 다시 이동합니다. 이제 현재 로컬 백엔드를 gcs 백엔드로 대체할 것입니다.
- 기존 로컬 백엔드 구성을 변경하려면
main.tf 파일에서 로컬 백엔드 코드를 다음 구성으로 바꿉니다.
terraform {
backend "gcs" {
bucket = "{{{project_0.project_id|Project ID}}}"
prefix = "terraform/state"
}
}
main.tf의 최종 코드는 아래와 같습니다.
provider "google" {
project = "{{{project_0.project_id|Project ID}}}"
region = "{{{project_0.default_region|Region}}}"
}
resource "google_storage_bucket" "test-bucket-for-state" {
name = "{{{project_0.project_id|Project ID}}}"
location = "US" # Replace with EU for Europe region
uniform_bucket_level_access = true
}
terraform {
backend "gcs" {
bucket = "{{{project_0.project_id|Project ID}}}"
prefix = "terraform/state"
}
}
- 백엔드를 다시 초기화합니다. 프롬프트에 yes를 입력하여 확인합니다.
terraform init -migrate-state
- Google Cloud 콘솔의 탐색 메뉴에서 Cloud Storage를 클릭한 다음 버킷을 클릭합니다.
- 버킷을 클릭하고
terraform/state/default.tfstate 파일로 이동합니다.
이제 상태 파일이 Cloud Storage 버킷에 있게 되었습니다.

내 진행 상황 확인하기를 클릭하여 원격 백엔드가 생성되었는지 확인합니다.
Cloud Storage 백엔드 추가
작업 5. 상태 새로고침
terraform refresh 명령어는 (상태 파일을 통해) Terraform이 알고 있는 상태를 실제 인프라에 맞게 조정하는 데 사용됩니다. 이를 통해 마지막으로 알려진 상태로부터 드리프트를 감지하고 상태 파일을 업데이트할 수 있습니다.
이렇게 하면 인프라는 수정되지 않지만, 상태 파일은 수정됩니다. 상태가 변경되면 다음 계획 또는 적용 시 변경사항이 발생할 수 있습니다.
- Cloud 콘솔의 스토리지 버킷으로 돌아갑니다. 이름 옆의 체크박스를 선택하고 상단의 라벨 버튼을 클릭합니다. 라벨 탭이 있는 정보 패널이 열립니다.
-
+라벨 추가를 클릭합니다. Key2 =
key and Value2 = value로 설정합니다.
-
저장을 클릭합니다.
- Cloud Shell로 돌아가서 다음 명령어를 사용하여 상태 파일을 업데이트합니다.
terraform refresh
내 진행 상황 확인하기를 클릭하여 Terraform이 새로고침되었는지 확인합니다.
상태 새로고침
작업 6. 작업공간 정리
- 먼저, 스토리지 버킷을 삭제할 수 있도록 백엔드를
local로 되돌립니다. 다음을 복사하여 gcs 구성을 대체합니다.
terraform {
backend "local" {
path = "terraform/state/terraform.tfstate"
}
}
-
local 백엔드를 다시 초기화합니다. 프롬프트에 yes를 입력하여 확인합니다.
terraform init -migrate-state
-
main.tf 파일에서 google_storage_bucket 리소스에 force_destroy = true 인수를 추가합니다. 버킷을 삭제할 때 이 불리언 옵션은 포함된 모든 객체를 삭제합니다.
참고: 객체가 포함된 버킷을 삭제하려고 시도하면 Terraform은 실행에 실패합니다.
현재 리소스 구성은 다음과 비슷할 것입니다.
resource "google_storage_bucket" "test-bucket-for-state" {
name = "{{{project_0.project_id|Project ID}}}"
location = "US" # Replace with EU for Europe region
uniform_bucket_level_access = true
force_destroy = true
}
- 변경사항을 적용합니다. 프롬프트에 yes를 입력하여 확인합니다.
terraform apply
- 이제 성공적으로 인프라를 폐기할 수 있습니다. 프롬프트에 yes를 입력하여 확인합니다.
terraform destroy
내 진행 상황 확인하기를 클릭하여 백엔드가 삭제되었는지 확인합니다.
작업공간 정리
수고하셨습니다.
이 실습에서는 Terraform으로 백엔드 및 상태를 관리하는 방법을 배웠습니다. 상태 파일을 관리하기 위해 로컬 및 Cloud Storage 백엔드를 만들고 상태를 새로고침했습니다.
이 실습에서는 다음 작업을 수행하는 방법을 배웠습니다.
- 로컬 백엔드 만들기
- Cloud Storage 백엔드 만들기
- Terraform 상태 새로고침하기
실습 종료하기
실습을 완료하면 실습 종료를 클릭합니다. Google Skills에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
- 별표 1개 = 매우 불만족
- 별표 2개 = 불만족
- 별표 3개 = 중간
- 별표 4개 = 만족
- 별표 5개 = 매우 만족
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2026 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.