일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- tcp
- powershell
- 데이터 분석
- apt
- DB
- ansible
- kibana
- EC2
- 자동화
- GCP
- crawling
- sso
- 시스템자동화
- zabbix
- GIT
- Automation
- Linux
- AWS
- API
- Selenium
- ubuntu
- MySQL
- EKS
- python
- 5.0
- ELK
- 8.0
- module
- airflow
- elasticsearch
- Today
- Total
Oops - IT
AMI with Packer 본문

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 이미지 생성
- Packer 공식 문서의 해당 부분을 참조하여 작성하였습니다.
- https://developer.hashicorp.com/packer/tutorials/aws-get-started/aws-get-started-build-image
Build an image | Packer | HashiCorp Developer
With Packer installed, let's build an Amazon EC2 AMI.
developer.hashicorp.com
- 우선 Packer 사용을 위해 Packer를 우선 다운로드 해줍니다.
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)
- 환경 변수 등록 방법

- packer로 구성할 AMI에 대한 템플릿을 작성해 줍니다.
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 build .
- 출력 화면
- Packer 구성 초기화 (필요 시 required_plugins에 지정된 amazon plugin을 다운로드 합니다.)

- 이미지 빌드 완료 확인

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

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

위처럼 Packer Template을 통해서 정상적으로 AWS Public AMI를 통해 Nginx가 설치된 AMI Build 까지 진행해 보았습니다.
'AWS' 카테고리의 다른 글
AWS IAM - AD Federation with Identity Provider (0) | 2025.02.22 |
---|---|
GameLift 알아보기 (0) | 2025.01.16 |
Lambda 사용 해보기 (2) | 2025.01.15 |
EKS 생성하기 - LB를 통한 서비스 외부 노출 (0) | 2025.01.14 |
EKS 생성하기 (0) | 2025.01.14 |