본문 바로가기

Terraform42

[Terraform on AWS] CSV 파일 참조해서 Security Group Rule 만들기 CSV 파일 형식 module/main.tf variable "sg_id" {} variable "rule_type" {} # ingress / egress variable "from_port" {} variable "to_port" {} variable "protocol" {} # tcp / udp / icmp variable "src_or_dst_type" {} # cidr(list) / pl(list) / sg variable "destination" {} variable "description" {} # Rule with CIDR Blocks resource "aws_security_group_rule" "sg_cidr_rule" { count = var.src_or_dst_type == "cid.. 2021. 10. 10.
[Terraform] 실행 환경 분리와 Backend 설정 (AWS/Terraform Cloud) Terraform Backend에 대해 썼던 기존 글 [Terraform] 테라폼 backend의 이해 [Terraform on AWS] 테라폼 backend, 상태 잠금 설정해보기 위 글들은 잘 모르는 상태에서 책 내용을 정리만 해 놓은 것이었다 테라폼을 실무에서 쓰게 되면서 깨닫고 느낀 것들을 다시 정리해 보겠다 Terraform 실행 환경 분리 & Backend 설정의 필요성 참고한 글 : https://rampart81.github.io/post/terraform-directory-structure/ Terraform은 기본적으로 apply가 일어나는 폴더 내의 .tf 파일들을 모두 실행시킨다 VPC/EC2와 같은 기본적인 인프라만 프로비저닝할거라면 상관없지만, Database/Directory/.. 2021. 10. 10.
[Terraform on AWS] Routing Module Example 21.11.5 수정 https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route registry.terraform.io Terraform AWS Routing은 대상의 종류에 따라 들어가야 할 옵션이 다르다 옵션 자체가 다르다 보니 삼항 구문을 이용한 조건문을 생성해 case처럼 사용할 수 있게 만들어야 했다 modules/main.tf variable "routings" {} variable "rt_id" {} variable "gateway" { default = ["ig.. 2021. 10. 3.
[Terraform CI/CD] Terraform Cloud 사용법 (GitHub -> AWS) 준비물 : GitHub 계정, AWS User ACCESS/SECRET KEY Terraform Cloud 계정 만들기 (5인 이하는 무료) : https://app.terraform.io/signup/account 이름, 메일, 비번을 가지고 간단하게 회원가입을 하면, Confirm Email Address라는 창이 뜬다 가입할 때 입력한 메일의 메일함을 확인해보면 Terraform Cloud로부터 메일이 하나 와있다 주어진 링크를 클릭하면 아래와 같은 창이 뜬다 나는 example 없는 Start from scratch를 눌러주었다 -> Organization을 만들라고 뜬다 Organization은 말 그대로 조직이고, 그 안에 프로젝트들을 여러 개 만들 수 있다 물론 Organization도 여러.. 2021. 9. 19.
[AWS] Code Series로 Terraform CI/CD 환경 구성해보기 들어가면서 AWS Code Series란? AWS의 CodeCommit, CodeBuild, CodeDeploy, CodePipeline을 통칭하는 단어 CodeCommit : AWS의 GitHub (버전 관리 서비스) - [AWS] CodeCommit 사용법 참고 CodeBuild : 소스코드 컴파일해주고 빌드해주는 서비스 (Source Repository의 buildspec.yml 파일대로 빌드) CodeDeploy : 배포하고자 하는 대상(Application)을 Deployment Group으로 배포시켜줌 (appspec.yml 파일대로) 가능 배포 대상 : EC2/On-premis, Lambda, ECS CodePipeline : Source - Build - Deploy 과정을 관리해주는 서비.. 2021. 9. 18.
[Terraform] 메타변수 count로 반복문, 조건문 사용하기 테라폼은 count라는 메타 변수를 사용해서 반복문과 조건문을 구현할 수 있다 리소스나 모듈에 count를 지정해주면 그 수만큼 반복을 하며, index라는 object를 사용할 수 있다 근데 내가 생각하는 것들을 구현하기엔 한계가 있었다 (내 능력 부족일수도...) 일단 해보자! 1. 반복문 처음에 내가 생각했던건 모듈을 불러올 때 숫자를 입력받아서 count로 지정해주고, 그 숫자만큼 모듈 내의 리소스가 반복 생성되면서 원하는 변수들을 반복 입력받는 형태였다 이렇게 하고 싶었던 이유는 모듈이 반복될 때 마다 새로운 변수를 입력받길 원했기 때문이다 모듈에만 입력 변수를 정의해두면 모듈 내의 리소스 구문이 실행될 때 마다 변수를 입력받을거라고 생각했다 그러나... 모듈에서 사용할 변수는 실행 문서에서 정.. 2021. 3. 26.
[Terraform on AWS] VPC, Subnet Module 만들어서 사용하기 GitHub에서 코드 바로 실행해보기 지난 글에서 테라폼을 사용해 VPC 및 EC2 등의 리소스들을 생성해 보았다 그러나, 저렇게 만들어 놓은 코드들은 재사용하기가 어렵다 테라폼 모듈을 이용해서 재사용하기 쉽게 만들어보자 목차 1. 테라폼 모듈 간단 설명 2. 테라폼 모듈 간단 체험 (VPC) 3. VPC, Subnet 모듈화 1. 테라폼 모듈 간단 설명 모듈은 폴더 단위 이다 해당 폴더 내의 모든 구성 파일들이 하나의 모듈이 되는 것 그래서 난 VPC, Public Subnet, Private Subnet, EC2 등등 각각 폴더를 만들어 모듈화를 할 것이다 모듈로 쓸 파일이 수정되었다면 terraform get 명령을 통해 변경사하을 동기화해야 한다 모듈 구문의 기본 문법은 아래와 같다 module .. 2021. 3. 24.
[Terraform on AWS] 간단한 VPC 구성 & 웹서버용 EC2 생성하기 테라폼으로 간단한 네트워크 구성을 해보겠다 생성할 것 VPC : 10.0.0.0/16 Subnet Public : 10.0.1.0/24, igw와 연결 Private : 10.0.10.0/24, NAT gw와 연결 EC2 Public(WebServer용) : httpd 실행, 22/80 포트 오픈 Private(DB용) : WebServer에서의 22 포트 오픈 (DB 설치는 pass...) 1. init.tf provider "aws" { region = "ap-northeast-2" } data "aws_availability_zones" "available" { state = "available" } 기본 프로바이더와 가용 영역을 설정해주었다 프로바이더 구문에서 AWS ACCESS KEY와 SECR.. 2021. 3. 23.
[Terraform on AWS] 테라폼 backend, 상태 잠금 설정해보기 참조 책 Terraform Up & Running 코드 : github.com/stitchlabio/terraform-up-and-running-code terraform101.inflearn.devopsart.dev/advanced/backend/ 이전 글 : 테라폼 backend의 이해 Requirements S3, DynamoDB 권한이 있는 IAM User 목차 1. S3 버킷, DynamoDB 테이블 생성 2. Backend 설정 1. S3 버킷, DynamoDB 테이블 생성 테라폼의 상태를 저장하기 위한 S3 Bucket과 Lock을 걸기 위한 DynamoDB 테이블을 생성해 보겠다 resources.tf provider "aws" { region = "us-east-1" } resource .. 2021. 3. 21.
[Terraform] 테라폼 backend의 이해 + 21.10.10 더 이해 많이 하고 쓴 글 : https://honglab.tistory.com/199 [Terraform] 실행 환경 분리와 Backend 설정 (AWS/Terraform Cloud) Terraform Backend에 대해 썼던 기존 글 [Terraform] 테라폼 backend의 이해 [Terraform on AWS] 테라폼 backend, 상태 잠금 설정해보기 위 글들은 잘 모르는 상태에서 책 내용을 정리만 해 놓은 것이었다 테라폼.. honglab.tistory.com 참조 책 Terraform Up & Running terraform101.inflearn.devopsart.dev/preparation/terraform-basic/ 목차 1. 테라폼 상태 & backend 2... 2021. 3. 19.