[Terraform]terraform import 사용법(AWS 콘솔로 생성한 리소스 테라폼으로 가져오기)

2025. 4. 11. 08:15·DevOps
반응형

1. 배경 상황

데이터 파이프라인 생성을 위해 Kinesis Data Streams + Data Firehose + S3 조합의 인프라 구성 요청을 받았는데, Kinesis Data Streams는 이미 해당 팀에서 생성해주신 상황이었다. 우리는 가능하면 모든 AWS 리소스를 Terraform에서 관리하려고 하는 상황이기 때문에 이미 생성된 리소스를 terraform import를 통해 가져온 후, 나머지 리소스는 코드로 생성하기로.

 

 

2. terraform import 사용 방법

테라폼에서는 terraform import 명령어를 통해 이미 콘솔 등을 이용해 생성한 리소스(모듈이 아니고 리소스다)의 상태값을 가져올 수 있다. 최신 정보는 공식 문서 참조.

 

1. 가져오고자 하는 리소스의 리소스 블록을 작성한다(terraform import는 상태값을 가져와주는 것이라 리소스 블록에 대한 코드는 직접 작성해야함).

resource "aws_kinesis_stream" "test_stream" {
  name             = "terraform-kinesis-test"
  shard_count      = 1
  retention_period = 48

  shard_level_metrics = [
    "IncomingBytes",
    "OutgoingBytes",
  ]

  stream_mode_details {
    stream_mode = "PROVISIONED"
  }

  tags = {
    Environment = "test"
  }
}

 

 

2. terraform import 명령어를 실행해 리소스의 상태값을 위에서 작성한 리소스 블록에 매핑한다.

# terraform import <테라폼 aws 서비스명>.<리소스명> <실제 생성된 리소스 이름/id> 
terraform import aws_kinesis_stream.test_stream terraform-kinesis-test

 

 

3. terraform plan을 실행해 import가 제대로 수행했는지 검증한다. 작성한 코드와 실제 AWS 서비스의 상태값이 일치한다면 변경점이 없다고 나오고, 변경점이 있다면 작성한 코드 값을 적용하기 위한 변경점이 출력된다.

 

 

이번에는 다행히 모듈이 아니라 리소스로 작성한 코드라(Kinesis는 AWS 공식 모듈이 없다;;) 금방 import할 수 있었는데, module의 경우 엮인 resource를 한땀한땀 import 해와야 해서 굉장히 불편하다. terraforming 을 활용하면 더 간단히 가져올 수 있다고 하는데 안타깝게도 한참 전부터 업데이트가 중지되고 프로젝트가 아카이빙 상태다. 다음에 import 할 일이 있을 수 있으니 다른 프로젝트가 있는지 찾아봐야겠다.

저작자표시 비영리 동일조건 (새창열림)

'DevOps' 카테고리의 다른 글

[Terraform]테라폼으로 RDS 배포 시 주의사항(manage_master_user_password_rotation 옵션)  (0) 2025.04.24
[Terraform]RDS 클러스터 삭제 시 주의점(final_snapshot_identifier is required when skip_final_snapshot is false)  (0) 2025.04.15
[AWS]ALB에서 선택하지 않은 Subnet에 배포된 Target(Pod)와의 연결이 될까?  (0) 2025.04.08
[Github]깃헙 액세스토큰 사용 시 refusing to allow a Personal Access Token to create or update workflow… 에러  (0) 2025.04.01
[Kubernetes]kubectl 및 유용한 유틸리티 설치(krew, ctx, neat)  (1) 2025.03.30
'DevOps' 카테고리의 다른 글
  • [Terraform]테라폼으로 RDS 배포 시 주의사항(manage_master_user_password_rotation 옵션)
  • [Terraform]RDS 클러스터 삭제 시 주의점(final_snapshot_identifier is required when skip_final_snapshot is false)
  • [AWS]ALB에서 선택하지 않은 Subnet에 배포된 Target(Pod)와의 연결이 될까?
  • [Github]깃헙 액세스토큰 사용 시 refusing to allow a Personal Access Token to create or update workflow… 에러
Canary_카나리아
Canary_카나리아
어쩌다 데브옵스 엔지니어가 된 문과생의 기록용 블로그
    반응형
  • Canary_카나리아
    release: canary
    Canary_카나리아
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • DevOps (67)
      • Programming (28)
      • Certifications (3)
      • ETC (20)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    kops사용법
    Java
    argocd
    클라우드엔지니어자격증
    terraform
    ncp서비스
    프로메테우스예제
    제로베이스
    백엔드개발
    자바개념
    spring
    kops란
    java개념
    그라파나예제
    백엔드스쿨
    한빛출판네트워크
    NCP자격증
    백엔드공부
    데브옵스엔지니어
    클라우드자격증
    그라파나
    NCPprofessional자격증
    프로메테우스
    개발자
    네이버클라우드자격증
    백엔드
    네이버클라우드서비스
    Prometheus
    NCPassociate자격증
    Grafana
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Canary_카나리아
[Terraform]terraform import 사용법(AWS 콘솔로 생성한 리소스 테라폼으로 가져오기)
상단으로

티스토리툴바