IaC (Infrastructure as Code) - Import existing AWS resources into Terraform (Feat. Terraforming)

 요즘에, AWS 를 사용하면서, 여러가지 Resource 들을 다루어 보고 있다. 이러한 과정속에 다루는 Resource 가 많아질수록 또는 여러사람들이 Resource 를 추가하고 삭제하고 변경하는 과정에서 추적이 쉽지 않고 관리가 어려워지는 것을 느꼈다.

AWS 에서 기본적으로 제공하는 서비스인 CloudFormation 도 있고, 최근에는 CDK 를 지원하고 있기도 하고 이외에도 Ansible, Chef, Puppet 등 다양한 IaC 도구들이 있다는 것을 알지만, 나는 아직 초짜라서 이 모든것을 경험해보진 못했다.

https://aws.amazon.com/ko/about-aws/whats-new/2019/07/the-aws-cloud-development-kit-aws-cdk-is-now-generally-available1/

요즘 새롭게 꽂혀서 Terraform 을 이것저것 만져보고 있다. 새롭게 Infrastructure 를 구축할 때는 실습해보면서 감을 익히는 정도인데, 문득 기존에 존재하는 수많은 Resource 들을 Terraform 으로 쉽게 관리할 수 있는 방법은 없을까? 라는 의문점이 생겼다.

existing AWS Resource import Terraform 라는 키워드로 구글링을 하는 과정에서 Medium 에서 블로깅한 내용을 발견했다.

https://medium.com/@yoga055/importing-existing-aws-resources-to-terraform-using-terraforming-3221b26e015

해당 내용을 보고, 오! terraforming 역시, 누군가가 괜찮은걸 이미 만들어 놨군! ㅋㅋ

https://github.com/dtan4/terraforming


사용법도 정말 간단하다. 우선 Mac OS 기준으로 사용법을 정리하고 마치겠다.

먼저 필요한건 AWS CLI 이다.


AWS CLI 설치 방법은 간단하다. 아래 링크로 들어가서 인스톨러 다운받고 설치하면 된다.

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-mac.html#cliv2-mac-install-confirm

설치하고 터미널에서 which aws 나 aws --version 을 통해서 설치확인을 한다.


그리고 해야 될 것은 aws configure 을 통해서 access key 와 secret key 및 region 및 포맷을 정해준다.


다음으로 이제 terraforming 을 설치한다.

Homebrew 는 이미 설치되어 있다는 전제로 깔고 간다.

brew update 후 brew install terraforming 으로 간단하게 설치해준다.



사용법은 정말 간단하다. 아래처럼 terraforming help 명령어를 통해서 가능한 명령어를 확인한다.

그리고 필요한 Resource 들이 Terraform 코드로 변환되는 것을 확인할 수 있다.


아래와 같이 terraforming vpc  라는 간단한 명령어로 기존에 존재하는 vpc 자원들에 대한 명세를 Terraform 코드로 변환되어 출력된다. 

여기서 마무리하겠다!

댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud