Posts [AWS] AMI & EBS 를 활용한 백업
Post
Cancel

[AWS] AMI & EBS 를 활용한 백업

EC2 백업

서버 관리에서 필수적인 요소중 하나는 백업이다. EC2 를 백업 및 복원하기 위해 사용할 수 있는 방법은 1)AMI 이미지를 통해 EC2 정보를 저장하거나 2)EBS 스냅샷에 데이터를 저장하는 방법이 있다.

AMI

AMI 란?

image 출처: https://inpa.tistory.com/entry/AWS-📚-AMI-Snapshot-개념-백업-사용법-💯-정리#ami_와_snapshot_의_차이점

AMI는 EC2 인스턴스를 실행하기 위한 정보를 모은 단위이다.

즉 AMI란 서버에 필요한 운영체제, 저장공간 용향, CPU 프로세서 타입, 소프트웨어 설치 정보등으로 구성된 템플릿이며, 보통 이러한 템플릿을 aws에서는 이미지라고 불린다. (쉽게 도커 이미지와 비슷한 개념으로 볼 수 있다)

템플릿에는 컴퓨터 OS 환경설정 정보 뿐만 아니라 인스턴스의 EBS에 대한 정보도 모두 포함되어있다.

EBS에 대한 정보라는 것은 EC2 인스턴스가 어떤 EBS 스냅샷과 연결되어있는지에 대한 정보를 말한다.

AMI 백업 방식은 다음과 같은 경우에 주로 사용된다.

  • 긴급하게 백업된 인스턴스를 복구해야하는 경우
  • 인스턴스 설정 등이 복잡해서 설정이 완료된 인스턴스 이미지를 만들고 싶은 경우
  • Auto Scaling Group 에서 새 인스턴스를 자동으로 생성하기 위해 만드는 경우

추가적으로 AMI를 사용하여 현재 상태의 EC2 세팅(템플릿)을 복제해서 다른 계정이나 다른 리전에게 전달도 가능하다.

직접 실습해본결과 EC2 생성 및 JDK 설치후 AMI 를 생성하여, 생성된 AMI 를 통해 다시 EC2 인스턴스를 만들게되면 JDK 가 동일한게 설치된것을 확인할 수 있다.

AMI 구성

  • 1)1개 이상의 EBS 스냅샷
  • 2)AMI에는 인스턴스가 어떤 EBS 스냅샷과 연결되어있는지에 대한 정보가 포함
  • 3)인스턴스 저장 인스턴스의 경우 루트 볼륨에 대한 템플릿ex) 운영체제 OS, 애플리케이션 서버
  • 4)사용 권한 (어떤 AWS 어카운트가 사용할수 있는지)
  • 5)EBS 블록 디바이스 맵핑 (EC2인스턴스를 위한 볼륨 정보 = EBS가 무슨용량으로 몇개 붙는지)

AMI 생성 과정

  • 1)EBS의 스냅샷을 찍음
  • 2)스냅샷에는 OS, 파일, 시작권한 ..등이 들어있음
  • 3)스냅샷을 S3에 저장
  • 4)스냅샷을 기반으로 AMI를 만듬
  • 5)AMI을 가지고 EC2를 실행하거나, 다른사람에게 공유하거나 복사 함

image 출처: https://inpa.tistory.com/entry/AWS-📚-AMI-Snapshot-개념-백업-사용법-💯-정리#ami_와_snapshot_의_차이점

EBS

EBS란?

컴퓨터 본체 기준으로 하드디스크에 해당한다. 즉, 클라우드상에서 EC2 인스턴스의 가상 하드디스크(HDD)로 생각하면 된다.

EC2 인스턴스가 연산에 관한 (CPU,메모리 등) 처리를 한다고 하면, 데이터를 저장하는 역할(SSD, HDD)은 바로 EBS가 한다.

EBS는 AWS 클라우드의 Amazone EC2 인스턴스에 사용할 영구 블록 스토리지 볼륨을 제공한다.

그리고 단 몇분 내에 사용량을 많게 또는 적게 변경할 수 있으며, 프로비저닝(빌리는 행위)한 부분에 대해서만 지불이 가능하다.

EBS ↔ EC2 연결 특징

1) EC2 인스턴스가 종료되어도 EBS 는 별개로 유지 가능하다

EBS는 EC2와는 별개의 네트워크로 연결된 서비스이기에 때문이다.

image 출처: https://inpa.tistory.com/entry/AWS-📚-EBS-개념-사용법-💯-정리-EBS-Volume-추가하기

