테라폼을 시작해보고는 싶은데 어디서부터 어떻게 시작해야할지 모르는 '나'와 이 글을 읽는 분들께
테라폼을 AWS와 연동하고, AWS 내에 동작하는 리소스를 생성하기 위한 방법을 정리합니다.
테라폼 코드를 무작정 작성할 수는 없으니 아래와 같이 단계별로 진행해보려 합니다.
테라폼 코드 작성 전 저는 아래와 같은 목표를 갖고 작업 진행 예정입니다.
이를 바탕으로 이 페이지에서는 기본적인 트리구조와 모듈화를 통한 관리 방식 수립 부분 까지만 진행해보도록 하겠습니다.
테라폼을 사용하기 위해서는 테라폼과 AWS CLI를 설치해야합니다.
각자의 환경에 맞는 Terraform과 CLI를 설치하도록 합니다.
👉🏻테라폼 설치
👉🏻AWS CLI 설치
트리 구조는 아래와 같습니다.
트리 구조를 이렇게 짠 이유는 운영까지 고려하여 영향도를 최소화 하고 운영 편의성을 높이기 위해 리소스 별로 상세하게 나누었습니다.
terraform
├─ 100_network
├─── 101_network_default
├───── main.tf
├───── variables.tf
├───── versions.tf
├───── output.tf
├───── locals.tf
├─── 102_network_gw
├─── 103_network_vep
├─── 104_network_routing
├─── 105_network_sg_rule
├─ 200_compute
├─ 300_eks
├─ 400_s3
├─ 500_rds
├─ 600_iam
├─── 601_iam_policy
├─── 602_iam_rule
...
각 리소스 내에 있는 tf 파일들은 각자의 역할에 따라 구분되어 있습니다.
이 파일들을 어떻게 사용하느냐에 따라 운영의 편리함을 구분지을 수 있다고 생각합니다.
그래서 저는 테라폼을 통한 리소스 구성 시 variables.tf 파일만 수정하도록 관리 방식을 수립했습니다.
[main.tf] (주요 리소스 정의)
[variables.tf] (입력 변수 정의)
[versions.tf] (버전 관리)
[output.tf](출력 변수 정의)
[locals.tf](로컬 변수 정의)