Introduction

Providers

  1. 해당 링크arrow-up-right에서 Terraform Provider 목록 확인

  2. 해당 링크arrow-up-right에서 AWS Provider 설정 확인

  3. Terraform 코드를 저장할 디렉토리 생성

    mkdir terraform && cd terraform
  4. Terraform 코드를 작성할 파일 생성

    touch main.tf
  5. 아래의 코드 블록을 추가하고 저장

    terraform {
      required_providers {
        aws = {
          source = "hashicorp/aws"
          version = "5.45.0"
        }
      }
    }
  6. Provider 다운로드

    terraform init
  7. 생성된 디렉토리 및 파일 확인

    find .
  8. Dependency Lock 파일 확인

    cat .terraform.lock.hcl
  9. Dependency Lock 파일 복제본 생성

    cp .terraform.lock.hcl .terraform.lock.hcl.copy
  10. 다수의 개발자가 다양한 플랫폼에서 협업한다고 가정하고 Dependency Lock 파일 업데이트

    terraform providers lock \
    --platform=linux_arm64 \
    --platform=linux_amd64 \
    --platform=darwin_amd64 \
    --platform=windows_amd64
  11. Dependency Lock 파일의 변경사항 확인

    diff .terraform.lock.hcl.copy .terraform.lock.hcl -y
  12. 복사한 Dependency Lock 파일 삭제

    rm .terraform.lock.hcl.copy
  13. 해당 링크arrow-up-right를 통해서 Terraform 코드에 사용되는 .gitignore 파일 확인

리소스 생성

  1. 해당 링크arrow-up-right를 통해서 EC2 인스턴스 생성에 사용되는 코드 블록 확인

  2. Terraform 코드에 아래의 코드블록을 추가하고 저장

  3. 인프라 변경 사항 확인

  4. 위의 링크를 통해서 EC2 인스턴스 생성시 요구되는 변수 확인

  5. 위에서 추가한 코드 블록을 아래와 같이 수정하고 저장

  6. 인프라 변경 사항 확인

  7. 인프라 변경 사항 반영

  8. 해당 링크arrow-up-right를 통해서 AWS Provider에 AWS 자격증명을 설정하는 방법 확인

  9. AWS 자격 증명 설정

  10. AWS API를 호출하는 AWS 자격증명 확인

  11. 인프라 변경 사항 반영

  12. AWS 자격증명 재설정 - region에 ap-northeast-2 입력

  13. AWS CLI 설정 파일 확인

  14. 인프라 변경 사항 반영

  15. 해당 링크arrow-up-right를 통해서 aws_instance 리소스가 제공하는 속성 정보 확인

  16. Terraform 코드에 아래의 코드블록을 추가하고 저장

  17. 인프라 변경 사항 확인

  18. Terraform 상태 파일 확인

  19. 인프라 변경 사항 반영

  20. Terraform 상태 파일의 변경 사항 확인

  21. EC2 인스턴스가 실제로 생성되었는지 확인

  22. 해당 링크arrow-up-right를 통해서 EC2 인스턴스를 생성하는 AWS Provider 소스코드 확인

  23. 해당 링크arrow-up-right를 통해서 EC2 인스턴스 생성에 사용되는 AWS API 확인

  24. CloudTrail을 통해서 RunInstances API가 호출되었는지 확인

  25. AWS CLI를 통해서 Terraform을 통해서 생성된 리소스 수정

  26. 인스턴스 타입이 변경되었는지 확인

  27. 수동으로 수정한 인프라 변경 사항을 감지하는지 확인

  28. Terraform 코드에 맞게 리소스 수정

  29. 인스턴스 타입이 변경되었는지 확인

  30. 리소스 삭제

  31. main.tf 파일에서 아래의 코드 블록 삭제

  32. main.tf 파일을 제외한 모든 파일 삭제

  33. Terraform 환경 생성

  34. 해당 문서arrow-up-right를 통해서 Terraform 플러인 설치 동작 원리 확인

  35. 인프라 변경 사항 확인

  36. 코드 삭제

Last updated