AWS

AWS Cloudformation을 활용한 인프라 구성

Joon0464 2021. 7. 6. 17:34

IaC

  • IaC란 Infrastructure as a Code의 약자로 IT 서비스를 위한 시스템을 구성할 때 수동으로 구성하는 대신 shell 기반 스크립트를 사용하여 컴퓨팅 인프라를 구성하는 기술이다.
  • Ansible, Puppet, Chef, Cloudformation, Terraform, SALTSTACK 등이 이에 해당된다. 

CloudFormation

  • Amazon Web Service 리소스를 모델링하고 설정하여 관리 시간을 줄이고, AWS에서 실행되는 애플리케이션에 더 많은 시간을 사용하도록 해주는 IaC 기반의 구성 조정 도구이다.
  • 템플릿을 작성하면 CloudFormation이 리소스를 프로비저닝 및 구성한다.
  • JSON, YAML을 사용하여 템플릿 작성
  • 추가 요금 없이 리소스에 대한 사용 비용만 지불

CloudFormation 사용 장점

    • 리소스들을 스택단위로 관리하기 때문에 인프라 관리가 간소화된다.
    • 여러 리전에 신속하게 인프라를 복제 가능하다.
    • 인프라의 변경 사항을 쉽게 제어 및 추적이 가능하다

구성 요소

Template 스택 리소스 프로비저닝 및 구성을 위해 필요한 파일
JSON 또는 YAML 형식 텍스트 파일로 작성
CloudFormation 스택에서 프로비저닝할 리소스
CloudFormation Stack을 생성하고 Stack에 대한 변경 사항을 확인 및 업데이트
Stack 생성 및 업데이트 중 에러 감지를 통한 롤백 지원
Stack 하나의 단위로 관리할 수 있는 AWS 리소스의 모음
스택의 생성, 수정, 삭제를 통해 리소스 모음을 생성, 수정, 삭제 가능
스택을 삭제하면 관련 리소스가 모두 삭제됨

 

 

AWS Cloudformation Template 구성 사항

  • Metadata: 템플릿에 대한 추가 정보
  • Parameter: 템플릿 실행 시 전달할 파라미터 값
  • Mappings: 템플릿 실행 시 선택하게 되는 값(특정 리전, 인스턴스)
  • Conditions: 특정 자원에 대한 생성 여부를 판단하는 조건
  • Transform: Serverless 애플리케이션용
  • Resource: 생성될 AWS 리소스를 나열, 필수사항
  • Outputs: 템플릿 실행후 외부 다른 템플릿에서 참조하기 위해 내보낼 값을 지정

 

직접 작성한 CloudFormation YAML 파일

https://github.com/thdguswns3/TicketingProject

 

thdguswns3/TicketingProject

TicketingProject. Contribute to thdguswns3/TicketingProject development by creating an account on GitHub.

github.com

프로젝트중에 직접 작성한 yaml 파일이다.

해당 yaml 파일은 일부 값이 계정이나 리전에 맞게 작성되어 있기 때문에 실행하면 일부 오류가 발생할 수 있다. 오류가 출력되면 그 부분은 본인이 선택한 리전과 계정에 맞게 수정해야 사용이 가능하다.