목록IaC/terraform (13)
근묵자흑

IntroTerraform을 업무 환경에서 사용하면서 여러 의문점이 생겨났습니다. Terraform은 IaC(Infrastructure as Code) 도구이지만, 실제로는 '코드'로서 대하지 못하는 경우가 많았습니다. 구성원들 사이에 코드 리뷰가 부족하고, 변경 이력 관리가 어려웠으며, 초기 환경 구성 후 콘솔에서 수작업으로 변경하는 경우도 많았습니다.이번 글에서는 Terraform 코드를 여러 구성원이 함께 효과적으로 관리할 수 있게 해주는 Atlantis를 소개하고, Kubernetes 환경에서 Helm을 사용해 배포하는 방법을 알아보겠습니다.또한, Github Pull Request를 통한 협업 워크플로우에 대해 설명하겠습니다.Atlantis란?Atlantis는 Pull Request를 통해 Te..

소개Terraform은 강력한 Infrastructure as Code(IaC) 도구이지만, 팀 단위에서는 체계적인 관리가 필요합니다. 이 글에서는 팀에서 Terraform을 효과적으로 활용하는 방법에 대해 알아보겠습니다.목차코드형 인프라(IaC) 도입애플리케이션 코드 vs 인프라 코드 워크플로우팀 단위 Terraform 관리 전략Atlantis를 활용한 자동화실전 적용 가이드1. 코드형 인프라(IaC) 도입버전 관리의 중요성모든 인프라 코드는 버전 관리 시스템에서 관리되어야 합니다:Terraform 설정 파일문서(README.md)환경 설정 파일테스트 코드데이터베이스 스키마저장소 구조infrastructure/├── modules/ # 재사용 가능한 모듈│ ├── networ..
테라폼(Terraform)으로 인프라를 관리할 때 코드의 품질과 안정성을 보장하기 위해서는 체계적인 테스트 전략이 필요합니다. 이 글에서는 다양한 테스트 방법과 실제 구현 예제를 살펴보겠습니다.1. 자동화된 테스트테라폼 코드의 자동화된 테스트를 시작하기 위해, Ruby 웹 서버 예제를 통해 기본 개념을 이해해보겠습니다. 통합 테스트를 위해서는 다음과 같은 단계가 필요합니다:localhost에서 웹 서버를 실행하여 포트 리스닝웹 서버에 HTTP 요청 전송예상한 응답이 오는지 검증def do_integration_test(path, check_response) port = 8000 server = WEBrick::HTTPServer.new :Port => port server.mount '/', Web..

https://developer.hashicorp.com/terraform/tutorials/configuration-language/test 블로그를 기반으로 작성된 블로그입니다.소개Terraform 테스트를 사용하면 기존 상태 파일이나 리소스에 영향을 주지 않고도 모듈 구성을 검증할 수 있습니다. 테스트는 plan이나 apply 워크플로우와는 별개의 작업으로, 임시 인프라를 구축하고 이러한 단기 리소스의 인메모리 상태에 대해 테스트를 수행합니다. 이를 통해 인프라에 영향을 주지 않고도 모듈 변경사항을 안전하게 검증할 수 있습니다.테스트와 검증의 차이검증(Validation): 변수 검증, 사전/사후 조건, 체크 블록 등은 배포된 인프라의 유효성을 확인합니다. 검증이 실패하면 모듈 사용자가 해결해야 합..
이 블로그는 https://developer.hashicorp.com/terraform/language/tests/mocking 페이지를 정리해 둔 블로그 입니다.참고: Test mocking은 Terraform v1.7.0 이상에서 사용 가능합니다. Terraform은 테스트를 위해 provider, resource, data source를 mock할 수 있게 해줍니다. 이를 통해 실제 인프라를 생성하거나 자격 증명이 필요하지 않고도 모듈의 일부를 테스트할 수 있습니다. Terraform 테스트에서 mock된 provider나 resource는 일반적으로 기본 provider API에서 제공하는 모든 computed 속성에 대해 가짜 데이터를 생성합니다. Mocking 기능은 terraform test..
1. 프로덕션 수준 인프라 구축에 오랜 시간이 걸리는 이유DevOps 산업의 성숙도프로덕션 수준 인프라 구축이 오래 걸리는 첫 번째 이유는 DevOps 산업이 아직 초기 단계이기 때문입니다:클라우드 컴퓨팅, IaC, DevOps 등의 용어는 2000년대 중후반에 등장테라폼, 도커, 패커, 쿠버네티스는 2010년 중후반에 출시기술이 아직 충분히 성숙하지 않았고, 경험 많은 전문가가 부족DevOps 산업의 현재 상태 (2025)시스템 복잡도 증가마이크로서비스 아키텍처의 보편화멀티클라우드/하이브리드 환경 요구 증가보안 요구사항의 지속적 강화규제 요구사항의 복잡화높아진 기대치제로 다운타임에 대한 요구즉각적인 확장성 기대완벽한 보안과 규정 준수비용 최적화 요구통합의 어려움레거시 시스템과의 연동다양한 도구들 간의 ..