AWS CloudFormation - AWS의 DevOps 소개

AWS CloudFormation

AWS CloudFormation은 개발자가 정돈되고 예측 가능한 방식으로 AWS 리소스를 생성할 수 있게 해주는 서비스입니다. 리소스는 JavaScript Object Notation(JSON) 또는 Yet Another Markup Language(YAML) 형식을 사용하여 텍스트 파일로 작성됩니다. 템플릿에는 생성 및 관리되는 리소스 유형에 따라 달라지는 특정 구문 및 구조가 필요합니다. AWS Cloud9와 같은 코드 편집기를 사용하여 JSON 또는 YAML로 리소스를 작성하고 버전 관리 시스템에 체크인하면 CloudFormation이 지정된 서비스를 안전하고 반복 가능한 방식으로 구축합니다.

CloudFormation 템플릿은 AWS 환경에 스택으로 배포됩니다. AWS 관리 콘솔, AWS Command Line Interface 또는 AWS CloudFormation API를 통해 스택을 관리할 수 있습니다. 스택에서 실행 중인 리소스를 변경해야 하는 경우 스택을 업데이트합니다. 리소스를 변경하기 전에 제안된 변경 사항이 요약된 변경 세트를 생성할 수 있습니다. 변경 세트를 사용하면 변경 사항을 구현하기 이전에 해당 변경이 실행 중인 리소스 특히, 중요 리소스에 미치는 영향을 확인할 수 있습니다.

그림 1

그림 1 - 하나의 템플릿 워크플로에서 전체 환경(스택)을 생성하는 AWS CloudFormation

단일 템플릿을 사용하여 전체 환경을 생성 및 업데이트하거나 개별 템플릿을 사용하여 환경 내의 여러 계층을 관리할 수 있습니다. 이를 통해 템플릿을 모듈화할 수 있으며 많은 조직에 중요한 거버넌스 계층도 제공할 수 있습니다.

콘솔에서 스택을 생성하거나 업데이트하면 구성 상태를 보여 주는 이벤트가 표시됩니다. 오류가 발생하면 기본적으로 스택이 이전 상태로 롤백됩니다. Amazon Simple Notification Service(Amazon SNS)는 이벤트에 대한 알림을 제공합니다. 예를 들어 Amazon SNS를 사용하면 이메일을 통해 스택 생성 및 삭제 진행 상황을 추적하고 프로그래밍 방식으로 다른 프로세스와 통합할 수 있습니다.

AWS CloudFormation을 사용하여 간편하게 AWS 리소스 모음을 정리하고 배포할 수 있으며 스택을 구성할 때 전달할 특수 파라미터와 모든 종속성을 설명할 수 있습니다.

CloudFormation 템플릿을 사용하면 Amazon S3, Auto Scaling, Amazon CloudFront, Amazon DynamoDB, Amazon EC2, Amazon ElastiCache, AWS Elastic Beanstalk, Elastic Load Balancing, IAM, AWS OpsWorks 및 Amazon VPC와 같은 다양한 AWS 서비스로 작업할 수 있습니다. 지원되는 리소스의 최신 목록은 AWS 리소스 및 속성 유형 참조를 참조하세요.