Packer를 왜 써야 하나요

Packer를 왜 써야 하나요

이 글에서는 전통적인 pre-baked 이미지(필요한 소프트웨어·설정·데이터를 포함해 미리 구성된 디지털 이미지) 대신, Packer로 머신 이미지 생성 과정을 자동화해야 하는 이유를 설명해요.

출처: Packer 공식 문서

본문

Pre-baked 이미지 (Pre-baked images)

Pre-baked 머신 이미지는 장점이 많지만, 이미지를 만들고 관리하는 게 너무 번거로워서 대부분의 사람들은 그 장점을 누리지 못하고 있어요. 머신 이미지 생성을 자동화할 기존 도구가 없거나, 있다 해도 학습 곡선이 너무 높았죠. 그 결과 Packer 이전에는 머신 이미지 생성이 운영팀의 민첩성을 위협해, 엄청난 이점에도 불구하고 사용되지 않았어요.

Packer는 이 모든 것을 바꿔요. Packer는 어떤 유형의 머신 이미지 생성이든 자동화해요. 또 Packer로 만든 이미지 안의 소프트웨어를 설치·구성할 때 Chef나 Puppet 같은 프레임워크를 쓰도록 권장함으로써 현대적인 구성 관리를 받아들여요.

Packer 사용의 장점 (Advantages of using Packer)

초고속 인프라 배포 (Super fast infrastructure deployment) . Packer 이미지를 쓰면 완전히 프로비저닝되고 구성된 머신을 수 분이나 수 시간이 아니라 몇 초 만에 실행할 수 있어요. 이는 프로덕션뿐 아니라 개발에도 이득이에요. 개발 가상 머신도 보통 훨씬 긴 프로비저닝 시간을 기다리지 않고 몇 초 안에 실행할 수 있으니까요.

멀티 프로바이더 이식성 (Multi-provider portability) . Packer는 여러 플랫폼에 대해 동일한 이미지를 만들기 때문에, 프로덕션은 AWS에서, 스테이징/QA는 OpenStack 같은 사설 클라우드에서, 개발은 VMware나 VirtualBox 같은 데스크톱 가상화 솔루션에서 실행할 수 있어요. 각 환경이 동일한 머신 이미지를 실행하므로 궁극적인 이식성을 얻게 돼요.

개선된 안정성 (Improved stability) . Packer는 이미지가 빌드될 때 머신의 모든 소프트웨어를 설치하고 구성해요. 이 스크립트에 버그가 있으면 머신이 실행된 지 수 분 후가 아니라 일찍 발견될 거예요.

더 나은 테스트 가능성 (Greater testability) . 머신 이미지가 빌드된 후에는 그 이미지를 빠르게 실행해 스모크 테스트로 제대로 동작하는지 확인할 수 있어요. 정상이라면 그 이미지에서 실행된 다른 머신들도 제대로 기능할 거라고 확신할 수 있어요.