작성
·
616
0
안녕하세요.
IAM terraform.tf 파일을 옮기는 작업 중에 발생한 오류에 대해서 질문드립니다.
다음과 같은 오류가 발생했습니다.
--------------------------------------------------------------------------------------------------
Error: Error locking destination state: Error acquiring the state lock: 2 errors occurred:
* ResourceNotFoundException: Requested resource not found
* ResourceNotFoundException: Requested resource not found
Terraform acquires a state lock to protect the state from being written
by multiple users at the same time. Please resolve the issue above and try
again. For most commands, you can disable locking with the "-lock=false"
flag, but this is not recommended.
--------------------------------------------------------------------------------------------------
구글링을 했었는데,
1. 이 오류는 일반적으로 하나의 프로세스가 실행되지 않거나, 네트워크 연결이 중단되거나 프로세스가 완료되기 전에 종료 된 경우라고 합니다.
그래서 backend.tf 파일을 삭제하고 plan 이후 다시 재생성 했는데 같은 에러가 발생합니다.
뭔가 제가 놓친 부분이 있거나, 잘 이해하지 못한 부분이 있는 것 같은데, 해결방안을 찾지 못해서 문의드립니다.
항상 좋은 강의 잘 시청하고 있습니다. 감사합니다.
답변 6
1
1
아~ backend.tf 파일을 만들고, iam 리소스를 생성하려고 하는 시점입니다!
backend.tf gildong_hong.tf provider.tf terraform.tfstate.backup devops_group.tf iam_role_hello.tf terraform.tfstate
파일이 생성되어 있습니다!
1
init.tf 생성 후에 s3 버킷까지 만들어진 것까지는 다 확인(콘솔에서)했습니다.
혹시 몰라서 init.tf 까지 같이 첨부드립니다.
$ init.tf
provider "aws" {
region = "ap-northeast-2"
version = "~> 2.49.0"
}
resource "aws_s3_bucket" "tfstate" {
bucket = "tf101-dalmatian-apne2-tfstate"
versioning {
enabled = true
}
}
resource "aws_dynamodb_table" "terraform_state_lock" {
name = "terraform_lock"
hash_key = "LockID"
billing_mode = "PAY_PER_REQUEST"
attribute {
name = "LockID"
type = "S"
}
}
-------------------------------------------------------------------------------------------------------------------------
$ backend.tf
terraform {
backend "s3" {
bucket = "tf101-dalmatian-apne2-tfstate"
key = "iam/terraform.tfstate"
region = "ap-northeast-2"
encrypt = true
dynamodb_table = "terraform-lock"
}
}
// 저는 terraform 밑에 iam이 있지 않고, 바로 홈 디렉토리에 iam이 존재합니다.
감사합니다.
0
backend.tf 의 dynamoDB 이름을 terraform-lock에서 terraform_lock 으로 변경해보시겠어요?
언더바와 대쉬가 혹시 잘못 들어간 건 아닐까 의심됩니다.
0
안녕하세요~
DevOps 엔지니어 송주영입니다.
에러 과정을 조금 더 상세하게 설명해주실 수 있을까요?
예를들면, 현재 어떤 작업을 하려고 하시는걸까요~?
terraform s3 backend 와 dynamodb 는 만들어진 상태이고,
iam 리소스를 생성하시려고 하는 시점인가요 아니면, 이미 코드와 리소스가 생성이 된 시점일까요?
어느 시점인지 알면, 디버깅하기 쉬울 것 같습니다~
불편하시지 않다면, 현재 ls 를 해서 만들어져있는 파일들이 어떻게 되어져있는지 알면 좋을 것 같습니다~
0
안녕하세요.
에러로 보았을 때는 dynamoDB 또는 S3 리소스가 없는 것으로 보여집니다.
backend.tf 파일에서 s3와 dynamodb를 설정하기 위해서는 아래 링크와 같이 init.tf 파일을 먼저 실행하여 backend 구성에 필요한 리소스를 먼저 생성해주셔야 합니다.
https://terraform101.inflearn.devopsart.dev/advanced/backend/#코드생성
혹시나 이전 과정에서 위 과정이 빠진 것은 아닌지 확인 부탁드립니다.
그래서 오류가 나는 경우에는 backend.tf 파일 설정을 그대로 첨부해주시면 저도 로컬에서 디버깅해보도록 하겠습니다!
감사합니다.
이권수 드림