인프런 커뮤니티 질문&답변

주니엔유니님의 프로필 이미지

작성한 질문수

처음 시작하는 Infrastructure as Code: AWS & 테라폼

3강 - Terraform 기본

Terraform 코드 동기화

작성

·

48

·

수정됨

0

안녕하십니까? 강의 잘 듣고 있습니다.

초기 인프라 구성시 terraform 코드를 구성하고 apply하여 생성이 되었습니다. 이후 자원에 대한 추가.삭제를 terraform코드를 통해서 하지 않고, 클라우드 콘솔에서 직접 작업하여 현재 테라폼코드와 일치하지 않고 있는 상태입니다. 인프라 규모는 대규모가 아니고 소규모로 운영되고 있는 상태입니다.

최초에 apply하신 분이 로컬에 별도 경로에 state파일은 생성하신것 같습니다. 현재 클라우드 콘솔에 있는 정보와 현재 테라폼코드(수정을 해야겠죠)를 효과적을 맞출 수 있는 팁이 있으시다면 부탁드립니다^^(참고로, GCP환경입니다)

답변 2

0

송주영님의 프로필 이미지
송주영
지식공유자

console 로 만든 자원을 테라폼화 하는 것은 import 명령어를 이용해서 하는 방법밖에 없습니다.

일단 이름을 맞추어 import를 하고 config를 맞추어서 형성을 맞추는 것입니다.

이 방법은 안타깝지만 노가다일 수 밖에 없습니다.

검색해보시면 테라폼 import 하는 도구들이 있지만 그 또한 역시, 그 중간 부분을 도와줄뿐입니다~

terraform state list 같은 명령어등을 통해서, 수동으로 열심히 맞추어야 합니다~

0

안녕하세요, 인프런 AI 인턴입니다. 주니엔유니님 질문 감사드립니다.

테라폼 코드와 실제 클라우드 환경 간의 불일치를 해결하기 위한 몇 가지 접근 방법을 알려드리겠습니다. 이 문제는 기본적으로 테라폼의 상태 파일과 코드가 클라우드 리소스와 동기화되지 않은 상황입니다. 주로 GCP 환경에서 작업하고 계시므로 GCP 환경에 맞춘 조언을 드리겠습니다.

  1. 클라우드 리소스 변경 내용 식별: 먼저, GCP 콘솔에서 현재 인프라 리소스의 상태를 확인하세요. 변경된 부분, 즉 콘솔에서 직접 추가, 삭제, 수정된 리소스를 인지하는 것이 필요합니다.

  2. 테라폼 코드 수정: 현재 상태에 맞춰 테라폼 코드를 수정합니다. 코드의 리소스 블록이 현재 GCP 리소스를 정확히 반영하도록 업데이트하세요.

  3. 테라폼 상태 파일 업데이트:

    • terraform import 명령어를 사용하여 콘솔에서 추가된 리소스를 테라폼의 상태 파일로 가져올 수 있습니다. 이 명령어는 리소스의 현재 상태를 테라폼 상태 파일에 추가하여 동기화를 돕습니다.
    • 명령어 예: terraform import google_compute_instance.vm_instance my-instance-name
  4. 검증: terraform plan 명령어를 실행하여 테라폼 코드와 상태 파일이 GCP의 실제 리소스와 일치하는지 검증합니다. 이 명령어는 현재 상태와 코드 간의 차이점을 제시합니다. 발견된 불일치가 예상된 변경 사항인지를 주의 깊게 검토하세요.

  5. 관리 절차 확립: 앞으로 코드와 콘솔을 혼용하여 리소스를 관리하지 않도록, 테라폼 코드만을 통한 인프라 관리를 지향하는 절차를 마련하는 것이 중요합니다. 이렇게 하면 상태 불일치 문제를 피할 수 있습니다.

이러한 단계로 진행하시면서 많은 도움이 되길 바랍니다. 아래의 관련 내용을 다룬 질문과 답변들도 참고하시면 더욱 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.