AWS Backup으로 AWS EFS를 백업해봅시다.

안녕하세요. 클래스 메소드 코리아의 서은우입니다. 오늘은 AWS Backup을 사용한 AWS EFS 백업에 대해 소개해드리도록 하겠습니다.
2021.12.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS Backup이란

EFS를 백업하기에 앞서 AWS Backup 서비스에 대해서 간단하게 알아보도록 하겠습니다. AWS Backup은 여러 AWS 서비스의 백업을 간편하게 도와주는 서비스라고 생각하시면 되는데요. EC2 인스턴스, EBS, EFS, S3, RDS 같이 DB, 스토리지, 파일 시스템 서비스의 백업과 온프레미스의 Storage Gateway, VMware 머신의 백업까지 다양한 서비스의 백업을 지원합니다.

AWS Backup을 통해 백업 활동을 구성하고 관리, 제어 할 수 있습니다. 자세한 내용은 아래의 링크를 참조해 주세요

AWS 서비스들의 백업과 복구를 효율적으로 관리하는 AWS Backup에 대하여

AWS Backup을 이용한 EFS 백업

과거, Amazon EFS를 백업하기 위해서는 AWS DataPipeline 을 이용하거나 EFS-to-EFS 백업 방식을 사용해야했습니다. 백업을하기 위해서 AWS DataPipeline에 대한 지식이 이나 백업 프로세싱을 위한 AWS Lambda,  DynamoDB 등 추가적인 리소스가 필요한 여러 불편함이 존재했습니다.

하지만 AWS Backup 서비스가 릴리즈 된 후, EFS를 생성할 때 자동 백업 항목을 활성화 하는 것으로 간단하게 백업을 설정할 수 있습니다. 이것은 수동, 자동, 복구 등 Amazon EFS의 백업 관한 모든 작업들이 AWS Backup을 통해서만 이루어질 수 있기 때문인데요, 다른 추가적인 설정 없이 간단히 백업을 설정할 수 있다는 점이 매우 좋은 것 같습니다. 서비스 이용요금은 무료이며 단지 백업 파일을 저장하는 저장 비용만 지불하면 되므로 요금에 대한 부담도 크지 않습니다. 그럼 자세하게 AWS Backup을 활용한 EFS 백업에 대해 알아가보도록 하겠습니다.

특징


증분 백업

AWS Backup은 EFS 백업 파일에 대해 증분식 백업 방식을 사용합니다. 증분식 백업은 초기 백업 작업 이후 후속 백업 작업을 실행할 때, 해당 백업 파일의 변경된 부분(추가, 삭제 등)에 대해서만 백업을 진행하는 것인데요, 이런 증분식 백업은 백업 시간의 단축, 스토리지 비용의 절약 등의 장점을 가지고 있습니다.

그림과 같이 변경, 추가, 삭제 된 파일 및 디렉토리에 대해서만 백업이 이루어지고 이전의 데이터를 참조하는 것으로 스토리지 절약, 백업 시간 단축 등이 가능합니다.


자동으로 생성되는 리소스들

자동 백업을 설정하게 되면 백업에 필요한 아래의 리소스들이 자동으로 생성되게 됩니다.

  • 백업 계획
  • 백업 규칙
  • 백업 볼트
  • KMS 키

커스텀한 백업 규칙을 사용하지 않고, EFS 자동 백업으로 백업 설정을 할 경우에는 AWS Backup가 기본적으로 제공하고 있는 기본 백업 계획에 따라 백업이 진행됩니다. 이 백업 계획은 EFS 자동 백업 설정이 활성화 됨과 동시에 AWS Backup에서 aws/efs/automatic-backup-plan 라는 이름으로 자동적으로 생성되며, 백업 계획 뿐만 아니라 백업 규칙, 백업 볼트(저장소) 까지 자동으로 생성 됩니다.

디폴트 백업 계획의 내용

  • 백업 규칙: aws/efs/automatic-backup-rule 이라는 이름의 백업 계획이 존재하며, 매일 오전 5시(UTC) - 35일간 보존 으로 규칙이 설정되어 있으며 수정이 가능합니다.
  • 백업 볼트: aws/efs/automatic-backup-vault 라는 이름의 백업 볼트가 존재하며, 자동 백업 설정이 활성화된 모든 EFS의 백업 데이터는 이 곳에 저장됩니다.
  • 할당된 리소스: AWSServiceRoleForBackup IAM 역할이 할당되어 있으며, AWS Backup이 다른 AWS 서비스를 자동으로 호출하기 위해 필요한 모든 권한을 포함하고 있습니다.

