자동화가 필요한 이유

✅ 확장 불가

수동으로 개별 구성 요소를 생성하여 환경에 추가할 경우 확장이 불가능합니다. 또한 대규모의 기업에서 애플리케이션을 담당하고 있는 경우, 수동으로 이러한 작업을 처리할 인력은 충분하지 않습니다.

✅ 버전 제어 없음

아키텍쳐 및 애플리케이션을 처음부터 생성하면 내재된 버전 관리가 없습니다. 비상 시, 프로덕션 스택을 이전 버전으로 롤백하는 것이 유용하지만, 수동으로 환경을 생성할 경우 이것이 불가능합니다.

✅ 감사 내역 부족

감사 추적 기능은 많은 규정 준수 및 보안 상황에서 매우 중요합니다. 사람들이 수동으로 환경을 제어하고, 편집하도록 허용하는 것은 위험합니다.

✅ 일관성 없는 데이터 관리

위험을 최소화하기 위해서 일관성이 매우 중요합니다. 자동화는 일관성을 유지할 수 있다는 장점이 있습니다.

⚙️ 인프라 자동화

[ IaC(Infrastructure as Code) ]

리소스를 안전하고 반복 가능한 방식으로 프로비저닝하므로, 수동 작업을 수행하거나 사용자 지정 스크립트를 작성할 필요없이 인프라와 애플리케이션을 구축 및 재구축할 수 있습니다. 또한, 인프라를 코드로 취급하면서 원하는 코드 편집기를 통해 코드를 작성하고, Github와 같은 버전 관리 시스템에 체크인하고, 적절한 환경에 배포하기 전에 팀원들과 파일을 검토할 수 있습니다.

대표적인 툴 : CloudFormation, Terraform

  • 템플릿(Template)

    템플릿은 특정 환경에 배포될 리소스를 설명 및 정의하는 파일입니다.

  • 스택(Stack)

    IaC 툴을 이용해서 템플릿을 처리한 결과로, 배포되는 클라우드 리소스의 모음입니다.

🔧 배포 자동화

대표적인 툴 : CHEF, AWS OpsWorks, puppet

배포 자동화를 구현하면 자동화된 프로세스에 따라 테스트 환경과 프로덕션 환경 간에 소프트웨어를 이동할 수 있게 됩니다. 따라서 소프트웨어 제공 주기 전반에 걸쳐 배포를 반복할 수 있습니다. 이를 통해서 애플리케이션 배포에 작접자가 직접 관여하지 않고도 새로운 기능과 애플리케이션을 더 빨리 , 자주 사용할 수 있습니다.

결국, IaC를 사용하여 인프라를 구축하고, 배포 자동화를 통해 애플리케이션 계층을 배포할 수 있습니다.

0개의 댓글