본문 바로가기

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

Bootstrap - 부팅 설정의 자동 수집

ㅁ  풀어야 할 문제

서버 이미지에서 서버를 만드는 방법,  Stamp패턴을 적용할 때 어느 정도의 빈도로 서버 이미지를 가지고 올 것인가는 운영 효율에 있어서 자주 거론되는 문제다

Stamp 패턴에서는 미들웨어부터 애플리케이션까지 전부 설정이 끝난 상태에서 서버를 가동하면 그대로 사용이 가능한 서버 이미지를 만들 수 있다.

이런 때 가상 서버의 가동은 굉장히 빠르지만, 미들웨어 중 하나를 업데이트해야 하거나 애플리케이션 설정을 바꿔야 할 때는 서버 이미지를 다시 만들어야 한다.

 

ㅁ  해결/패턴

클라우드에서는 쉽게 서버 이미지를 만들 수 있으며, 가동할 때 파라미터를 설정할 수 있다. 이 기능을 사용하여 서버 구성에 필요한 파라미터를 전달하여 서버를 가동할 때 필요한 설정을 서버가 전달받아 설치, 가동, 설정까지 실행하는 서버 이미지를 만들 수 있다. 따라서 각각의 패키지 버전 변경이 있을 때는 서버 이미지를 고칠 필요가 없어진다.

 

ㅁ  구현

AMI(서버 이미지)를 용도에 맞춰 만든다. 구체적으로 EC2(가상 서버)의 초기화에 필요한 여러 가지 파일을 S3(인터넷 스토리지)에 배치하고 E2를 가동할 때, 그 파라미터를 읽어와 동적으로 자기 자신을 구축할 수 있게 한다. 파라미터 파일은 Git 등의 저장소를 사용하는 것도 가능하다.

또한, Amazon Linux에는 cloud-init라는 초기 설정 기능이 있어서 사용자 데이터 영역에 초기화 스크립트를 만들어두고 자동으로 실행할 수 있다.

-       부트스트랩(bootstrap)을 할 때에는 필요한 데이터를 S3 Git등의 저장소에 준비해둔다. 부트스트랩을 적용한 AMI를 만들어 둔다.

-       EC2를 부트스트랩을 적용한 특정 AMI로 가동한다.

-       EC2는 가동할 때 자신이 필요한 패키지를 받아 설치, 가동, 설정을 한다.

-       AMI를 이용하여 필요에 따라 동적으로 서버를 복제할 수 있다. 동적으로 서버를 복제할 수 있다.

 

ㅁ  장점

-       설치가 필요한 패키지 버전이 업데이트되어도 AMI를 다시 만들 필요가 없다.

-       가동할 때 파라미터 등을 전달하여 설정 순서나 내용을 변경할 수 있다.

 

ㅁ  주의점

-       어떤 계층 까지를 고정 AMI로 하고 어떤 계층의 상단을 가동 시에 동적으로 설정할 것인지는 선택해야 한다.

-       Stamp 패턴과의 트레이드 오프를 고려하여 어떤 패턴을 적용할 것인지를 검토한다.