[Terraform]terraform import 사용법(AWS 콘솔로 생성한 리소스 테라폼으로 가져오기)
·
DevOps
1. 배경 상황데이터 파이프라인 생성을 위해 Kinesis Data Streams + Data Firehose + S3 조합의 인프라 구성 요청을 받았는데, Kinesis Data Streams는 이미 해당 팀에서 생성해주신 상황이었다. 우리는 가능하면 모든 AWS 리소스를 Terraform에서 관리하려고 하는 상황이기 때문에 이미 생성된 리소스를 terraform import를 통해 가져온 후, 나머지 리소스는 코드로 생성하기로.  2. terraform import 사용 방법테라폼에서는 terraform import 명령어를 통해 이미 콘솔 등을 이용해 생성한 리소스(모듈이 아니고 리소스다)의 상태값을 가져올 수 있다. 최신 정보는 공식 문서 참조. 1. 가져오고자 하는 리소스의 리소스 블록을 작성t..
[Terraform]tfenv로 테라폼 버전 관리하기(테라폼 여러 버전 활용하기)
·
DevOps
배경 상황지금 회사에서는 사내 인프라를 테라폼으로 관리하고 있고, 계정별/리소스별로 디렉터리를 나눠서 사용하고 테라폼 버전이나 프로바이더 버전을 디렉터리별로 따로 관리하고 있다.  최근 테라폼 1.10 버전부터 DynamoDB를 별도로 가져가지 않고 S3만으로도 lockfile 관리가 가능하다는 소식이 들려서 테라폼 버전들을 디렉터리별로 순차적으로 업그레이드 하고있다. 그런데 tf 파일에 정의된 버전과 terraform cli의 버전이 다르면 에러가 떠서 어떻게 해야하나 찾아보니 tfenv라는 도구가 있었다.  tfenv 사용법MacOS에서는 간단하게 brew로 설치할 수 있다.brew install tfenv  tfenv로 설치할 수 있는 버전을 확인하려면 다음 명령어를 실행하면 된다.tfenv lis..
[Terraform]Route53 레코드 추가 시 CloudFront, ALB등 AWS 리소스의 Hosted zone ID 확인
·
DevOps
Terraform으로 Route53 레코드를 생성할 때, AWS 리소스를 바라보는 별칭(Alias) 레코드의 경우에는 다음과 같이 zone_id(Hosted zone ID)를 명시하도록 되어있다.module "route53_records" { source = "terraform-aws-modules/route53/aws//modules/records" version = "3.1.0" zone_name = module.route53_zones.route53_zone_name["sample.kr"] records = [ { name = "subdomain" type = "A" alias = { name = module.cdn.cloudfront_distr..