- Published on
AWS AMI 정리
- Authors
- Name
- Chan Sol OH
목차
Amazon Machine Image(AMI)는 사용자 지정 EC2 인스턴스를 나타낸다. EC2에 소프트웨어나 설정들을 추가하려면 일일이 작업했어야하는데 AMI를 만들고 사용하면 사전에 패키징된 소프트웨어를 빠르게 부팅할 수 있다! AMI는 Region에 맞게 만들 수 있고, 다른 Region으로 AMI 복사본을 보낼 수 있다.
EC2 인스턴스를 실행시킬 수 있는 AMI는 여러 종류가 있다.
- Public AMI
- 아마존이 자체적으로 제공하는 AMI
- 보통 AWS Linux가 사용된다.
- Your own AMI
- 자체적으로 유지하는 인스턴스
- AWS MArketplace AMI
- 다른 사용자가 만든 AMI를 사고 팔 수 있다.
AMI Process from an EC2 Instance
EC2 인스턴스의 AMI 처리는 다음과 같다.
- EC2 인스턴스를 시작하고 이를 커스터마이즈한다.
- 인스턴스를 중단시키고, 데이터 무결성을 확보한다.
- AMI를 빌드한다. 이때 EBS 스냅샷 또한 생성된다.
- 다른 인스턴스에서 AMI를 생성한다.
정리하면 ap-northeast-2에서 생성한 EC2 인스턴스에서 AMI로 생성하고 이를 복사한 후 복사본을 ap-northeast-1로 보낸다음 ap-northeast-1에서 AMI를 실행시켜서 EC2 인스턴스 복사를 할 수 있다.
AMI 실습
- EC2 인스턴스 실행시키기
- OS는 Amazon Linux등등 기존 생성했던 EC2와 동일하게 설정
- EC2 User Data 설정을 아래와 같이하고, 인스턴스 실행하면 초기 설정 때문에 1~2분정도 부팅시간이 걸린다.
userdata.sh
#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
- AMI로 만드고자하는 인스턴스를 우클릭 -> 이미지 생성, 이름만 설정하고 다른 것은 설정 X.
- AMIs를 확인하면 데모 이미지가 등록됐음을 확인.
- AMI를 클릭해서 이미지 생성하면 EC2를 생성할 때랑 비슷하지만 OS 같은 것은 이미지 정해져있다. 대신 User Data는 아래와 같이 작성하자
- 해당 AMI는 미리 httpd를 설치해서 이미지화했기 때문에 다시 설치할 필요 없어서 더 빨리 부팅할 것
- 이래서 AMI를 사용하는 것이다. 마치 도커 이미지를 미리 빌드하는 것과 비슷한 용례
#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html