본문 바로가기

Terraform42

[Terraform] MAC에서 tfenv로 terraform 특정 버전 사용 # tfenv 설치 $ brew install tfenv # terraform 특정 버전 설치 $ tfenv install 1.1.3 # terraform 특정 버전 사용 $ tfenv use 1.1.3 # terraform 버전 확인 $ terraform version Terraform v1.1.3 다른 버전으로 스위칭하는것도 자유롭다 끝 2022. 5. 14.
[Terraform] 다른 backend의 state가 업데이트가 안돼요..?! (terraform_remote_state 불러오는 방식) terraform backend 설정에 관한 글 : [Terraform] 실행 환경 분리와 Backend 설정 (AWS/Terraform Cloud) terraform import에 관한 글 : [Terraform] Terraform import와 terraforming (AWS) 태초에....A 환경과 B 환경이 있었습니다 A와 B는 S3를 backend로 사용하고 있고...서로의 output을 받아오기 위해 data로 remote_state 블럭을 설정해 두었습니다 A 환경에서 실제 리소스들을 잔뜩 import를 해야 하는데, B 환경에서의 output을 사용할 일이 생겨서 아래와 같은 코드들을 추가했습니다 ## a/main.tf locals { test = data.terraform_remote_s.. 2022. 4. 30.
[Terraform] map 타입 변수 validation 설정하기 아래와 같은 변수를 사용한다고 생각해보자 variable "subnet_cidrs" { description = "Subnet CIDRs" type = map(string) default = { pub-bastion = "10.0.0.0/24" pri-db = "10.0.1.0/24" pri-glue = "10.0.2.0/24" pri-ecs = "10.0.3.0/24" } } 위 변수를 가지고 for_each를 돌리게 된다면, pub-bastion 과 pri-db 등의 이름들은 모두 each.key 로 분류되고, CIDR들은 모두 each.value로 분류된다 이 때, 각 key들의 이름이 pub 또는 pri로 시작하게 강제하고 싶으므로 validation 구문을 사용해보겠다 Terraform Vali.. 2022. 2. 21.
[Terraform] For Expression을 사용해 for_each문의 output 설정하기 https://www.terraform.io/language/expressions/for For Expressions - Configuration Language | Terraform by HashiCorp For expressions transform complex input values into complex output values. Learn how to filter inputs and how to group results. www.terraform.io 예를 들어, vpc를 여러 개 만든다고 해보자 count를 사용하는 경우 : locals { vpc_cidrs = [ "10.0.0.0/16", "10.1.0.0/16", "10.2.0.0/16" ] } resource "aws_vpc" "thi.. 2022. 2. 18.
[IaC] Terraform Associate 합격 후기 Terraform Associate를 땄다 Terraform 자격증이란게 있는지도 몰랐고, 찾아봐도 Associate밖에 없는거 보면 아직 생긴지 오래되진 않은 것 같다 그럼에도 불구하고 딴 이유는 - 내가 요 몇달간 테라폼을 많이 했어서 자신이 있었으며, - Practice Exam 등의 예시 문제를 봤을 때 문제 자체가 쉽게 나오고 있었고, - 연휴동안 할 게 없었기 때문이다. 사실 근데 문제가 있었다..... 원래 연휴동안 후딱 따려고 2월 2일(연휴 마지막 날) 시험을 잡아놨었으나, 여권이 없어서(영어 이름을 증명할 카드가 없어서) ㅋㅋㅋ 시험을 보지 못했다 어찌보면 당연한것 아닌가 싶지만, 그동안 AWS 자격증들은 피어슨 뷰? 아무튼 그거로 봤었고, 이전에 수세 시험을 칠 때 한국 민증만으로도 .. 2022. 2. 4.
[M1 MAC Terraform] The plugin.(*GRPCProvider).ValidateProviderConfig request was cancelled. 에러가 나지 않던 Terraform Code에서 갑자기 plan/apply 시 아래와 같은 에러가 떴다 해결 : https://github.com/hashicorp/terraform-provider-aws/issues/20274 plugin.(*GRPCProvider).ValidateResourceConfig request was cancelled. · Issue #20274 · hashicorp/terraform-provider-aws Community Note Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request Ple.. 2022. 1. 24.
[Terraform] CSV -> AWS Security Group : fileset 함수 활용 위와 같이 보안그룹별 csv 파일들을 만들어 두었을 때, 자동으로 sg_csv 폴더 내의 파일들을 한꺼번에 읽어오게 하고 싶었다 알아보니 테라폼엔 fileset이란 함수가 있었다 https://www.terraform.io/docs/language/functions/fileset.html fileset - Functions - Configuration Language - Terraform by HashiCorp The fileset function enumerates a set of regular file names given a pattern. www.terraform.io locals { sg_csvs = fileset("./sg_csv/", "*") sg = toset([for f in local... 2021. 12. 11.
[Terraform] Terraform import와 terraforming (AWS) 1. Terraform import란? https://www.terraform.io/docs/cli/import/index.html Import - Terraform by HashiCorp Terraform can import and manage existing infrastructure. This can help you transition your infrastructure to Terraform. www.terraform.io Terraform import는 말 그대로 기존에 존재하던 인프라를 가져오는 기능이다 는 너무 내 희망회로였고, 공식 도큐를 잘 읽어보면 알겠지만 리소스를 그저 "상태"로 땡겨오는 기능이었다 심지어는 가져올 개체가 매핑될 리소스에 대한 빈 블록을 수동으로 미리 작성해놔야 했다 .. 2021. 11. 7.
[AWS] 아예 인터넷 통신이 없는 VPC에 EKS를 구성하기 위한 VPC Endpoint NAT조차 없는 서브넷에선 Cluster를 만들 순 있어도, Node를 연결할 수가 없다 이런 경우엔 VPC Endpoint를 몇 개 생성해주면 된다 https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/private-clusters.html 프라이빗 클러스터 - Amazon EKS 프라이빗 클러스터 이 주제에서는 아웃바운드 인터넷 액세스 없이 프라이빗 클러스터를 배포하는 방법에 대해 설명합니다. Amazon EKS 네트워킹에 익숙하지 않은 경우 Amazon EKS 작업자 노드에 대한 docs.aws.amazon.com 위의 4개만 필수고, 나머지는 필요에 따라 만들면 된다 ec2, ecr.api, ecr.dkr, s3(gateway), elasticloadb.. 2021. 11. 5.
[Terrafrom] IP Network Functions (cidrhost, cidrnetmask, cidrsubnet, cudrsubnets) 1. cidrhost https://www.terraform.io/docs/language/functions/cidrhost.html cidrhost - Functions - Configuration Language - Terraform by HashiCorp The cidrhost function calculates a full host IP address within a given IP network address prefix. www.terraform.io 주어진 IP 대역에서의 특정번째 호스트 IP 찾기 기본 구조 : cidrhost(prefix, hostnum) Ex) cidrhost("10.0.0.0/16", 39) > 10.0.0.39 cidrhost("192.168.32.96/27", 12.. 2021. 10. 18.