1. Terraform 개요
- Terraform은 인프라스트럭처를 코드로 정의하고 관리할 수 있게 해주는 강력한 IaC(Infrastructure as Code) 도구입니다.
- 사람이 읽을 수 있는 설정 파일을 통해 인프라를 정의하고, 이를 버전 관리하고, 재사용하며, 공유할 수 있습니다.
2. 주요 활용 사례
2.1 멀티 클라우드 배포
- 멀티 클라우드 환경은 클라우드 제공자의 장애에 대한 내결함성을 높여주지만, 각 제공자마다 다른 인터페이스와 도구를 사용해야 하는 복잡성이 있습니다.
- Azure와 AWS 환경에서 쿠버네티스 클러스터 프로비저닝
- Consul 페더레이션을 통한 클러스터 간 연결
- 마이크로서비스의 크로스 클라우드 배포
정보
Terraform을 사용하면 단일 워크플로우로 여러 클라우드 제공자를 관리하고 클라우드 간 종속성을 처리할 수 있습니다.
2.2 애플리케이션 인프라 관리
- N-계층 애플리케이션 아키텍처에서 각 컴포넌트를 독립적으로 확장하고 관리해야 할 때 Terraform이 특히 유용합니다.
- 웹 서버 풀의 자동 확장
- 데이터베이스 계층 관리
- API 서버, 캐싱 서버, 라우팅 메시 구성
- 계층 간 종속성 자동 처리
2.3 셀프 서비스 클러스터
- 대규모 조직에서 중앙화된 운영팀이 받는 반복적인 인프라 요청을 자동화할 수 있습니다.
- 주요 기능
- 재사용 가능한 인프라 모듈 생성
- ServiceNow와 같은 티켓팅 시스템과 통합
- HCP Terraform을 통한 중앙화된 관리
팁
Terraform 모듈을 통해 조직의 표준을 코드화하여, 각 팀이 독립적으로 인프라를 관리하면서도 조직의 규정을 준수할 수 있습니다.
2.4 정책 준수 및 관리
- Terraform Enterprise와 HCP Terraform에서 제공하는 Sentinel을 통해 인프라 변경 전에 정책 준수를 자동으로 검증할 수 있습니다.
경고
수동적인 티켓 기반 검토 프로세스는 개발 속도를 늦출 수 있습니다. 정책을 코드로 관리하면 이러한 병목 현상을 해결할 수 있습니다.