terraform 4

Atlantis를 활용한 Terraform Pull Request 자동화 환경 구축

목차 개요 Terraform을 사용하는 초기에는 Local에서 혼자 사용하거나 여러 명이서 사용한다고 하더라도 규모가 작기 때문에 큰 무리가 없다. 그러나, 규모가 점점 늘어나고, 관리해야 하는 리소스가 복잡해지고, 협업을 고민하게 되면 다양한 방법을 찾아보게 될 것이다. Atlantis는 Terraform의 Pull Request를 자동화해주는 오픈소스 솔루션으로, Pull Request(Gitlab에서는 Merge Request)가 발생하면 자동으로 terraform (또는 terragrunt) plan을 해주고, apply도 comment로 가능하도록 지원해준다. 이를 사용하면 모두 동일한 버전의 형상을 사용할 수 있고, comment와 approve, notification 기능을 모두 활용할 수..

(2020-05-06) Automated Testing for Terraform, Docker, Packer, Kubernetes, and More

목차 Terraform, Docker, Packer와 같은 infrastructure code를 Terratest를 이용하여 테스트하는 방법을 소개해주는 강의이다. Terratest를 만든 gruntwork.io의 창업자 중 한명이 직접 강의하는 강의를 해주어서 그런지 설명을 쉽게 잘 해준다. Terraform 기준으로 내용을 정리하겠다. Static analysis (정적 분석) 배포 없이 코드를 테스트하는 것으로, 문법적, 일반적인 에러를 처리할 수 있다. 아래와 같은 카테고리로 분류할 수 있다. Compiler / Parser / interpreter Linter Dry run 1. Compiler / Parser / Interpreter terraform validate, packer valida..

[용어정리] CI/CD, BDD

목차 CI/CD, BDD Terraform & Jenkins Study를 하면서, CI/CD라는 용어를 접하게 되었고 (이미 AWS Well Architecture 등을 통해 많이 접하였지만) Terraform의 Testing Tool을 살펴보던 중 Terraform Compliance라는 툴을 통해 BDD라는 용어를 접하게 되었다. 이를 정리하고자 한다. CI(Continuous Integration) 지속적 통합은 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경 사항을 중앙 리포지토리에 정기적으로 병합하는 데브옵스 소프트웨어 개발 방식입니다. 지속적 통합은 소프트웨어 릴리스 프로세스 중 빌드 또는 통합 단계를 주로 가리키며, 자동화 구성 요소(예: CI 또는 빌드 서비스)와 문화적 구성 요..

Devops/CI, CD 2020.04.28

[DEVOPS] 빌드 자동화 환경 구축 일지 I

목표 1. Terraform을 Jenkins Pipeline을 통해 실행한다. 2. 여러 Account의 AWS 인증정보를 Vault를 통해 안전하게 관리한다. 3. 구축한 환경의 재현이 간단해야 한다. (Docker) 4. 추후 확장이 용이해야 한다. 구성요소 1. Docker - Vault, Consul, Jenkins를 기동시키는 역할 - Docker Compose를 통해 구성 2. Hashicorp Vault & safe - Safe를 통해 좀 더 쉽게 사용할 수 있다. - Vault KV를 통해 Credential 정보를 저장해두고, safe를 통해 Pipeline 중간에 get 해오는 방식으로 활용 - Storage Backend : Consul - Secret Backend : AWS 3. ..

Devops/CI, CD 2020.04.26