안녕하세요 :o
오늘은 AWS Backup을 사용하여 EC2를 백업 및 복원을 해보도록 하겠습니다.
AWS Backup이란 파일 시스템, 블록 스토리지 볼륨, 관계형 데이터베이스, NoSQL 데이터베이스등의 백업을 필요한 순간에 손쉽게 자동(or 수동)백업할 수 있는 서비스이다.
AWS Backup을 사용하면 데이터 보호를 중앙 집중화하고 자동화할 수 있습니다. 또한 규모에 맞게 데이터를 간소화하여 비용을 효율적으로 관리할 수 있습니다.
그리고 간단한 백업 일정 및 보존관리 자동화를 통해 백업의 빈도와 백업데이터의 유지기간등을 설정하여 더욱 편리하게 백업 정책을 관리할 수 있습니다.
목 차
1. 온디맨드 Backup (수동백업)
2. EC2 인스턴스의 자동 AWS Backup 작업 구성
3. AWS Backup을 사용하여 EC2 인스턴스 복원
1. 온디맨드 Backup
온디맨드 백업은 리소스를 즉시 백업하기 시작합니다. 백업 계획으로 예약 시간이 아닌 다른 시간에 백업을 생성하려는 경우 온디맨드 백업을 사용하여 즉각적으로 백업을 할 수 있습니다. 예를 들어 온디맨드 백업을 사용하여 언제든지 백업 및 기능을 테스트할 수 있습니다.
우선 권한정책 설정을 위해 IAM역할을 생성한 후 정책을 생성하고 역할에 연결을 하겠습니다.
IAM에 들어가 역활을 선택하여 줍니다.
역할을 선택한다음 역할만들기를 선택하여 줍니다.
AWS서비스 역할을 선택한 다음 AWS Backup을 선택해 줍니다.
다음은 권한정책연결을 선택하는 과정입니다.
AWSBackupServiceRolePolicyForBackup
AWSBackupServiceRolePolicyForRestores
두 정책을 선택하여 AWS 리소스를 백업 및 복원할 수 있는 권한을 부여해 줍니다.
이렇게 AWS Backup에 권한을 부여해줬습니다.
이제 EC2의 온디맨드 Backup 작업구성을 진행하겠습니다.
AWS Backup 콘솔의 왼쪽에 있는 설정을 클릭하여 옵트인페이지에서 리소스 구성을 선택해줍니다.
Backup서비스로 보호될 리소스의 유형을 활성화 및 비활성화를 설정할 수 있습니다.
백업하려는 리소스는 사용중인 리전에 있어야 합니다.
저는 EC2백업을 위해 EC2만 선택해줬습니다.
인스턴스의 온디맨드 백업 작업을 생성하겠습니다.
백업하고 싶은 리소스 유형을 선택해줍니다.
보존기간을 선택하여 백업주기를 수정할 수 있습니다.
이렇게 인스턴스의 온디맨드 backup 작업구성을 완료했습니다.
2. EC2 인스턴스의 자동 AWS Backup 작업 구성
1번 세션과 똑같이 백업될 리소스 유형을 선택해줍니다.
새 계획 수립을 선택하여 세부정보를 지정하며 백업 설정을 진행하겠습니다.
Backup vault는 백업을 구성하는 컨테이너 입니다. 백업 규칙에 의해 생성된 백업은 백업 규칙에서 지정한 backup vault에 구성됩니다.
backup vault를 사용하여 백업을 암호화하고 backup vault 에서 백업에 대한 액세스를 제어하는 데 사용되는 AWS Key Management Service(AWS KMS) 암호화 키를 설정할 수 있습니다.
백업빈도는 12시간마다, 매일, 매주, 매월등 백업 빈도를 선택할 수 있습니다.
매주를 선택하면 백업을 수행할 요일을 지정할 수도 있습니다.
보존기간은 보존기간이 끝나면 자동으로 백업을 삭제하여 스토리지 비용을 절약합니다.
설정을 완료한 후 계획생성을 선택하여 줍니다.
대상으로 복사설정(Copy to destination)는 다른리전에 백업 복사본을 생성합니다. 필요에 따라 백업 계획을 자동으로 여러 AWS 리전에 복사할 수 있습니다
백업 계획에 리소스를 할당하면 백업 계획에 따라 할당된 리소스가 자동으로 백업됩니다.
즉 리소스할당을 통해 백업하고싶은 리소스 유형을 선택할 수 있습니다.
저는 EC2 백업을 위해 리소스유형에 EC2를 선택하였습니다. 인스턴스 ID선택란에서 모든 인스턴스를 선택할 수 있습니다. 반대로 "3.리소스제외"를 선택하여 필요하지 않는 리소스를 백업하지 않으므로 비용을 절약할 수 있습니다.
이렇게 백업설정을 완성하였습니다.
3. AWS Backup을 사용하여 Amazon EC2 인스턴스 복원
backup vault을 선택하여 가장 최근의 복구시점을 선택합니다.
저는 테스트용으로 사용중이던 bastion서버를 사용하여 리소스할당을 해놨습니다.(그림2-10)
네트워크 설정은 자동으로 기존 bastion서버의 네트워크 그대로 설정이 되어있습니다.
이렇게 복원을 해주면 백업계획에 설정해놓은 EC2가 생성이 됩니다.
작업(setting)에 복원작업을 확인해보면 복원된 EC2를 확인해 볼 수 있습니다.
사진3-5 리소스 ID와 인스턴스의 ID가 같은걸 확인할 수 있습니다.
오류
저는 [사진2-11]까지 백업설정을 완료한 후 [사진3-1]처럼 복구시점이 저장되어야 복구를 할 수 있지만 복구시점이 저장되지 않아 복구를 하지 못했습니다. 그 이유는 백업설정을 해줬을 때 설정했던 [사진2-8]백업기간 때문이였습니다.
백업기간백업 기간은 백업 기간이 시작되는 시간과 시간으로 구성됩니다. 백업 작업은 이 창에서 시작됩니다. 사용할 백업 기간을 잘 모르는 경우 AWS Backup에서 권장하는 기본 백업 기간을 사용하도록 선택할 수 있습니다. 기본 백업 기간은 오전 5시 UTC(협정 세계시)에 시작하도록 설정되어 있으며 8시간 동안 지속됩니다.
즉 백업기간 기본값은 미국시간으로 오전 5시부터 8시간안으로 랜덤으로 복구시점이 저장되는거 같았습니다.
그래서 제가 아무리 기다려도 복구시점이 저장이 안된 거 같았습니다. 그래서 백업시간을 사용자 지정으로 선택하여 시간을 변경하였습니다.
제가 작업했던 시간이 11시 55분이여서 UTC시간은 계산하여 1시간안으로 복구시점이 저장되도록 설정을 했습니다.
다행히 복구시점이 만들어져서 해당 문제를 해결할 수 있었습니다.
오늘은 이렇게 AWS Backup을 사용하여 수동저장 및 자동저장, 복구까지 진행하였습니다.
감사합니다 :)
참고자료
'AWS > EC2' 카테고리의 다른 글
[License Manager / Systems Manager] Ubuntu LTS를 Ubuntu Pro로 업그레이드 (0) | 2023.08.04 |
---|---|
[SSH] SSH 접속 에러 (0) | 2023.07.20 |
[AWS EIC] EC2 Instance Connect Endpoint를 사용하여 Bastion 없이 폐쇄된 VPC의 EC2에 접근 (0) | 2023.07.12 |
[ Network Load Balancer ] NLB & ALB를 사용하여 서버 구축 (0) | 2023.07.07 |
[Elasti Cache #1] Redis생성 & EC2에 접속 (0) | 2023.04.04 |