Terraform

    [Terraform] Terragrunt 란? (Terragrunt 사용법과 활용방법)

    Intro terragrunt는 테라폼 소스코드를 DRY(Don't Repeat Yourself) 하게 만들어주는 툴 입니다. DRY 란 프로그래밍을 할때 반복작업을 하지 않는 것을 말하는데요. 자세한 내용은 다음 링크를 참고 바랍니다. ( DRY원칙이란?: https://kim-dragon.tistory.com/256) 테라폼 소스코드의 레이아웃은 폴더 레벨로 구분되어 집니다. 레이아웃은 규모에 따라서 달라집니다만 그 얘기를 하면 너무 길어질거 같으니 DRY에 대한 얘기만 해보겠습니다. 아래 레이아웃을 보면 반복되어지는 파일 backend.tf provider.tf main.tf 을 볼 수 있는데요. 오늘 주인공 terrgrunt를 하용하여 반복되는 파일들을 생성 해보도록 하겠습니다. ├── R..

    [Terraform] terraformer로 기존 AWS 리소스 가져오기(import)

    Intro 오늘은 terraformer를 사용하여 이미 생성되어있는 리소스를 가져와 보도록 하겠습니다. (사용한 OS는 MAC M1 입니다.) terraformer 란? 기존의 생성되어있는 인프라를 테라폼 소스로 가져오는 오픈소스 툴입니다. Waze SRE에서 만들었으며 공식적인 제품은 아니라고 합니다. terroformer는 태생이 GCP 위해 만들어졌습니다. Waze SRE 가 뭔지 궁금해서 구글링을 좀 해보니 구글의 일부라고 하는거보니 구글의 사내 오픈소스 조직 인 것 같네요. (근데 AWS에서도 사용할 수 있게 만들어줬다고? 갓 구글..) 참고 URL: https://github.com/GoogleCloudPlatform/terraformer/ terraformer로 가져올 수 있는 aws리소스 ..

    [Terraform] 테라폼으로 AWS Elasticache(redis) Cluster 모드로 생성하기

    Intro 오늘은 테라폼으로 AWS Elasticache(redis) Cluster mode로 생성 하는 방법을 알려드리도록 하겠습니다. Elasticache 생성하기 전에 알아야할 몇가지 지식과 생성하면서 겪었던 것들을 공유하면서 최종적으로 테라폼 소스 코드를 공유드리도록 하겠습니다. Elasticache(redis) cluster mode란? 우선 redis cluster가 어떻게 생겨먹었는지 알아야하는데요. 아래 그림을 보면 쉽게 이해가 될 겁니다. 단일 노드 Redis(클러스터 모드 비활성화됨) 클러스터 : 샤드 없음 다중 노드 Redis(클러스터 모드 비활성화됨) 클러스터 : 샤드가 1개 있음 Rdeis(클러스터 모드 활성화됨) 클러스터 : 샤드에서 데이터가 분할된 최대 500개의 샤드를 포함할..

    [Terraform] 모듈에 있는 자원을 outputs으로 설정하는 방법 (feat. elb module과 asg)

    Intro Terraform에서 제공하는 모듈을 사용하게 되면 해당 경로의 .terraform/modules/모듈이름 으로 생성이 됩니다. 이 모듈안에서 생성한 리소스를 root의 output으로 정의하여 외부에서 사용할 수 있게 하는 방법을 알아 보도록 하겠습니다. Layout 예시 my-workspace ├──elb │ ├──.terraform │ │ └──module │ │ │ └──elb │ │ │ ├──main.tf │ │ │ ├──outputs.tf ### 1. ELB 모듈의 ouptput │ ├──main.tf │ ├──outputs.tf ### 2. ELB 루트의 ouptput └──asg ├──data.tf ### 3. ASG 의 data ├──main.tf ### 4. ASG 의 mai..