# CloudFormation
AWS에서 워크로드를 배포하는 다양한 방법이 있다. 그 중 대규모로 인프라를 배포하고 관리하는 서비스가 매우 유용한데, CloudFormation이 대표적인 서비스이다.
CloudFormation은 aws 인프라의 모든 리소스에 대해 개략적인 윤곽을 잡아줄 수 있는 선언적인 방식이다. aws의 대부분의 리소스를 지원한다.
구체적인 예시를 들어 CloudFormation을 이해해보자면,
사용자는
- 보안 그룹을 원한다
- 2개의 EC2 인스턴스가 해당 보안 그룹을 사용한다
- S3 버킷도 원한다
- 위의 머신들 앞에 로드밸런서를 두고 싶다
이런 요구사항들이 있을 때, CloudFormation이 자동으로 순서에 맞게, 사용자가 지정한 구성에 맞춰 리소스들을 만들어준다.
# CloudFormation의 이점
- Infrastructure as Code
- CloudFormation에서는 모든 인프라를 코드로 관리한다.
-> 따라서 사용자가 리소스를 수동으로 만들 필요가 없다
- 인프라에 변화가 있을 때 마다, 코드 리뷰를 통해 검토된다.
-> 클라우드에서 작동하기 좋은 방식! - 비용 절감 효과
- 스택 내 각 리소스는 태그로 구분된다
-> 리소스의 비용을 쉽게 확인 가능
- CloudFormation의 템플릿을 사용하여, 리소스 비용 절감할 수 있다
ex) 절약 전략으로, 오후 5시에 모든 템플릿에 연결된 모든 리소스들을 자동으로 삭제하고, 오전 8시에 다시 만들 수 있다.
오후 5시-오전 8시 사이에 리소스가 없어 비용을 절약할 수 있다. - 생산성
- CloudFormation을 이용하여 리소스를 만들고 지우기 쉽다
-> 이 부분은 클라우드의 원칙과도 통함
- 템플릿에 관한 도식을 자동으로 생성해준다
- 선언적 프로그래밍
ex) EC2 인스턴스에 먼저 DynamoDB 테이블을 만들어야 하는지, 동시에 만들어야 하는지 등을 사용자가 파악할 필요가 없다. 템플릿이 알아서 처리함
- 기존 템플릿을 이용하여 레버리징할 수 있다
# CloudFormation Stack Designer
CloudFormation에서 무엇이 만들어졌는지 도식으로 볼 수 있다.
어떤 구성 요소가 있는지(예를 들어 보안 그룹, 로드 밸런서, 실행 구성, RDS용 데이터베이스 인스턴스, 오토스케일링그룹 등) 확인할 수 있으며, 구성 요소간의 관계도 확인할 수 있다.
이렇게 CloudFormation에 대해 정리해보았다. 정리하자면, CloudFormation은 코드로 인프라를 관리하며, 아키텍처를 다른 환경, 리전, 다른 AWS 계정에서 반복해야 할 때 유용한 서비스이다.
'AWS' 카테고리의 다른 글
Elastic Beanstalk으로 쉽게 구현하는 3-티어 웹 앱 아키텍처 (0) | 2025.03.25 |
---|---|
Cloud Development Kit - 프로그래밍 언어로 클라우드 설계 (0) | 2025.03.24 |
Amazon Lightsail - 클라우드 입문자를 위한 컴퓨팅 서비스 (0) | 2025.03.22 |
AWS Batch - 배치 작업 자동화, Lambda와 비교 (0) | 2025.03.21 |
API Gateway - 서버리스 API 쉽게 구축하기 (0) | 2025.03.20 |