AMI [Amazon Machine Image]
1. AMI 소개
- AMI는 EC2 인스턴스를 시작하는 데 필요한 정보를 제공하는 AWS의 머신 이미지입니다.
- 운영 체제, 애플리케이션 서버, 애플리케이션을 비롯한 소프트웨어 구성이 포함되어 있습니다.
- 인스턴스를 시작할 때 AMI를 지정하면 AMI에서 인스턴스가 생성됩니다.
2. AMI 생성의 필요성
- 사용자 정의 인스턴스 구성 저장: 특정 요구 사항에 맞게 EC2 인스턴스를 구성한 후, 해당 구성을 AMI로 저장하여 나중에 동일한 구성의 인스턴스를 쉽게 시작할 수 있습니다.
- 인스턴스 복제: 기존 인스턴스와 동일한 구성의 인스턴스를 여러 개 생성할 때 AMI를 사용하면 편리합니다.
- 백업 및 복구: 중요한 데이터나 구성을 포함한 인스턴스의 AMI를 생성하여 백업으로 사용할 수 있습니다. 인스턴스 손상 시 AMI에서 새 인스턴스를 시작하여 빠르게 복구할 수 있습니다.
- 개발 및 테스트 환경 관리: 개발 및 테스트에 사용되는 인스턴스 구성을 AMI로 저장하여 일관된 환경을 유지할 수 있습니다.
3. AMI 생성 방법
- 기존 EC2 인스턴스에서 AMI 생성: 콘솔, AWS CLI, 또는 API를 사용하여 실행 중인 인스턴스에서 AMI를 생성할 수 있습니다.
- 사용자 정의 AMI 생성: 기본 AMI에서 인스턴스를 시작한 후, 필요한 소프트웨어와 구성을 설치 및 설정하고 AMI를 생성합니다.
4. AMI 사용 시 고려사항
- AMI 저장 비용: AMI는 EBS 스냅샷으로 저장되므로 스냅샷 크기에 따라 스토리지 비용이 발생합니다.
- AMI 공유 및 권한 관리: AMI를 다른 AWS 계정과 공유하거나 퍼블릭으로 설정할 수 있습니다. 이때 적절한 권한 관리가 필요합니다.
- AMI 업데이트 및 관리: 보안 패치, 소프트웨어 업데이트 등을 반영하기 위해 주기적으로 AMI를 업데이트하고 관리해야 합니다.
5. AMI 활용 사례
- 애플리케이션 배포 및 확장: 애플리케이션이 미리 설치된 AMI를 사용하여 인스턴스를 신속하게 시작하고 확장할 수 있습니다.
- 재해 복구: 중요한 시스템의 AMI를 생성하여 재해 발생 시 신속한 복구에 활용할 수 있습니다.
- 하이브리드 클라우드 환경: 온-프레미스 환경과 동일한 구성의 AMI를 사용하여 클라우드에서 일관된 환경을 구축할 수 있습니다.
내 EC2 인스턴스로부터 AMI 생성해보기
EC2 인스턴스에 접속해서 test_folder라는 폴더를 하나 생성하고, 그 안에 vim으로 test.py라는 파일을 하나 생성했습니다.
이제 여기서 복제할 인스턴스를 선택하고 [작업 -> 이미지 및 템플릿 -> 이미지 생성] 버튼을 클릭합니다.
저는 이미지 이름을 myAMI라고 설정해준 다음에 크기는 기본 30으로 설정되어있는데, 8로 설정해 줍니다.
EC2 인스턴스를 하나 생성해 줍니다. 이름은 myAMITest라고 설정하고, 내 AMI에서 방금 전 만들어놓은 myAMI를 가져와 사용합니다.
중요한 것은 키페어 입니다. 우리가 이전에 만들어놨던 키페어를 계속 사용하기 위해서는 그 해당 키페어를 설정해주면 됩니다.
그러면 로그인할 때 내 컴퓨터에 저장되어 있는 pem 파일과 함께 로그인하면 됩니다.
아까 ubuntu-server의 EC2 인스턴스를 가지고 AMI 이미지를 생성하고 그 AMI 이미지를 가지고 그대로 새로운 인스턴스를 생성해봤습니다.
신기하게도 파일이나 폴더도 모두 복제되는 모습을 확인할 수 있었습니다.
AWS Marketplace에 들어가면 다양한 AMI 파일들이 있습니다. 각각의 용도에 맞게 환경을 구성해 놓은 이미지 파일이라고 생각하면 될 것 같습니다. 이 또한 비용을 지불하고 사용하는 것이기 때문에 이런거.. 하나만 잘 만들어도 돈.. 꽤 벌겠는데?? 라는 생각도 잠시나마 해봤습니다. 저는 제가 관심분야인 Deeplearning을 봤는 데 이것도 엄청 많이 나오는 것을 확인할 수 있었습니다. 저는 항상 개발하면서 conda를 생성해서 거기 안에 계속 설치하고 환경 맞추고 하는 번거로움이 있었는데, 이렇게 이미 다 설치된 것을 나의 EC2 인스턴스에 넣으면 되게 편리하겠다라는 생각을 했습니다.
'개발 > AWS' 카테고리의 다른 글
[AWS] [Step 5 - CloudFront] (1) | 2024.06.03 |
---|---|
[AWS] [Step 2 & 3] 요즘 대세인 aws-resume-challenge 해보자!! (0) | 2024.05.29 |
[AWS] Elastic IP 탄력적 IP 할당 (0) | 2024.04.09 |
[AWS] 가장 쉽게 S3를 구축하고 정적 웹 호스팅 만들기 (0) | 2024.04.07 |
[AWS] IAM 계정을 생성해보자! MFA 설정도 ! 초간단! (0) | 2024.03.11 |