안녕하세요, 와탭랩스 DevOps팀 최정민 입니다.
AWS는 훌륭한 GUI와 CLI를 지원하여, 사용자들로 하여금 클릭 몇 번으로 시스템을 구축하는 것이 가능하게 합니다.
하지만, 이러한 AWS에서도 시스템이 복잡해지면서 리소스를 관리, 복제 등이 어려워지는 문제들이 생겨나고 있었습니다.
이러한 문제를 겪는 기업에는 AWS CloudFormation이 적절한 해답이 될 수 있을 것 같습니다.
AWS CloudFormation이란 AWS 리소스를 모델링, 설정하여 리소스 관리 시간을 줄이고, AWS에서 실행될 애플리케이션 개발에 더 많은 시간을 쏟을 수 있게 해주는 대표적인 IaC 도구입니다.
IaC란?
Infra-structure as a Code의 줄임말로 Infra를 코드를 통해 관리하고 프로비저닝 하는 것
작성의 난이도가 조금 있으나, 한번 작성해두면 인프라 관리/복제 등을 편하게 할 수 있습니다.
AWS 리소스를 설명하고 프로비저닝 해주는 Template는 JSON 또는 YAML 형식으로 작성이 가능합니다.
Template를 작성한 뒤, AWS CloudFormation 스택생성만 하면 미리 Template에 정의된 리소스가 자동적으로 생성됩니다.
다양한 리소스가 결합된 인프라를 구축할 때는 AWS CloudFormation에서 지원하는 Designer를 사용하는 것이 편리한 경우가 많습니다.
Drag & Drop 방식으로 리소스를 구성한 뒤, 리소스 설정만 기입해주면 되는 방식입니다.
TIP : Desiner에서는 리소스의 설정 목록을 볼 수 있음
위 그림은 AWS 에서 Sample로 제공되는 AWS Virtual Waiting Room Template를 참고해, 핵심 기능만 간소화한 템플릿입니다. 해당 템플릿으로는 수강 신청, 티켓팅 대기열과 같은 시스템을 구성할 수 있습니다.
다른 공간에서 대기열시스템이 필요할 때, 처음부터 구성하지 않아도 됩니다!!
일회성인 인프라는 사용하지 않는 게 효율적일 수도 있습니다.
AWS CloudFormation을 사용한 결과 수많은 리소스를 코드로 한번에 관리, 복제할 수 있다는 것은 확실한 장점입니다. 하지만 복잡한 시스템을 코드로 정리하는 것이 쉽지 않은데요. 그렇기에 AWS CloudFormation을 도입하기에 앞서 충분한 고민과 회사의 시스템에 대한 이해가 필요할 것 같습니다.