• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

질문있습니다.

20.10.19 00:03 작성 조회수 323

1

똑같이 실습중에

s3가 생성된 것을 확인 후 

s3.tf 랑 .terraform 폴더 , terraform.tfstate
파일을 지우고 init을 한다음에

plan  , apply 를 동일하게 따라했지만
--------------------------------------------------

aws_s3_bucket.test: Creating...

aws_s3_bucket.test: Creation complete after 1s [id=terraform-test-repo]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

----------------------------------------------------
import 하기전에 다시 생성이 되었는데... 이건 설정을 잘못한건가요...?



답변 2

·

답변을 작성해보세요.

4

안녕하세요

말씀해주신 내용으로는 전부 삭제가 되어야 맞습니다. 설명해주신대로라면 provider.tf 파일만 남아있어야 하고, s3 리소스에 대한 코드가 없기 때문에 생성이 되면 안되는 것이 정상입니다.

혹시나 s3.tf, .terraform 폴더, terraform.tfstate 파일을 생성하시고 삭제하는 과정에서, 해당 디렉토리에 s3 리소스와 관련된 코드가 남아있지는 않았는지 확인 부탁드립니다. (즉, provider.tf 파일을 제외하고 모든 파일을 삭제하신 상태에서, plan을 쳤을 때 아무것도 나오면 안됩니다.)

---------------------------------------------------------------------------------------------------

영상을 기준파일/폴더에 대한 설명은 아래와 같습니다.

1. s3.tf : 실제 s3 리소스에 대한 설정을 담고 있는 파일입니다. 이 코드가 없으면 테라폼은 s3를 생성하지 않습니다.

2.  terraform.tfstate : 테라폼 작업으로 생성된 형상의 결과를 저장한 코드입니다. 이는 협업을 할 때 자신이 반영한 코드를 다른 사람이 함께 동기화하기 위해서 필요합니다. 본 영상에서 tfstate가 로컬에 남는 이유는 backend를 따로 지정하지 않았기 때문입니다.

3. .terraform : 로컬에서 반영한 테라폼 형상에 대한 설정 파일합니다. 즉, 다른 사람이 작업하여 반영한 실제 형상은 여기에 저장되지 않았을 수도 있습니다. 따라서 이미 생성된 .terraform 폴더를 삭제하시게 되면, 로컬 입장에서는 반영한 테라폼 코드가 하나도 없기 때문에 (실제로는 이미 생성을 했을지라도) 새로운 리소스인 것마냥 새로 생성하게 됩니다. (물론 실제 apply를 치면 이미 있는 리소스이므로 에러가 날 가능성이 높습니다.)

4. provider.tf : 어떤 프로바이더에 리소스를 생성할지 정의하는 파일입니다. Provider를 명시하지 않으면, 테라폼 입장에서 어떤 곳에 리소스를 만들지 알 수 없기 때문에 반드시 필요한 파일입니다.

0

감사합니다 ㅎㅎ