[AWS] AMI(Amazon Machine Image)란?
A. Question
AMI(Amazon Machine Image)
란?
B. Answer
AWS AMI(Amazon Machine Image)
는 AWS 클라우드에서 EC2(Elastic Compute Cloud)
인스턴스를 실행하기 위한 가상 서버의 템플릿이다. AMI는 사용자가 EC2 인스턴스를 생성할 때 사용하는 이미지로, 필요한 운영 체제, 애플리케이션 서버, 애플리케이션 등을 포함하고 있다.
1. AMI의 구성 요소
AWS AMI는 EC2 인스턴스를 부팅하고 실행하는 데 필요한 여러 요소로 구성된다.
- 루트 볼륨 템플릿: 인스턴스가 부팅될 때 참조하는 루트 파일 시스템의 스냅샷이다. 이는 운영 체제와 필용한 모든 파일을 포함하며, 애플리케이션, 구성 파일, 보안 설정 등이 담겨 있다.
- 런칭 권한: 해당 AMI를 사용하여 다른 계정의 사용자가 인스턴스를 생성할 수 있는 권한을 관리하는 기능이다. 이는 AMI의 접근성과 공유 범위를 설정하는 데 중요하다.
- 블록 디바이스 매핑: AMI가 인스턴스와 함께 사용할 스토리지 구성에 대한 세부 정보를 제공한다. 이는 인스턴스에 연결되는 모든 스토리지 장치의 정의와 속성을 포함한다.
2. AMI 유형
- Public AMI: AWS 커뮤니티 미치 AWS 자체에서 제공하는 이미지로, 누구나 사용할 수 있다. 이는 기본적인 운영 체제만 포함하거나 다양한 애플리케이션이 설치된 구성일 수 있다.
- 사용자 정의 AMI: 사용자가 특정 요구 사항에 맞게 운영 체제, 소프트웨어 등을 미리 설치하고 설정한 후 생성한 AMI이다. 이를 통해 필요할 때마다 동일한 환경을 쉽게 복제할 수 있다.
- AWS Marketplace AMI: 타사 소프트웨어나 서비스를 미리 설치하고 설정하여 제공하는 AMI이다. 대부분 사용료가 부과된다.
- 커뮤니티 AMI: AWS 사용자가 제공한 AMI로, 공개적으로 사용할 수 있으며 특정 소프트웨어나 환경이 설정되어 있을 수 있다.
3. AMI 생성 방법
- 기존 인스턴스에서 생성: 사용자는 이미 실행 중인 EC2 인스턴스를 맞춤 설정한 후, 해당 인스턴스를 기반으로 AMI를 생성할 수 있다. 이를 통해 동일한 설정을 갖춘 새로운 인스턴스를 빠르게 배포할 수 있다.
- AWS 관리 콘솔 또는 CLI를 통한 생성: AWS 관리 콘솔이나 명령어 도구(CLI)를 통해 AMI 생성 작업을 수행할 수 있다. 인스턴스 스냅샷을 찍어 이를 기반으로 AMI를 만드는 것이 일반적이다.
4. AMI 사용 시 고려 사항
- AMI 지역 제한: AWS의 리전(Region)은 물리적으로 분리된 데이터 센터의 집합이다. AMI는 생성된 리전에 저장되며, 해당 리전 내에서만 사용할 수 있다. 사용자가 다른 리전에서 동일한 AMI를 사용하려면, 해당 AMI를 그 리전으로 복사해야 한다.
- 보안: AMI에는 운영 체제와 필요한 애플리케이션이 포함되므로, 보안 패치 및 소프트웨어 업데이트가 적용된 상태를 유지하는 것이 중요하다. 오래된 AMI를 사용하면 보안 취약점이 발생할 수 있다.
- 비용 관리
- AMI 자체 비용
- AMI를 생성하고 유지하는 것에는 추가 비용이 발생하지 않지만, 이를 통해 생성된 EC2 인스턴스와 EBS 스토리지에 대한 비용이 발생한다. 사용자는 AMI를 사용해 인스턴스를 생성할 때 비용 효율적인 리소스를 선택해야 한다.
- EBS(Elastic Block Store) 스토리지
- 스냅샷 비용: AMI는 EBS 스냅샷을 기반으로 생성되며, 이러한 스냅샷은 저장 공간에 대한 비용이 발생한다. 스냅샷은 증분 백업으로 관리되어 비용 절감이 가능하지만, 다수의 스냅샷을 사용하거나 큰 볼륨을 사용할 경우 비용이 증가할 수 있다.
- 볼륨 크기: AMI 생성 시 지정된 루트 볼륨의 크기는 이후 생성된 인스턴스의 기본 스토리지 크기를 결정한다. 필요 이상으로 큰 크기를 설정하면 불필요한 스토리지 비용이 발생할 수 있다.
- 데이터 전송 비용
- 리전 간 데이터 전송: AMI를 다른 리전으로 복사할 때는 데이터 전송 비용이 발생할 수 있다. 특히, 다수의 리전에 동일한 AMI를 배포하는 경우, 전송 비용을 고려한 전략이 필요하다.
- EC2 인스턴스 운영 비용: AMI를 사용해 생성된 인스턴스는 각 리소스(EBS, 네트워크, CPU 사용 등)에 대한 요금이 부과된다. 적절한 인스턴스 타입과 스토리지 옵션을 선택하여 비용을 최적화하는 것이 중요하다.
- AMI 자체 비용
5. AMI의 활용 사례
- 자동 확장: 트래픽 증가 시 동일한 AMI를 사용하여 여러 인스턴스를 생성해 애플리케이션의 가용성을 높인다.
- 백업 및 복구: 특정 시점의 인스턴스 상태를 저장하여 백업으로 활용할 수 있다.
- 테스트 및 개발: 동일한 환경의 테스트 및 개발용 인스턴스를 쉽게 생성할 수 있다.
댓글남기기