본문 바로가기
반응형

DevOps/Terraform14

Terraform + PowerShell local-exec에서 ssh/scp 실행 시 불필요한 . 출력 문제 해결기 AWS 인프라를 Terraform으로 프로비저닝하면서, null_resource + local-exec 프로비저너를 활용해 OpenVPN 서버에서 client.ovpn 파일을 scp로 다운로드하는 작업을 넣었습니다.그런데 terraform apply 실행 시 콘솔 로그에 다음과 같은 출력이 계속 찍히는 문제가 발생했습니다. null_resource.download_client_ovpn (local-exec): .null_resource.download_client_ovpn (local-exec): .null_resource.download_client_ovpn (local-exec): .null_resource.download_client_ovpn: Still creating... [00m20s elap.. 2025. 8. 19.
AWS 콘솔에서 만든 CloudFront 배포를 Terraform으로 가져와 관리하는 방법 (terraform import) 목차 AWS에서 CloudFront 배포(Distribution)를 콘솔로 만들었지만, 나중에 코드 기반 관리(IaC)를 위해 Terraform으로 전환하고 싶을 때 어떻게 해야 할까요?이번 글에서는 Terraform의 import 기능을 통해 콘솔로 만든 CloudFront 리소스를 Terraform으로 상태 일치시켜 관리하는 전체 과정을 실습 기반으로 정리합니다.🎯 목표콘솔에서 만든 CloudFront 배포를 삭제하지 않고 Terraform으로 가져옴Terraform 상태(state)와 코드(.tf)를 일치시켜 안전하게 관리Terraformer 사용 시 주의점까지 포함✅ 전체 작업 흐름 요약 단계설명1최소한의 .tf 리소스 블록 작성2terraform import로 상태(state) 연결3terra.. 2025. 8. 7.
Terraform에서 Kubernetes Provider 사용법 완벽 정리 – EKS 클러스터 내부 리소스까지 코드로 관리하는 법Terraform으로 AWS 인프라를 구축할 때, EKS 클러스터는 aws provider를 통해 생성할 수 있습니다. 하지만 EKS 내부의 Kubernetes 리소스들(Namespace, ConfigMap, DaemonSet 등)은 kubernetes provider를 통해 따로 관리해야 합니다.이번 포스팅에서는 Terraform의 kubernetes provider가 무엇인지, 왜 필요한지, 그리고 실무에서 어떻게 사용하는지를 정리합니다. Kubernetes Provider란?kubernetes provider는 Terraform이 기존 Kubernetes 클러스터 내부의 리소스를 코드로 선언하고 관리할 수 있게 해주는 플러그인입니다.예를 들어aw.. 2025. 7. 30.
AWS EKS terraform 에러 : https://oidc.eks.ap-northeast-2.amazonaws.com/id/... already exists. helm provider를 eks와 동시에 배포하니 EntityAlreadyExists: Provider with url https://oidc.eks.ap-northeast-2.amazonaws.com/id/... already exists.라는 문제 발생 발생원인enable_irsa = true → module.eks는 OIDC 리소스를 생성하게 됨동시에 Helm 리소스는 다음과 같이 module.eks의 출력을 참조함:provider "helm" { kubernetes { host = module.eks.cluster_endpoint cluster_ca_certificate = base64decode(module.eks.cluster_certificate.. 2025. 7. 28.
AWS EKS terraform 구성시 Launch Template을 구성해야할까 말아야할까? Access Remote를 eks module에 넣으려고하는데 별도로 등록하거나 Launch template을 false 해야하더라구요그래서 Launch Template에 대해 알아보려고 합니다. AWS EKS에서 NodeGroup을 구성할 때 한 번쯤 마주하는 질문:"Launch Template(LT)을 꼭 써야 할까?""안 쓰면 뭐가 안 되지? 쓰면 뭐가 더 좋아?"이번 글에서는 remote_access, 디스크 설정, AMI 고정 등의 관점에서Launch Template 사용 여부에 따라 무엇이 가능한지,그리고 실무에서는 어떤 전략으로 접근하는 게 좋은지 정리해보겠습니다. Launch Template 없이도 되는 것들EKS의 Managed Node Group은 기본적으로 AWS 내부에서 Launc.. 2025. 7. 26.
[aws eks terraform] Blocks of type "elastic_gpu_specifications" are not expected here. 에러 Terraform을 활용해 AWS EKS 클러스터를 구성하던 중 다음과 같은 에러를 마주쳤습니다:pgsql복사편집Error: Unsupported block type │ on .terraform\modules\eks\modules\eks-managed-node-group\main.tf line 136, in resource "aws_launch_template" "this": │ 136: dynamic "elastic_gpu_specifications" { │ │ Blocks of type "elastic_gpu_specifications" are not expected here.같은 형식의 에러가 elastic_inference_accelerator 블록에 대해서도 반복 발생했습니다.환경Terrafor.. 2025. 7. 24.
local에서 terraform lock 걸기 테라폼에서 외부 환경을 사용하지 못할경우 terraform lock 구성하기 어려울수 있다.그래서 local에 비슷하게 구성하는 방법이 있는데 그중에서 lock 서버를 따로 구성하는 방법을 사용해보기로 했다.(git을 사용하는방법 등이 있다.) Terraform을 로컬에서 실행할 때도,동일 환경에서 두 명 이상이 동시에 terraform apply 하지 못하도록간단한 중앙 서버(예: Redis, 파일서버 등)를 이용해 Lock을 걸고 해제하는 구조를 만든다.⚙️ 구성 아키텍처┌────────────┐ ┌──────────────┐ ┌────────────┐ │ User A │───▶│ Lock Server │◀─────│ User B ││ Terraform │ .. 2025. 6. 15.
[Terraform] aws eip 에러: Can't configure a value for "domain" terraform으로 eip생성하려고 공식문서에서 다음과 같이 입력하고 생성하였습니다. resource "aws_eip" "lb" { instance = aws_instance.web.id domain = "vpc" } 자동으로 이 값이 입력된다는 내용이네요 뭔가 싶어서 찾아보았습니다. (삭제하면 동작합니다.) vpc로 할당한다는 내용 이때까지만 해도 뭔 새로운 기능이 생겼나 싶었네요. https://awscli.amazonaws.com/v2/documentation/api/2.1.29/reference/ec2/allocate-address.html aws cli aws eip에 다음과 같이 할당하는 내용이 있어서 보았는데 EC2-classic 이라는 옵션이 따로 있더군요. 생각해보니 예전에 ec2가 업.. 2024. 1. 30.
[Terraform]테라폼에서 terraformer로 import후 plan 시 에러: The state file could not be read: read terraform.tfstate: The process cannot access the file because another process has locked a portion of the file. terraformer로 import한 폴더에서 terraform plan을 하니 다음과 같은 에러가 발생했다. The state file could not be read: read terraform.tfstate: The process cannot access the file because another process has locked a portion of the file. 그래서 terraform state mv 로 tfstate 정보를 다른곳에 옮겨서 plan을 해보았더니 정상적으로 동작하였다. import한것은 plan을 막아 놓은건지 아니면 terraformer에서 사용하는 상태로 적용되어 프로세스가 남아있다고 그런건지 확실하지는 않다. 2023. 8. 3.
terraform Error refreshing state: AccessDenied: Access Denied terraform init 하는데 에러 발생 AccessDenied 되어 있는데 state refresh가 안된다는것이므로 주소나 권한 문제일것이다. 권한의 문제는 없고 주소를 찾아보니 provider의 s3 주소가 제대로 적혀있지 않았다. 수정하니 정상적으로 init 되었다. 2023. 8. 2.
terraform destroy 없는데 리소스 있다고 계속 삭제 에러 aws_main_route_table_association.tfer--vpc-03f3fefcf250ad43c: Destroying... [id=rtbassoc-09f06760c3581eb6d] ╷ │ Error: deleting Main Route Table Association (rtb-0e8f2f41d4cbe59a0): MissingParameter: The request must contain the parameter routeTableId │ status code: 400, request id: a54be86b-40ad-45dc-85ed-4c7fdfb0ae56 │ │ ╵ main rtb association 을 살리고 죽여도 계속 삭제가 안됨 어차피 삭제 안할거라 파일 및 설정 없애고 tfstat.. 2023. 7. 31.
packer 설치 윈도우 powershell에서 실행하려고 했는데 hashcorp사가 대체적으로 linux 기반을 좋아하는것 같아 일찌감치 포기하고 wsl을 이용하기로했다. (환경설정이 잘안된다.) 아래 공식홈페이지에 굉장히 친절하게 설명이 되어있다. https://learn.hashicorp.com/tutorials/packer/get-started-install-cli Install Packer | Packer - HashiCorp Learn Packer must first be installed on the machine you want to run it on. learn.hashicorp.com gpg key 등록 curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo.. 2022. 10. 5.
반응형