# terragrunt

MacBook 개발환경 설정 가이드
언제나 어디에다가 적어두는 (매번 컨플루언스나 노션에다 적어두다가 .. 공유해두지만.. 매번 업데이트 하는 그런류.. 그렇지만.. 생각외로 이렇게 하드코어적으로 쓰는 사람이 없다라는 것도 놀람의 연속..) 추가적으로 brew 만 잘 사용해도 어마어마하고 또한 최근 1~2년 전부터 떠오르는 https://fig.io 도 참고할만한 곳이기도 하다.. (아직까진 맥 환경에만 주력하는 것 같은데.. 리눅스나. 윈도우 환경에도 지원하려는 듯 하니. 지원하면 설치해서 사용하면 좋을 듯 하다..) 필자는 맥환경을 기준으로 기입을 하나 Ubuntu 환경에서도 유사하게 사용이 가능하니 (참고로 필자의 별도의 개인 서버인 Ubuntu 서버에서 apt 로 유사하게 설치해서 사용중이다.) Homebrew oh-my-zsh zplug ht

Terragrunt란 ?
Summary 테라폼으로 인프라를 관리하기 시작하며, 하나의 통합된 프로젝트 구조로는 관리의 한계성을 느끼게 되었습니다. 이 문제점을 개선하고자, 테라그런트를 도입하여 프로젝트를 보다 안전하고, 효율적으로 관리할 수 있도록 정리하고자 합니다. Terragrunt 란? Terragrunt는 Terraform 모듈을 조합하여 더 큰 인프라를 구성하고, 생성, 변경 및 삭제 작업을 위한 공통 논리를 제공하는 오픈 소스 도구입니다. Terragrunt는 다음과 같은 기능을 제공합니다. 코드 중복 제거: Terragrunt는 Terraform 모듈을 분할하여 중복 코드를 제거합니다. Terragrunt는 공통 논리를 한 곳에서 관리하여 모든 Terraform 모듈에서 재사용할

[Terragrunt] local backend(tfstate 파일) 설정
기본 tfstate 파일 생성에 있어 terraform과 terragrunt의 차이 Terraform은 backend에 대한 추가적인 설정이 없다면 기본적으로 실행 디렉토리 내에 terraform.tfstate 파일을 생성한다. 그러나, Terragrunt는 backend를 따로 설정해주지 않으면 local에 tfstate파일을 생성해주지 않는다. If Terraform has no explicit backend configuration, it creates terraform.tfstate in live directory by default. However, Terragrunt doesn't. tfstate 파일이 없으면 생기는 일 사실 tfstate 파일이 없어도 terragrunt apply로 리소스 생성이 가능하고, terragrunt destroy로 리소스 삭제가 가능하다. 그럼 무엇이 문제냐, apply 명령으로 리소스

Terraform/Terragrunt로 AWS 인프라 구성하기(1) - 소개
terraform/terrgrunt를 사용해서 aws 인프라 구성 과정을 정리한 글이다. 🤣갑자기 terraform? 회사 프로젝트로 terraform을 이용해서 aws 인프라를 생성하게 되었다. 실제 사용될 인프라를 생성한 적은 처음이었기에 배운 점이 굉장히 많은 값진 경험이없다. 이를 잊어버리지 않기위해 이렇게 기록을 한다. 많은 aws 서비스를 사용하게 되는데, 인프라에 대한 기초 지식이 그리 두텁지 않은 상태에서 terraform 코드를 짜려니 어려운 점도 있었지만, terraform은 사실 인프라에 대한 대단한 지식이 없어도 주어진 요구사항에 맞춰 코드는 짤 수 있다. 🤔Terragrunt는 또 뭐죠.. Terraform module로 구성하면 중복되는 코드가 너무 많고, 코드가 늘어날수록 헷갈려서 작성하기 어려워진다. 이런 코드의 중복성을 제거하고 좀더 편리하게 terraform 코드를 짤 수 있게 도와주는 도구가 바로 `Terragru
[AWS/Terraform] AWS WAF rule action : count 란?
AWS WAF도 생소한데 allow, block도 아닌 count는 뭐지.. terraform을 사용하여 cloudfront+s3로 웹호스팅을 구성하고, 그 앞단에 waf를 둠으로써 특정 ip만 접속 가능하게 구성하는 과정에서 정리한 글이다. 분명히 잘 구성했다 생각했는데 cloudfront domain name으로 접속시 웹페이지가 제대로 뜨지 않았다. 그러나 waf를 걷어내면 정상적으로 동작하였는데, 원인은 바로 web acl에서 rule group을 지정하는 부분에서 overide_action을 count로 지정했기 때문이었다. AWS WAF(Web Application Firewall) 말 그대로 웹 애플리케이션 방화벽으로 웹 프로토콜(HTTP) 정보를 바탕으로 차단/허용 룰을 설정한다. rule action rule에 일치하는 트래픽이 들어왔을 때 어떤 액션을 취할것인지 정의하는 것이다. allow: 해당 요청을 허용한다.
[Error] Failed getting S3 bucket: BadRequest: Bad Request >> multi-region problem
cloudfront + s3 으로 정적인 웹호스팅을 만드는 과정에서 terraform state file로부터 s3 정보를 읽어오지 못하는 오류가 발생하였다. 분명히 존재하는 버킷인데 읽어오지 못한다는 것은 terraform이 s3를 어디 엉뚱한데서 찾고있다는 생각이 들었다. Problem Error: Failed getting S3 bucket (버킷명): BadRequest: Bad Request status code: 400, ... with data.awss3bucket.hosting, on main.tf line 30, in data "awss3bucket" "hosting": 30: data "awss3bucket" "hosting" { Why region 문제였다. cloudfront는 항상 N. Virginia에서만 사용가능하기 때문에 aws provider의 기본 region을 us-east-1으로 설정을 해두었다. 그러나 s3 bucke