[AWS] AWS CloudFormation 이란? - 1

비전·2025년 1월 9일

AWS 실습

목록 보기
41/54
post-thumbnail

AWS CloudFormation은 AWS 리소스를 선언적으로 정의하고 자동으로 배포할 수 있는 도구입니다. 이 도구는 템플릿을 사용하여 AWS 인프라를 관리할 수 있게 해주며, 여러 리소스를 효율적으로 배포하고 구성할 수 있도록 도와줍니다.

CloudFormation을 사용하면 복잡한 인프라 구성을 손쉽게 자동화할 수 있습니다.

비유

쉽게 생각한다면 식당에서 알바생이 기본 밑반찬을 서빙해야 합니다.
이때 쟁반에 반찬들을 미리 세팅해 둔다면, 손님이 들어왔을 때 쟁반을 그대로 가지고 나가면 됩니다. 이것이 CloudFormation입니다.

1. CloudFormation의 동작 방식

CloudFormation은 선언적 방식으로 인프라를 관리합니다. 즉, 사용자는 CloudFormation 템플릿에 원하는 리소스를 정의하고, 이 템플릿에 따라 AWS 리소스를 자동으로 배포할 수 있습니다. 예를 들어, 템플릿에 다음과 같이 기술할 수 있습니다
1. 보안 그룹(Security Group) 을 생성하고
2. EC2 인스턴스 두 개를 생성하여 해당 보안 그룹을 연결하며
3. 이 EC2 인스턴스에 연결할 Elastic IP 두 개를 생성합니다.
4. S3 버킷을 생성하고
5. 로드 밸런서(ELB) 를 사용하여 EC2 인스턴스 앞에 배치합니다.

CloudFormation은 템플릿에 정의된 리소스를 정확한 순서구성으로 생성합니다. 이를 통해 수동으로 작업할 때 발생할 수 있는 오류를 최소화하고, 효율적인 리소스 배포가 가능합니다.


2. CloudFormation의 특징

1. 자동화된 리소스 관리

CloudFormation은 리소스를 자동으로 생성하고 관리합니다. 예를 들어, EC2 인스턴스와 그에 대한 Elastic IP를 자동으로 할당해주므로 사용자는 수동으로 설정할 필요가 없습니다

2. 재사용 가능한 템플릿

CloudFormation 템플릿은 한 번 작성한 후 여러 환경(개발, 테스트, 프로덕션)에서 재사용이 가능합니다. 템플릿을 통해 환경을 일관되게 구축할 수 있습니다

3. 의존성 관리

복잡한 인프라를 정의할 때 각 리소스 간의 의존성을 자동으로 처리합니다. 예를 들어, 로드 밸런서를 EC2 인스턴스 앞에 배치하려면 로드 밸런서가 먼저 생성되고, 그 후에 EC2 인스턴스가 생성됩니다. 이러한 순서는 CloudFormation이 자동으로 처리합니다


3. CloudFormation 사용의 장점

  • 효율성: 수동으로 리소스를 설정하는 번거로움 없이, CloudFormation 템플릿을 사용하여 자동화된 배포를 구현할 수 있습니다.
  • 오류 감소: 수동 설정 과정에서 발생할 수 있는 실수를 줄여주고, 템플릿을 통해 정확한 구성을 보장합니다.
  • 버전 관리 및 추적: 템플릿은 코드로서 관리되므로, 변경 이력을 추적하고 버전 관리가 가능합니다.

4. 템플릿 예시

왼쪽을 보면 템플릿과 코드가 나와 있습니다. 선언적인 방식으로 인프라를 구성할 내용을 포함하게 될것입니다.

그 다음 Infrastructure Composer를 이용하여 인프라를 시각화 해줍니다.

profile
아는 만큼 보인다

0개의 댓글