=> 커스터마이징된 인스턴스로부터 만들어진 이미지(템플릿)
=> OS/소프트웨어/설정을 캡처한 부팅 이미지
=> 부팅에 필요한 디스크 스냅샷(루트 볼륨), 블록 디바이스 매핑, 권한 정보를 정적인 묶음으로 가진 설계도
AWS에서 생성한 AMI를 사용하거나 사용자 지정 AMI를 만들 수 있다
자체적으로 AMI를 생성하면 부팅과 구성에 시간이 단축됨
-> EC2 인스턴스에 설치하고자 하는 모든 소프트웨어가 AMI를 통해서 사전에 패키징 되기 때문
AMI ID는 해당 리전에서만 유효. 다른 리전에서 쓰려면 AMI 복사 필요(새 ID 생성)
Amazon 제공
내 프라이빗
공유(계정 대상)
특정 다른 AWS 계정 ID에 ‘런치 권한’을 부여해 그 계정이 이 AMI로 인스턴스를 띄울 수 있게 한 상태
주의(암호화 시 3종 세트)
복사/소유권: 공유받은 계정이 자기 계정으로 AMI를 ‘복사’하면, 그 복사본은 공유받은 계정 소유가 됨(권장 패턴)
요금: 원본 보관 비용은 원본 소유 계정이 부담(공유만 했을 뿐). 상대가 복사하면 복사본 비용은 상대 계정 부담
용도: 멀티계정(Prod/Dev/보안계정) 간 표준 이미지 배포, 파트너/자회사 제공
Marketplace
표로 한눈에 정리
| 구분 | 볼 수 있는 대상 | 누가 런치? | 스냅샷/키 요구 | 복사 | 전형적 용도 |
|---|---|---|---|---|---|
| 내 프라이빗 | 소유 계정만 | 소유 계정 | 기본(추가 없음) | 가능(리전 간) | 사내 표준/운영용 |
| 공유(계정 대상) | 지정한 계정 | 소유 + 지정 계정 | (암호화 시) 스냅샷+KMS 권한 공유 | 상대가 자기 계정으로 복사 권장 | 멀티계정 배포/파트너 제공 |
| 퍼블릭 | 모두 | 누구나 | 스냅샷도 퍼블릭, 암호화 불가 | 사용자가 자기 계정으로 복사 가능 | 공개 배포/학습용 |
먼저 인스턴스를 새로 생성하고
생성된 인스턴스 => 우클릭 => Image and Templates => Create Image 클릭🖱️❇️


생성된 AMI로 인스턴스 생성 가능


My AMIs에 보면 직전에 내가 생성했던 AMI가 목록에 나타나는 것을 확인할 수 있다
User Data에 생성한 AMI에 이미 설치 명령어가 다 입력되어 있어서
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
새로 생성한 인스턴스에는 아래 항목만 입력해주고 AMI를 연결했다
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
#!/bin/bash
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

Public IP 주소로 접근하면 페이지가 정상 출력되는 것을 확인할 수 있다!