해당 내용은 cloudNet@ 팀의 가시다 님이 진행하는 테라폼 스터디 T101 4기에서 다룬 내용과 "테라폼으로 시작하는 IaC" (한빛미디어) 저서 내용을 정리한 것입니다.
1. 인프라 자동화의 성숙도 변화
인프라 운영 | 장점 | 단점 | |
1단계 | 매뉴얼 | 물리적인 특성으로 즉시 확인 및 즉시 전달 가능 |
변경사항 반영이 힘들고,실행을 위한 별도 구성 요소들을 따로 관리해야 한다. |
2단계 | 스크립트 | 반복 작업을 줄이고 사용이 간단하다. |
순차적으로 실행되고 시간이 지나면서 최종상태가 일치하지 않음. |
3단계 | 가상 머신(VM) | 미리 구성된 템플릿을 사용하여 관리와 확장이 용이하다. | 가상화 범위 외적인 요소는 자동화가 불가능하고 하이퍼바이저에 의존적이다. |
4단계 | 클라우드 | API를 통해 더 많은 인프라를 가상화하고 자동화 도구 제공 | 클라우드 제공자마다 서로 상이한 API가 제공되어 각각을 위한 개별적 작업 필요 |
5단계 | 컨테이너 | 상호 호환되는 컨테이너 런타임을 통해 서비스 배포 자동화 및 높은 이동성 | 앱 배포 자동화를 위한 추가 플랫폼 레이어의 관리 추가 |
2. IaC (Infrastructure as Code) 의 이해
- 사용자 인터페이스(UI)나 커맨드를 이용한 수동 조작이 아닌 코드로 인프라를 관리하는 도구
- 코드로 인프라를 관리한다는 것은 자유롭게 변경하고, 환경을 이해하고, 반복적으로 동일한 상태를 만들 수 있다는 것이다.
IaC 도입의 장점
- 속도와 효율성
수동작업보다 빠르고, 불필요한 인프라 구성을 방지하여 생산성을 높인다. - 버전 관리
코드 형태로 관리하기 때문에 버전 관리 툴과 연계할 수 있다. 변경 내용을 추적하고 이전 버전으로 되돌리기 편하다. - 협업
파일 형태로 쉽게 공유가 가능하고, 공동 작업을 위한 환경을 구성할 수 있다. - 재사용성
코드의 주요 반복 또는 표준화된 구성을 패키징하면 새로 코드를 구성하지 않고 기존 모듈로 배포가 가능하다. - 기술의 자산화
관리 노하우와 작업 방식이 코드에 녹아 있고, 파이프라인에 통합해 워크플로 형태로 자산화되어 기술 부채를 제거한다.
IaC 도입의 한계점
- 코드 문법학습
새로운 도구의 학습에 대한 러닝커브가 존재한다. - 파이프라인 통합
기존 워크플로에 자동화를 위한 수고가 추가로 필요하다. - 대상 인프라에 대한 이해 필요
관리 대상이 되는 인프라에 관한 지식이 어느 정도 필요하다.
3. 테라폼이란?
하시코프사(HashiCorp)에서 공개한 Go 언어로 개발된 IaC 도구.
하시코프의 철학 3가지를 담아서 설계되었다.
- 워크플로우에 집중
- 코드형 인프라 (IaC)
- 실용주의
테라폼 제공 유형
- Terraform
- Terraform Cloud
- Terraform Enterprise
Terraform Core (기본 기능) | Terraform Cloud / Enterprise | ||
Infrastructure as Code(HCL) 워크스페이스 입력 변수 Runs(Plan & Apply) State 리소스 종속성 관리 프로바이더 사용 공개된 모듈 레지스트리 사용 |
[협업을 위한 기능] Remote State VCS 연동 워크스페이스 관리 민감 변수 저장소 API 팀 관리 프라이빗 모듈 저장소 SAML, SSO |
[거버넌스와 정책] 코드기반 정책(PaC) 비용 추정 Run Task Audit |
[셀프 서비스 인프라 기능] 구성 디자이너 No-code 인프라 편차 추적 Service Now 연동 |
'DevOps' 카테고리의 다른 글
[T1014-이론] 3장 기본 사용법 (4) (0) | 2024.06.22 |
---|---|
[T1014-이론] 3장 기본 사용법 (3) (0) | 2024.06.20 |
[T1014-이론] 3장 기본 사용법 (2) (0) | 2024.06.19 |
[T1014-이론] 3장 기본 사용법 (1) (1) | 2024.06.16 |
[T1014-이론] 2장 실행 환경 구성 (0) | 2024.06.14 |