흰 스타렉스에서 내가 내리지

AWS CloudFormation vs Terraform ? 본문

AWS

AWS CloudFormation vs Terraform ?

주씨. 2024. 9. 13. 19:30
728x90

AWS CloudFormation 과 Terraform 은 모두 인프라를 코드(IaC) 로 정의하는 도구이다. 

두 도구 모두 AWS 리소스를 프로비저닝하고 관리하는 데 사용되지만, 각각의 특성과 장단점이 존재한다. 

 

CloudFormation 을 선택했을 때 장점

1. AWS 에 최적화된 서비스 

CloudFormation 은 AWS 에서 제공하는 네이티브 IaC 도구이다. 

AWS 의 새로운 서비스나 기능이 출시되었을 때 CloudFormation 이 가장 빠르게 지원을 받는다는 것이 큰 장점이다. 

반면 Terraform 은 오픈소스 커뮤니티 기반으로 개발되므로, AWS 업데이트에 대응하는 데 시간이 조금 더 걸릴 수 있다.

 

2. AWS 관리 콘솔과의 통합 

CloudFormation 은 AWS Management Console 과 통합 기능이 뛰어나다. 

특히, CloudFormation Designer 라는 시각적 설계 도구를 통해 드래그 앤 드롭 방식으로 리소스를 정의할 수 있으며, 스택(Stack) 상태와 변화를 AWS 콘솔에서 직관적으로 확인할 수 있다. 

또한, Drift Detection 기능을 통해 리소스가 템플릿 정의와 실제 배포 상태가 일치하는 지 자동으로 확인할 수 있어, 리소스 관리를 더욱 수월하게 만든다. 

 

3. 여러 리전 및 계정 간 리소스 관리

CloudFormation 의 StackSets 기능은 여러 리전 및 계정에 걸쳐 일관된 리소스를 배포할 때 매우 유용하다. 

 

4. AWS 공식 지원

CloudFormation 은 AWS 에서 제공하는 공식 서비스인 만큼, AWS 기술 지원팀의 직접적인 지원을 받을 수 있다. 

 

 

CloudFormation 을 선택했을 때 단점

1. 멀티클라우드 지원의 부족 

CloudFormation 은 AWS 에만 특화된 서비스이나, Terraform 은 멀티클라우드 환경을 지원한다. 

AWS, Azure, GCP, 온프레미스 환경까지 관리할 수 있는 Terraform 에 비해, CloudFormation 은 AWS 에만 국한된다는 점에서 제약이 있을 수 있다. 

 

2. 복잡한 템플릿 관리 

CloudFormation 은 복잡한 리소스 구조가 필요할 때 템플릿 파일이 매우 길어질 수 있다. 이로 인해 가독성과 유지보수가 어려워 질 수 있다. 

그러나 Terraform 은 모듈화와 변수 활용이 더 잘되어 있어 코드의 재사용성과 관리 측면에서 더 유리한 경우가 많다. 

 

 

결론 : 언제 CloudFormation 을 선택할까?

CloudFormation 은 AWS 전용 인프라 관리에 특화된 도구로, AWS 와의 통합성, 보안 및 IAM 관리, AWS 콘솔과의 시각적 통합 면에서 뛰어나다.

특히, 여러 리전 및 계정에 걸쳐 리소스를 일관되게 배포해야 하거나, AWS 의 최신 기능을 가장 빠르게 활용하고 싶은 경우에 적합하다. 

 

하지만, 멀티클라우드 환경을 고려하고 있거나, 인프라 코드의 유연성과 상태 관리의 제어가 중요한 경우에는 Terraform 이 더 적합할 수 있다.