자동 백업이 설정된 모든 파일 시스템들은 AWS Backup 으로 부터 미리 정의된 계획, 규칙, 저장소에 의해 백업이 진행되게됩니다.

Amazon EFS로 생성된 백업 파일들은 기본 백업 볼트에 저장되며 항상 암호화 됩니다. 이를 위해 KMS에서 aws/backup 이라는 이름의 키가 자동적으로 생성되며, 기본 백업 볼트는 이 암호화 키를 사용하게 됩니다. 


백업 파일에 대한 암호화

Amazon EFS의 백업의 경우 항상 AWS Backup에 의해서 이루어지기 때문에 백업 데이터는 백업 볼트에 저장되게 됩니다. 그리고 백업 볼트에 저장되는 파일들은 항상 암호화 되기 때문에 암호화 여부에 상관 없이 암호화 되어 저장되게 됩니다.


교차 리전 백업 지원

AWS Backup은 Amazon EFS 백업에 대해 교차 리전 백업을 지원합니다. 기존에는 다른 리전 간 백업을 위해서는 AWS DataPipeline을 이용해야했지만 이제는 손 쉽게 리전 간 백업을 시행할 수 있습니다. 이는 단순히 백업 뿐만 아니라 EFS 의 데이터를 전송하는 기능으로써도 편리하게 사용할 수 있습니다. 예를 들어 리전 B에 리전 A 와 똑같은 EFS를 생성해야할 경우가 있습니다. 이것을 위해 DataPipeline을 사용하고 그 데이터를 받기 위한 새로운 EFS 생성의 과정이 필요 없이, AWS Backup 으로 온디맨드 백업 실행 후 생성된 백업을 리전 B에 복구시키는 것으로 과정을 간편화할 수 있습니다.

하지만 교차 리전 백업을 지원하지 않는 리전도 있기 때문에 주의가 필요합니다.


주의해야할 점

  • 데이터의 일관성

Amazon EFS는 가용성이 뛰어난 서비스이기 때문에 백업이 진행되고 있어도 EFS에 액세스 및 수정이 가능합니다. EFS를 사용 중일때 백업을 진행할 경우 데이터의 불일치가 발생할 수 있으므로 데이터의 일관성을 지키기 위해서 백업 작업 중에는 시스템을 중지하거나, 파일 시스템을 사용하지 않는 시간대에 백업을 진행하는 것이 좋습니다.

  • 연결할 리소스의 관리

백업 계획에 리소스를 연결하기 위한 2가지 방법이 있습니다.

  • 리소스 ID
    • 리소스 ID 는 정적인 것으로 리소스의 삭제 및 추가가 번거로우며, 리소스가 늘어나면 늘어날 수록 관리가 어려워진다는 특징이 있습니다.
  • 태그
    • 태그 를 이용하면 편리하게 리소스를 관리할 수 있지만, 대상 리소스에 대한 올바른 태그가 부여 되였는지, 태그의 수정 등 관리에 유의하여야합니다.

복원

AWS Backup 백업 볼트에 저장되어 있는 복구 시점 을 통해 복구를 진행할 수 있으며,  전체 파일 시스템이 복원되는 전체 복원과 특정 파일/디렉토리 를 복원할 수 있는 항목 복원이 있습니다. 복원을 진행할 경우 새로운 EFS를 생성하거나, 소스 파일 시스템의 디렉토리에 복원할 수 있습니다. 새로운 EFS를 생성하여 복원할 경우 EFS 이름은 지정할 수 없으며, 암호화, 스토리지 클래스 등과 같은 설정은 가능합니다.

복원을 진행하기에 앞서, 백업 볼트의 액세스 정책을 확인할 필요가 있습니다. 디폴트로 생성되는 백업 볼트의 액세스 정책에서 backup:StartRestoreJob 항목을 거부하고 있기 때문에 그대로 복원을 진행하면 오류가 발생하게 됩니다. 복원 작업을 위해서는 해당 항목을 허용하거나 삭제하는 수정 작업이 필요합니다.

복원을 진행하면 생성된 EFS 안에 aws-backup-restore_복원날짜 라는 이름의 디렉토리가 생성되게 됩니다. 새로운 EFS 생성으로 복원을 진행한 후, EFS를 사용하기 위해서는 탑재 대상 설정 등 추가 설정이 필요합니다.


요금

AWS Backup 이용에 대한 요금은 없습니다. 백업 파일이 저장되는 스토리지 요금만 내면 되기 때문에 비용적인 측면도 좋습니다. 자세한 사항은 AWS Backup 요금 항목을 참조하시면 됩니다.

참조

AWS EFS 공식 문서

AWS Backup 공식 문서