본문 바로가기

AWS/Image Builder

골든 이미지 관리를 위한 Image Builder (1)

안녕하세요!!

참.. 꾸준히라는게 어렵네요.

 

오늘 다룰 Image Builder로 포스팅을 해야지..를 생각만 반 년은 한 것 같습니다..

생각만 하고 실행 못한 저라는 게으름뱅이.. 반성합니다..ㅠ

 

그럼 바로 본문으로 넘어가겠습니다..!!


1. Image Builder?

 

출시일: 2019.12
주요기능: OS 이미지 생성, 유지, 검증, 배포 작업의 파이프라인 생성, AWS 환경 내 이미지 공유.

지원되는 운영 체제(2022.02 기준): Amazon Linux2, Windows Server, Ubuntu, SUSE, CentOS, RHEL

즉, 소프트웨어 사전 설치 및 구성으로 안전하고 최신버전의 사용자 지정 골든 이미지를 생성해주는 녀석 입니다.

 

위에 Image Builder 라는 녀석에 대해 간단히 써봤는데요.

그럼 이 녀석이 왜 필요하냐? 를 설명드리기에 앞서 "골든 이미지"에 대해 간략히 설명드려야 할 듯 합니다.

 

2. 골든 이미지(Golden Image)?

OS 영역을 포함해 필수 패키지, 보안 설정 등이 적용된 일종의 "정형화 된 이미지" 입니다.

이 골든 이미지를 잘 활용하면 다음과 같은 이점이 생깁니다.

 

1. 인스턴스 프로비저닝 시간 최소화.

2. 보안 측면 이점.

 

다만, 이러한 이미지를 관리해주기 위해서는 특정 버전 취약점 이슈 발생시와 같은 상황에

새로 이미지를 만들어줘야하는 부지런함을 요구한다는 단점이 있습니다.

또한, 새로운 이미지를 생성한 이후의 테스트, 공유 등의 추가적인 공수가 부담이겠지요.

 

이런 부담을 최소화 하기 위해 전통적으로 잘 쓰이던 녀석이 Hashicorp의 Packer 입니다.

구글에 "Image Builder vs Packer" 만 검색하셔도 굉장히 많은 자료가 나올텐데요.

비유하자면.. "CloudFormation vs Terraform" 의 느낌이라고 생각됩니다.

 

Packer는 범용적으로 쓰일 수 있다는 장점을 갖은 반면 AWS 전용으로 만들어진 툴은 아닙니다.

반면, Image Builder는 범용적으로 쓰이기는 어렵지만, AWS 내에서의 호환성은 정말 끝내줍니다.

 

또한, Image Builder의 비용은 "무료" 입니다.

물론, Image Builder가 무료라는 거지, 이를 통해 수행되는 Run Command, Automation, 빌드, 테스트를 위한

인스턴스 등은 모두 과금이 됩니다..! (무서운 AWS...)


그럼 이 Image Builder가 작동하는 방식을 살펴보겠습니다.

 

Image Builder 작동 방식

 

위 그림에서 보시는 바와 Image Builder 에서는 다음 요소들을 정의하게 됩니다.

1. Component (구성 요소)

인스턴스를 사용자 지정하기 위한 일련의 단계(빌드,테스트) 정의문. (yaml, json)

사용자가 필요한 소프트웨어 설치, 패치 진행, 테스트 과정 정의 등 각각의 요소들 입니다.

AWS가 사전 구성해놓은 요소들도 있고, 사용자 지정 구성요소를 생성할 수도 있습니다.

 

또한, 이러한 구성 요소는 AWS Task Orchestrator and Executor(AWSTOE)를 사용합니다.

 

2. Image Recipe (이미지 레시피)

기본 AMI 지정 및 구성 요소들이 담기는 템플릿 입니다.

 

3. Infrastructure Configuration (인프라 구성)

이미지 레시피를 갖고 빌드 인스턴스 및 테스트 인스턴스가 구성 될 환경을 정의합니다.

이 환경에는 VPC, Subnet, Instance Profile 등을 정의합니다.

 

4. Distribution Setting (배포 설정)

Image Builder를 통해 생성된 AMI의 공유 여부, 라이센스, 태그 등을 정의합니다.


그림에서 보신 것처럼, Infrastructure Configuration을 토대로 빌드 및 테스트를 위한 인스턴스가

정의된 VPC, Subnet에 생성되고 해당 인스턴스는 정의된 Instance Profile을 갖게 됩니다.

 

또한, 해당 빌드 및 테스트 인스턴스에서는 Image Recipe를 토대로 Systems Manager Automation

