모듈을 이용한 Terraform 애플리케이션 구조

Terraform 0.12.23 버전 기준이다. for문은 0.12 버전부터 지원하기 때문에 0.12 이전 버전에서는 작동하지 않을 것이다. 아래와 같은 VPC를 Terraform 코드로 개발&배포 하기로 했다. 이 문서는 테라폼 모듈을 이용한 코드의 구조화가 목적이므로 VPC 외에 다른 AWS 자원들은 포함하지 않을 것이다. 1. VPC 1. Inte...

Terraform multi az vpc

를 기반으로 개선을 하는게 내용이므로 링크의 문서를 참고해야 한다.테라폼으로 구성할 인프라는 아래와 같다. 2개의 가용영역을 사용한다. 퍼블릭 서브넷과 프라이빗 서브넷을 구성한다. 2개의 가용영역에 배치되므로 총 4개의 서브넷이 배치된다. 퍼블릭 서브넷으로의 인터넷에서의 접근을 위해서 인터넷 게이트웨이를 만든다. 프라이빗 서브넷에서 인터넷으로 접근하기...

Terraform 소개

테라폼(Terraform)은 HashiCorp에서 개발한 오픈소스 IaC(Infrastructure as code) 소프트웨어다. 개발자는 테라폼에서 제공하는 HCL(Hashicorp Configuration Language)라는 고수준 설정 언어(high-level configuration language) 혹은 json 를 이용해서 데이터센터 인프라스트...

Terraform Data Sources

인프라는 여러가지 데이터를 만들어낸다. 서울리전에 인프라를 구축해야 한다고 가정해보자. VPC는 3개의 가용영역을 이용해서 구성할 거다. 가용영역은 아래와 같이 변수로 설정 할 수도 있을 것이다. variable "availability_zone" { description = "Seoul region availability zone" type = "list...

Terraform workspace

서비스 인프라를 구성 할 때, 프러덕션 인프라 하나만 구성하는 경우는 없다. CICD 환경울 구성했다면 최소 두 단계, 일반적으로 3단계의 인프라가 구성된다. Dev QA Production 클라우드 환경에서는 인프라도 소프트웨어 구성요소다. 개발이 여러 단계를 거치는 것처럼, 인프라도 여러 단계를 거치면서 테스트, 피드백, 개선의 작업을 거쳐야 한다....

Terraform Module

모듈은 인프라를 구성하는 여러 개의 리소스를 담는 컨테이너다.모든 테라폼 설정은 루트 모듈(root module)라고 부르는 하나의 모듈을 하나 이상 가지고 있다. 모듈은 다른 모듈을 호출할 수 있으므로, 하위 자원 구성요소를 모듈형식으로 간단히 포함 할 수 있다. 모듈은 다른 테라폼 설정에서도 호출할 수 있으므로, 인프라 구성을 재활용 할 수 있다.이 문...