AWS EC2를 Amazon DLM (Data Lifecycle Manager)으로 백업 자동화 관리 자동화 하기
EC2 인스턴스를 백업하는 방식에는 크게 두가지 방법으로 나뉩니다.
- AMI 생성
- Snapshot 생성
AMI(Amazon Machine Image)를 생성하는 경우에는 인스턴스의 metadata 및 OS 가 설치된 그대로의 이미지(하나 또는 여라 개의 스냅샷 + 메타데이터)를 생성하는 것이고요, Snapshot을 생성하는 경우에는 인스턴스에 붙어있는(혹은 독립적인) EBS 볼륨을 스냅샷 형식으로 백업하는 것입니다.
AMI 백업 방식의 경우, 일부만 나열하자면 일반적으로 아래와 같은 경우에 유용하게 쓰입니다.
- 긴급하게 백업된 인스턴스를 복구해 야하는 경우
- 인스턴스 설정 등이 복잡해서 설정이 완료된 인스턴스 이미지를 만들고 싶은 경우
- Auto Scaling Group에서 새 인스턴스를 자동으로 생성하기 위해 만드는 경우
Snapshot 백업 방식의 경우에는 아래와 같은 경우에 유용합니다.
- OS 와 별개로 데이터만 백업하고 싶은 경우
- 생성된 스냅샷을 기반으로 여러 종류의 AMI 를 생성하고 싶은 경우
- Amazon DLM을 활용하여 백업을 자동화하고 스토리지 비용 최적화를 원하는 경우 (동일한 볼륨에 대한 스냅샷을 여러 번 생성하면 변경된 부분에 대한 데이터만 추가적으로 백업 + 오래된 스냅샷은 자동으로 삭제)
Amazon DLM (Data Lifecycle Manager) 란?
Amazon DLM(Data Lifecycle Manager) 이란 공식 도큐먼트에도 적혀 있듯이, Amazon EBS 볼륨을 백업하기 위한 Snapshot 의 생성 → 보관 → 삭제의 라이프사이클을 자동화하여 아래와 같은 이점을 누릴 수 있는 서비스입니다.
- 정기적인 백업 스케줄에 맞춰 스냅샷을 생성하여 중요한 데이터를 보호합니다.
- 감사기관이나 회사 내부의 규정 등에 의해 요구되는 데이터 백업 설정을 간편하게 해줍니다.
- 오래된 스냅샷을 삭제하여 스토리지 비용을 절감합니다.
그럼, 실제로 어떻게 설정하는 것인지 바로 DLM Policy를 생성하여 Snapshot을 생성해보도록 하겠습니다.
DLM 서비스로 이동해서 Create new lifecycle policy를 EBS snapshot policy를 만듭니다.
Target resource type은 instance로 설정을 하고 tags, policy description을 작성 합니다.
Backup Schedule과 보관 주기(횟수)를 설정 합니다.
Backup Schedule과 보관 주기(횟수)를 설정된 사항을 확인하고 Create Policy 를 클릭하여 새로운 policy를 구성 합니다.
아래와 같이 구성이 되면 정해진 일정에 따라서 백업이 진행이 됩니다.
생성된 Snapshot 확인
좌측의 메뉴 중 Snapshots 메뉴로 이동합니다. 위의 Policy 작성 단계에서 설정한 시간에서 1시간 이내로 기다리면 Snapshot 이 생성됩니다. 아래 화면과 같이 EC2에 마운트했던 EBS 볼륨 별로 Snapshot 이 생성되었음을 확인할 수 있습니다! 🙂
생성된 Snapshot 으로부터 EC2 인스턴스화 하고싶은 경우
AWS의 공신문서를 참고하시면 차례대로 나와 있습니다.
참고할 AWS 공식문서 리스트
- Creating an EC2 Instance From a Snapshot
- Making an Amazon EBS Volume Available for Use on Linux
- Making an Amazon EBS Volume Available for Use on Windows
한 가지 유의할 점은 root volume 으로부터 먼저 인스턴스화 시킨 후에 root volume 이 아닌 추가적인 볼륨을 마운트 해야 한다는 점입니다. root volume 이 아닌 볼륨으로 EC2 인스턴스를 만들려고 시도하면 Initializing 단계에서 실패하게 됩니다.
마운트를 별도 지정해야한다면 aws backup을 사용해 ami를 굽는게 더 좋지 않을까요?
별도 관리할 ebs의 백업용으론 모르겠지만 ami를 대체하기엔 좀 아쉬운느낌입니다.
https://aws.amazon.com/ko/about-aws/whats-new/2020/11/ami-lifecycle-management-available-data-lifecycle-manager/
ami굽기 지원한다고 하네요