sol 개발 블로그 로고
Published on

AWS AMI 정리

Authors
  • avatar
    Name
    Chan Sol OH
    Twitter

목차

Amazon Machine Image(AMI)는 사용자 지정 EC2 인스턴스를 나타낸다. EC2에 소프트웨어나 설정들을 추가하려면 일일이 작업했어야하는데 AMI를 만들고 사용하면 사전에 패키징된 소프트웨어를 빠르게 부팅할 수 있다! AMI는 Region에 맞게 만들 수 있고, 다른 Region으로 AMI 복사본을 보낼 수 있다.

EC2 인스턴스를 실행시킬 수 있는 AMI는 여러 종류가 있다.

  1. Public AMI
    • 아마존이 자체적으로 제공하는 AMI
    • 보통 AWS Linux가 사용된다.
  2. Your own AMI
    • 자체적으로 유지하는 인스턴스
  3. AWS MArketplace AMI
    • 다른 사용자가 만든 AMI를 사고 팔 수 있다.

AMI Process from an EC2 Instance

EC2 인스턴스의 AMI 처리는 다음과 같다.

  1. EC2 인스턴스를 시작하고 이를 커스터마이즈한다.
  2. 인스턴스를 중단시키고, 데이터 무결성을 확보한다.
  3. AMI를 빌드한다. 이때 EBS 스냅샷 또한 생성된다.
  4. 다른 인스턴스에서 AMI를 생성한다.

정리하면 ap-northeast-2에서 생성한 EC2 인스턴스에서 AMI로 생성하고 이를 복사한 후 복사본을 ap-northeast-1로 보낸다음 ap-northeast-1에서 AMI를 실행시켜서 EC2 인스턴스 복사를 할 수 있다.

AMI 실습

  1. EC2 인스턴스 실행시키기
  2. OS는 Amazon Linux등등 기존 생성했던 EC2와 동일하게 설정
  3. 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
  1. AMI로 만드고자하는 인스턴스를 우클릭 -> 이미지 생성, 이름만 설정하고 다른 것은 설정 X.
  2. AMIs를 확인하면 데모 이미지가 등록됐음을 확인.
  1. 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