일련의 작업들을 진행합니다. 이 Automation을 통해 우리가 설정한 작업들이 단계별로 처리되는데,

실제 OS내에서 필요한 작업들은 Run Command 기반 AWSTOE를 활용하도록 동작합니다.

 

 

이해가 쉽도록 이 각각의 단계를 간략하게 예시를 들어보면..

 

1. 빌드 인스턴스 시작.

2. 시작 후 대기.

3. Python 설치 및 업그레이드

4. OS 패치

5. 빌드 인스턴스 중지

6. 임시 AMI 생성

7. 빌드 인스턴스 삭제

8. 임시 AMI로 테스트 인스턴스 시작.

9. 시작 후 대기.

10. 테스트 단계 실행. (Ex. python --version)

11. 테스트 인스턴스 중지

12. 최종 AMI 생성

13. 배포.

 

와 같은 단계를 거치게 됩니다. 여기서 Python 설치, OS 패치 등의 OS에서 필요한 명령들이 Run Command 기반

AWSTOE를 활용하도록 동작 합니다. 다만, 인스턴스 시작, 중지, AMI 생성 등의 작업들은 AWS API Call 작업입니다.

이런 단계들을 순차적으로 진행하는 것이 Automation 입니다.

(여담으로 Automation을 실행하도록 하는 문서는 Systems Manager 내 Documents 라는 녀석입니다 ㅎㅎ)

 

 

위에서 비용을 말씀드리면서, Image Builder 자체는 무료지만, Run Command, Automation, 빌드 테스트를 위한 임시 인스턴스 등은 과금이 된다고 말씀드렸는데요. 바로 이러한 부분들이 과금 대상입니다 ㅎㅎ


위에서 설명 드린 것 처럼 위에서 나열한 일련의 단계들을 굉장히 편리하게 제공을 하기에,

사용자가 사전에 설치가 필요한 소프트웨어 설치 및 구성, 테스트, 이미지 공유 간소화 등의 이점을 얻을 수 있으며,

사용자가 미리 셋업한 골든이미지를 활용하기에 보안적인 이점 또한 가져갈 수 있다고 생각합니다.

 

사실 이 포스팅을 보면서 Docker를 활용하고 계신 분 이라면 'Docker 이미지랑 다를게 뭐야?' 라고 생각하시면서

개념이 쉽게 다가오실 것 같습니다.

 

네, Docker 이미지 마는거랑 굉장히 비슷한 느낌입니다 ㅎㅎ 다만, Docker 이미지는 컨테이너의 이미지이고,

위에서 소개드린 Image Builder는 Docker Engine이 올라가는 호스트의 이미지 파이프라인 이라고

생각해주시면 될 것 같습니다 ㅎㅎ

 

 

다음 포스팅에서는 이 Image Builder를 가지고 간단한 데모를 구성해보고자 합니다.

최대한 빠른 시일 내에 인사드리겠습니다.


아차.. 마치기 전에.. 제가 이번에 주변에서 귀한 기회를 주셔서 AWS SA 직무에 대해서 인터뷰를 하게되었습니다.

 

사실, 이 블로그를 시작하게 된 이유가 신입 때 AWS SA 직무를 처음 수행함에 있어 각종 커뮤니티를 통해서

도움을 정말 많이 받았었는데요, 제가 받은 도움처럼 저 또한 누군가에게 도움을 드리고, 제 인사이트를

나누고 싶어서 쓴 블로그 입니다. (물론, 첫 번째 이유는 제 스스로의 정리..ㅎ)

 

이번에 좋은 기회를 통해 인터뷰 한 덕에 제 스스로가 누군가에게 도움이 될 수 있는 사람이 됐다는거에

참.. 얼떨떨하고.. 뿌듯합니다..ㅎㅎ

 

이 포스팅을 통해 다시 한 번, 귀한 인터뷰 자리 마련해주신 환영님께 감사드립니다.

 

또, AWS 자격증을 준비하시는 분들은 환영님 블로그 한 번 보시면 도움 많이 되실 것 같습니다!!

(실제 저 취준생 때 환영님 자료로 AWS 자격증 공부했었습니다 ㅎㅎ)

 

https://aws-hyoh.tistory.com/184

 

[IT 현직자에게 묻다]Cloud Solution Architect, 장준형님

"IT 현직자에게 묻다" 시리즈의 기획 목표는 IT 현직에서 활약하시는 분들을 대상으로 인터뷰를 실시하여 취준생/학생들이 알아야 할 기본 정보를 제공하기 위함입니다. 또한 IT 종사자에게 도움

aws-hyoh.tistory.com

 

 

다음 Image Builder 데모 포스팅으로 인사 드리겠습니다!

감사합니다.