본문 바로가기

AWS Design Pattern/운영 유지 보수 패턴

Stack Deployment - 서버 군의 템플릿화

ㅁ  풀어야 할 문제

시스템 개발이나 운영 유지 보수에 있어서 일반적으로 테스트 환경이나 스테이징 환경을 준비한다. 이 환경은 평상시에 사용하지 않아 서비스 환경과 동일한 대수의 서버를 준비하는 데에는 많은 비용이 들어간다. 가상 서버를 이용하면 비용 효율이 개선된다.

그러나 시스템이 복잡하고 가상 서버가 많은 경우, 그 환경을 만들고 관련되 가상 서버를 가동하고 정지하는 등의 작업에는 손이 많이 간다. 그렇게 되면 시간도 많이 걸리고 실수도 많아 진다.

 

ㅁ  해결/패턴

서버 그룹을 가동하는 템플릿을 준비하여 거기에 맞춰 자동으로 한번에 가동하는 방법을 이용한다. 

구축해야 하는 환경에 필요한 클라우드 컴포넌트를 템플릿에 넣어두고, 그 템플릿에 따라 환경 구축을 함으로 복잡한 시스템을 실수 없이 준비할 수 있다.

 

ㅁ  구현

AWS [CloudFormation]이라는 서비스를 사용하여 서버 자원 등을 기술한 [CloudFormation 템플릿]에서 시스템(EC2 )을 가동한다.

-       신규 또는 기존 환경에서 CloudFormation 템플릿을 만든다.

-       시스템을 이용할 때 CloudFormation 템플릿에서 시스템(EC2 )을 한 번에 가동한다.

-       시스템을 종료할 때 CloudFormation 템플릿을 이용하여 한 번에 시스템을 삭제한다.

템플릿을 만들 때 기존 시스템에서 템플릿을 만드는 CloudFormer라는 툴도 사용할 수 있다.

 

ㅁ  장점

-       순서에 맞게 가동해야 하는 가상 서버(EC2)도 그 순서대로 가동하도록 스택 템플릿(CloudFormation 템플릿)을 만들 수 있어 운영에서의 실수를 줄일 수 있다.

-       스택 템플릿(CloudFormation 템플릿을 Versioning하여 시스템 구성 이력 관리도 할 수 있다.

-       환경 구축뿐 아니라 철거도 쉽게 할 수 있다.

 

ㅁ  주의점

시스템(가상 서버 등)이 업데이트 되면 스택 템플릿(CloudFormation 템플릿) 내의 서버 이미지(AMI) ID도 업데이트해야 한다.

¡  기타

이 패턴은 단순히 시스템을 복제할 뿐만 아니라 EC2 기본 환경에서 사용자 기업과 전용 네트워크로 연결한 가상 프라이빗 클라우드 (Virtual Private Cloud, VPC) 환경으로 이전 시에도 적용할 수 있다.

구체적으로는 툴(CloudFormer)을 이용하여 기존 시스템의 CloudFormation 템플릿을 만들고 이전 장소 VPN 환경 (네트워크 정책, 서브넷)을 구축한다. 구축한 VPC ID나 서브넷 ID CloudFormation 템플릿에 등록하고 CloudFormation 템플릿을 사용하여 시스템을 가동한다.