일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- zabbix
- ansible
- module
- API
- Automation
- crawling
- 시스템자동화
- Linux
- 5.0
- 데이터 분석
- python
- EKS
- AWS
- ELK
- 자동화
- airflow
- EC2
- kibana
- elasticsearch
- powershell
- DB
- tcp
- ubuntu
- 크롤링
- apt
- Selenium
- MySQL
- 8.0
- GIT
- GCP
Archives
- 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를 통해서 여러 소스를 베이스로 사용해 다른 플랫폼 등에 적용 가능한 머신 이미지를 생성할 수 있습니다.
- 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
- 우선 Packer 사용을 위해 Packer를 우선 다운로드 해줍니다.
- 다운로드 해준 후 Powershell 환경 변수를 통해 packer command path를 등록해줍니다.
- 환경 변수 등록 방법
- packer 파일 다운로드 후 압축을 풀어 줍니다.
- 압축을 풀어준 경로 밑에 bin 폴더 생성 후 압축 파일 들이 이동 시킵니다.
- 압축 푼 경로를 시스템 속성(sysdm.cpl)의 환경 변수에 등록해 줍니다. (ex. C:\git\aws-packer\bin)
- 환경 변수 등록 방법
- packer로 구성할 AMI에 대한 템플릿을 작성해 줍니다.
- 코드 작성이 완료되었으며, 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' 카테고리의 다른 글
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 |