집 컴퓨터 같은 경우 CPU를 업그레이드 한다고 하면 컴퓨터를 끄고 본체를 뜯어서 교체해줘야 한다.

하지만 네트워크로 연결된(묶여있는) 인스턴스와 EBS는 단순히 인스턴스만 다른걸로 EBS와 재연결만 시키면 된다.

image 출처: https://inpa.tistory.com/entry/AWS-📚-EBS-개념-사용법-💯-정리-EBS-Volume-추가하기

2) 하나의 EC2 인스턴스에 여러가지 EBS를 붙일 수 있다. 또한 하나의 EBS를 여러 EC2 장착(EBS Multi Attach) 가능하다.

image 출처: https://inpa.tistory.com/entry/AWS-📚-EBS-개념-사용법-💯-정리-EBS-Volume-추가하기

하나의 컴퓨터에 HDD, SSD를 여러개 부착할수 있는 것처럼 인스턴스도 같은 원리이다.

단, EBS Multi Attach 는 같은 가용영역(AZ)에 위치해있어야하고 최대 16개의 EC2 인스턴스만 동시 연결 가능하다는 제약이 있다.

EBS Multi Attach의 사용 사례는 다음과 같다.

  • 클러스터링된 Linux 응용 프로그램 (예: Teradata)에서 더 높은 응용 프로그램 가용성 달성하기 위해
  • 애플리케이션이 동시 쓰기 작업을 관리하기 위해

EBS 볼륨이란?

EBS로 생성한 디스크 하나하나 저장 단위를 말한다.

EBS 볼륨을 인스턴스에 연결한다는 말은 EC2에 물리적 하드 드라이브처럼 사용하겠다는 뜻이다.

쉽게 말하면 윈도우에서 흔히 볼수 있는 C 드라이브, D드라이브는 각각 디스크이며 볼륨이라고 보면 된다.

image 출처: https://inpa.tistory.com/entry/AWS-📚-EBS-개념-사용법-💯-정리-EBS-Volume-추가하기

EBS Snapshot

특정 EBS 볼륨을 백업한 단위이다.

AMI 와 Snapshot 의 차이점

기본적으로 EBS 를 백업한다는 점에서는 AMI 와 Snapshot 은 동일하다.   하지만, AMI 는 EC2 인스턴스에 연결되어 있는 모든 EBS Volume 을 동시에 백업하는 것이라면, Snapshot 기능은 사용자가 선택한 EBS Volume 하나를 백업한다는 점에서 차이점이 있다. 쉽게 말하면, AMI 이미지 방식은 컴퓨터 하나를 통째로 백업한다고 생각하면 되고, 스냅샷은 하드디스크 내용물만 백업하는 것으로 이해하면 된다.

또한 AMI 인 경우에는 바로 EC2 인스턴스를 생성할 수 있고, Snapshot 인 경우는 Snapshot 을 이용해 AMI 를 생성하는 단계를 거쳐 생성해야한다는 차이점이 있다.(스냅샷은 EBS의 내용을 백업한 데이터라 직접 바로 인스턴스를 만드는게 불가능)

image 출처: https://inpa.tistory.com/entry/AWS-📚-AMI-Snapshot-개념-백업-사용법-💯-정리#ami_와_snapshot_의_차이점

위 내용들을 정리해보면 다음과 같다.

AMI

  • EC2에 연결된 전체 볼륨 백업 (EC2 인스턴스에 연결되어있는 OS가 설치된 루트 장치를 포함)
  • 인스턴스가 어떤 EBS 스냅샷과 연결되어있는지에 대한 정보도 포함
  • 사용 시나리오
    • 긴급하게 백업된 인스턴스를 복구해야하는 경우
    • 인스턴스 설정 등이 복잡해서 설정이 완료된 인스턴스 이미지를 만들고 싶은 경우
    • Auto Scaling Group 에서 새 인스턴스를 자동으로 생성하기 위해 만드는 경우

EBS SnapShot

  • 특점 시점 백업, 특정 EBS 볼륨 백업
  • snapshot으로부터 ami 생성 가능, 단 이 경우 지정된 snapshot이 root volume으로 지정됨
  • 사용 시나리오
    • OS 와 별개로 데이터만 백업하고 싶은 경우
    • 생성된 스냅샷을 기반으로 여러 종류의 AMI 를 생성하고 싶은 경우

Reference

This post is licensed under CC BY 4.0 by the author.