장점
- Provider Console 에 직접 로그인할 필요 없이 서버 운영 및 관리가 모두 자동화 가능
- 사람이 GUI 방식으로 수동 작업하는 것보다 빠르게 배포가 가능함
- 소스코드로 관리되기 때문에 일관성을 보장하고 휴먼에러 예방 가능
단점
- Terraform 으로 작성되지 않은 AWS 인프라스트럭처를 Terraform 으로 Migration하기 어려움
- 배포 전략이 제한적
- Terraform은 테스트 환경 구축에 적합하지 않습니다. Terraform을 사용하여 테스트 환경을 구축하려면 매번 인프라스트럭처를 배포하고, 테스트를 완료한 후 인프라스트럭처를 삭제해야 합니다.
- 복잡한 배포 전략을 처리하기에는 제한적이다. 예를 들어, 다수의 인스턴스를 사용하는 고가용성 애플리케이션을 배포할 때에는 Terraform 만으로는 충분하지 않다. 이 경우 AWS Elastic Beanstalk나 Kubernetes와 같은 도구를 사용해야 한다.
- 러닝 커브
- plan과 apply 명령어의 차이
- plan에서는 성공하지만 현재 state에 따라서 apply는 실패할 수 있음
- 프로젝트 규모가 커질수록 배포 시 점점 느려짐