![](https://seokwoo.kim/wp-content/uploads/2021/11/sddefault.jpg)
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 란?
Amazon DLM 이란 공식 도큐먼트에도 적혀 있듯이, Amazon EBS 볼륨을 백업하기 위한 Snapshot 의 생성 → 보관 → 삭제의 라이프사이클을 자동화하여 아래와 같은 이점을 누릴 수 있는 서비스입니다.
- 정기적인 백업 스케줄에 맞춰 스냅샷을 생성하여 중요한 데이터를 보호합니다.
- 감사기관이나 회사 내부의 규정 등에 의해 요구되는 데이터 백업 설정을 간편하게 해줍니다.
- 오래된 스냅샷을 삭제하여 스토리지 비용을 절감합니다.
그럼, 실제로 어떻게 설정하는 것인지 바로 DLM Policy를 생성하여 Snapshot을 생성해보도록 하겠습니다.
![](https://www.seokwoo.kim/wp-content/uploads/2021/11/image-1.png)
DLM 서비스로 이동해서 Create new lifecycle policy를 EBS snapshot policy를 만듭니다.
![](https://www.seokwoo.kim/wp-content/uploads/2021/11/image-2.png)
Target resource type은 instance로 설정을 하고 tags, policy description을 작성 합니다.
![](https://www.seokwoo.kim/wp-content/uploads/2021/11/image-3.png)
Backup Schedule과 보관 주기(횟수)를 설정 합니다.
![](https://www.seokwoo.kim/wp-content/uploads/2021/11/image-5.png)
Backup Schedule과 보관 주기(횟수)를 설정된 사항을 확인하고 Create Policy 를 클릭하여 새로운 policy를 구성 합니다.
아래와 같이 구성이 되면 정해진 일정에 따라서 백업이 진행이 됩니다.
![](https://www.seokwoo.kim/wp-content/uploads/2021/11/image-4.png)
생성된 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굽기 지원한다고 하네요