Oops - IT

AMI with Packer 본문

AWS

AMI with Packer

김모우 2025. 1. 20. 22:35
반응형

 

 

 

AMI란?


  • AMI는 Amazon Machine Image의 줄임말로 Amazon EC2 인스턴스를 설정하고 부팅하는 데 필요한 소프트웨어를 제공하는 이미지를 뜻합니다.
  • AMI는 AWS에서 퍼블릭하게 제공되는 이미지도 사용이 가능하지만, 각 워크로드 별로 필요한 이미지를 빌드해서 사용하고 싶은 경우도 있을텐데요. 이런 경우에 Packer라는 보조 툴을 통해서 쉽게 AMI를 빌드 해보도록 하겠습니다.

 

 

Packer란?


  • https://developer.hashicorp.com/packer/docs/intro
  • Packer는 단일 소스 구성에서 여러 플랫폼에 대해 동일한 머신 이미지를 만드는 커뮤니티 도구입니다.
  • Packer를 통해서 여러 소스를 베이스로 사용해 다른 플랫폼 등에 적용 가능한 머신 이미지를 생성할 수 있습니다.
 

Introduction | Packer | HashiCorp Developer

Welcome to the world of Packer! This introduction guide will show you what Packer is, explain why it exists, the benefits it has to offer, and how you can get started with it. If you're already familiar with Packer, the documentation provides more of a ref

developer.hashicorp.com

 

 

  • Packer는 JSON Template과 Packer에서 제공하는 확장자인 HCL로 구성이 가능합니다.
    • HCL의 경우에는 Packer 버전 v1.7 이 후로 정식 사용 가능하며, Packer를 구성하는 데 용이하게 쓰이는 템플릿 작성 방식입니다.

 

 

AMI 이미지 생성


 

Build an image | Packer | HashiCorp Developer

With Packer installed, let's build an Amazon EC2 AMI.

developer.hashicorp.com

 

 

Install | Packer | HashiCorp Developer

Explore Packer product documentation, tutorials, and examples.

developer.hashicorp.com

 

  • 다운로드 해준 후 Powershell 환경 변수를 통해 packer command path를 등록해줍니다.
    • 환경 변수 등록 방법
      • packer 파일 다운로드 후 압축을 풀어 줍니다.
      • 압축을 풀어준 경로 밑에 bin 폴더 생성 후 압축 파일 들이 이동 시킵니다.
      • 압축 푼 경로를 시스템 속성(sysdm.cpl)의 환경 변수에 등록해 줍니다. (ex. C:\git\aws-packer\bin)

 

 

aws-handson/120 at main · usheep91/aws-handson

Contribute to usheep91/aws-handson development by creating an account on GitHub.

github.com

 

  • 코드 작성이 완료되었으며, packer 명령어로 해당 이미지를 빌드해줍니다.
    • Packer 구성 초기화 (필요 시  required_plugins에 지정된 amazon plugin을 다운로드 합니다.)
      • # packer init .
    • Packer 템플릿 포맷 (파일이 정상적으로 작성되었는 지 가독성 및 일관성을 위해 템플릿 업데이트)
      • # packer fmt .
    • Packer 템플릿이 유효한 상태인지 검증
      • # packer validate .
    • Packer 템플릿 빌드
      • # packer build .

    • 출력 화면

 

  • 이미지 빌드 완료 확인

 

 

Packer 구성 AMI로 EC2 구동 및 템플릿 검증


  • 그러면, 구성된 AMI를 통해 EC2를 구성해보고, 추가로 설정한 nginx 설치 및 실행 부분이 정상적으로 반영되었는지 확인해보겠습니다

 

  • 임시로, PC IP에서 대상 서버로 80 Port 오픈 후 정상 접근 확인

위처럼 Packer Template을 통해서 정상적으로 AWS Public AMI를 통해 Nginx가 설치된 AMI Build 까지 진행해 보았습니다.
반응형

'AWS' 카테고리의 다른 글

GameLift 알아보기  (0) 2025.01.16
Lambda 사용 해보기  (2) 2025.01.15
EKS 생성하기 - LB를 통한 서비스 외부 노출  (0) 2025.01.14
EKS 생성하기  (0) 2025.01.14
AWS 면접 후기 (에필로그)  (0) 2025.01.08