이번 프로젝트를 하면서 terraform 이라는 기술을 적용해보기로 하였다.
terrafrom 을 학습을 하기 위해


해당 강의와 책을 학습 하고 있으며,
그럼 terraform 이 무엇인지 알아보도록 하겠다.
IAC(Infrastructure as Code) 즉 수동 프로세스가 아닌 코드를 통해 인프라 관리 프로비저닝 하는 방법이다.
즉 기존 인프라를 자동화 하기 위해서는 문서화 및 인프라 종속성을 분석 관리 하고 다시 사용할 수 있게 해야 했는데 이러한 복잡한 과정 대신 좋은 코드 좋은 인프라 자동화 방식으로 이어주도록 만들어 주는것이 Iac 이다.


기존 프로비저닝
- 서비스 확장시 단순 반복 작업 및 많은 인력 소모
- 각 담당자가 수동으로 진행하여 발생하는 에러 또는 작업 실수 처리 필요
- 최소 2일 에서 최대 일주일 소요
테라폼 프로비저닝
- 단순 반복 작업을 코드로 표준화하고 정의
- 사용자 요청시 준비된 코드를 바로 실행 가능
- 미리 검증된 구성으로 인프라 배포 및 서비스 구성
- 실행 시 즉시 수행 및 최종 사용자 즉각 확인 가능
IaC 도입의 긍정적인 측면
- 속도와 효율성: 사람이 수동으로 작업 할 때보다 빠르고 불필요한 인프라 구성을 방지하여 생산성을 높인다. 또는 코드를 변경하여 적용하면 인프라도 변경되어 기존 방식보다 변경 속도가 빠르다.
- 버전 관리:코드 형태로 관리하기 때문에 버전관리 툴과 연계할 수 이싿. 변경 내용을 추적하고 이전 코드로 되돌리거나 비교할 수 있다.
- 협업: 파일 형태로 되어 있어 쉽게 공유할수 있고, 버전 관리 툴과 연계하면 공동 작업을 위한 환경을 만들 수 있다.
- 재사용성: 코드의 주요 반복 또는 표준화된 구성을 패키징하면 매번 새로 코드를 구성하지 않고 기존 모듈을 활용해 배포할수 있다.
- 기술의 자산화: 관리 노하우와 작업 방식이 코드에 녹아 있고, 파이프라인에 통합해 워크플로 형태로 자산화되어 기술 부채를 제거한다.
테라폼의 특성
테라폼은 크게 워크플로에 집중, 코드형 인프라, 실형 주의다
- 워크플로: 어떤 기술이 사용되더라도 테라폼은 위크플로를 통해 환경 변화에 크게 구애 받지 않도록 설계외었다.
- 코드형 인프라: 구현 되거나 구성되는 모든것이 코드로 표현되어야한다.
- 실용주의: 실용주의를 통해 새로운 아이디어와 접근 방식, 기술을 다시 평가하고 타협이 아닌 이전의 것이 틀릴수 있다는 사실을 받아들이는 적응 능력은 혁신에 있어 매우 중요하다.
테라폼 제공 유형
- On-premis
- Hosted Saas
- Private Install