본문 바로가기

AWS

AWS Backup 사용방법

Intro.

 모든 시스템이 잘 돌아가고 있더라도 해당 데이터가 없어질 확률이 0.001%라도 있다면 백업을 해놓는 것이 안전하다. AWS를 사용한다면 Backup 서비스로 클라우드 상에 있는 데이터를 안전하게 백업할 수 있다. 해당 페이지에서는 예제로 S3를 선택하겠다.

 

1. Backup의 본질적 의미

  • backup은 변경점을 저장하는 것이 아니다.
  • backup은 혹시라도 데이터가 삭제될 경우를 대비해서 똑같은 데이터를 다른 저장소에 보관하는 것을 의미한다.**

2. Backup 일반적인 구조

[1] On-Premise => Cloud

  • 이 경우 S3를 주로 이용하여 Cloud에 백업한다.

[2] Cloud => Cloud

  • 대부분의 AWS 서비스가 자체적으로 백업 서비스를 제공한다. (교차 리전 복제 등)
  • 하지만 AWS Backup 서비스를 사용하면 모든 백업 데이터를 한 곳에서 관리할 수 있다는 장점이 있다.

3. AWS Backup 선택 이유

  • Others 서비스들은 다른 서비스(GCP, Azure)를 사용할 때, 그리고 모든 서비스의 백업 데이터를 한 곳에서 보관할 필요성이 있을 때 고려해볼 가치가 있음
  • 불필요한 복잡도와 관리 비용을 줄이기 위해서

4. AWS Backup 시스템 구조

  • 모든 백업 데이터를 AWS Backup으로 관리하고 싶지만 지원하지 않는 서비스도 있다. 그런 서비스는 해당 서비스가 제공하는 백업 기능을 사용한다.
  • 예를 들어 ECR 같은 경우 다른 리전에 replication을 생성해 놓을 수 있다. 이렇게 백업 시스템을 따로 구축하면 된다.

5. Backup 서비스 사용 방법

1. service opt in

1) opt in

opt in은 option in의 약자로 사용자가 동의를 해줘야 해당 서비스를 사용할 수 있다는 것을 의미한다.

다른 말로, 체크 박스에 디폴트가 체크가 안된 상태를 의미한다.

2) opt out

반면에, opt out은 사용자가 암묵적 동의를 한 상태를 의미한다.

다른 말로, 체크 박스 디폴트가 체크가 된 상태를 의미한다.

 

3) backup opt in 체크 방법

Backup > Settings > Service opt-in > Configure resources > "Enabled"

 

2. IAM Role 생성

  • S3 백업을 위한 작업이므로, 해당 작업에 맞는 role을 생성해야 private bucket에 backup 서비스가 접근할 수 있다.

IAM > Roles > Create role

AWS service > AWS Backup > next

- add permissions

  • AWSBackupServiceRolePolicyForS3Backup
  • AWSBackupServiceRolePolicyForS3Restore

  • Create role를 눌러주면 private S3에 접근할 수 있는 role이 생성된다.
  • Backup 서비스는 해당 권한을 가지고 S3 Backup 작업을 수행한다.

 

3. Protected resources(변하지 않는 파일 백업)

  • 해당 서비스는 업데이트되지 않는 파일을 최소 1회 백업하고, 사용자가 원한다면 기존에 만들어진 Resource ID of Backup service로 다시 백업을 진행할 수 있는 서비스이다.
  • 다른 말로, 1회만 백업하고 싶다면, 해당 서비스를 이용하면 된다.

Protected resources > Create on-demand backup

1) Resource type

  • Backup 할 대상

2) Backup window

  • 해당 job 생성 후 백업데이터 바로 생성

3) Retention period

  • 백업 데이터 유지 기간

4) Backup vault

  • backup archive를 보관하기 위한 장소
  • 백업 데이터 이름과 똑같은 이름으로 vault를 생성해준다.
  • Create backup vault 클릭

5) IAM role

  • 위에서 S3에 접근하기 위해 만든 role을 할당

1) Encryption key

  • The AWS KMS encryption key is used to protect the key used to encrypt backups in this backup vault
  • KMS 키는 해당 데이터를 암호화한 키를 보호하기 위해 사용된다.

4. Backup plans(주기적으로 해당 데이터를 백업)

  • 데이터가 계속 변한다면, Backup plans로 일정 주기마다 데이터를 백업
  • Backup plans에서 설정해놓으면 일정 주기마다 백업된 스냅샷이 Protected resources에 쌓이게 된다.

Backup plans > Create backup plan

Build a new plan 

1) Backup plan name

  • 이름은 backup하고자 하는 이름과 똑같이 맞춰서 생성할 것.

2) Backup rule name

  • Backup 데이터 이름과 같은 이름

3) Backup vault

  • Backup 데이터 이름과 같은 이름을 안 만들어놓았다면, 생성해서 사용

4) Backup frequency

  • 선택지가 여러 개 있다.
  • 데이터가 자주 변한다면, Daily로 선택하고, 그렇지 않다면 상황에 맞춰서 옵션을 선택

5) PITR 옵션

[1] 선택

  • 특정 시점으로 되돌릴 수 있는 기능

[2] 선택 안 함

  • If you do not enable continuous backups, AWS Backup takes snapshot backups for you
  • snapshot으로 backup 파일을 가질 수 있다.

6) Backup window

  • UTC time 8:00 PM 선택
  • 그러면 한국 시간으로 새벽 5:00 AM이다.

[1] start within

  • 백업이 8시간 이내에 진행된다는 의미
  • Expired 된 backup은 진행하지 않는다.

[2] Complete whthin

  • 7일 이내까지 완료 시간을 주겠다는 의미.
  • 만약 7일 이내에 못 끝내면 backup status : Expired 가 된다.

7) Transition to cold storage

  • 해당 데이터를 cold storage로 보낼지 결정하는 것.

8) copy to destination(optional)

  • 해당 backup vault의 copy를 생성할지 선택할 수 있다.

 

  • 백업 대상에 맞는 권한 선택

  • backup 대상을 선택.
  • 해당 버킷 이름과 위에 정한 이름들은 같아야 한다.

  • 백업 대상에서 제외할 대상 선택

6. Backup 더 고민해볼 문제

[1] 백업의 단계는 몇 단계가 적정한가?

[2] lifecycle의 주기는?

[3] retention period는?..etc

  • 더 고민해볼 문제들은 모두 비용과 연관되어 있다. 하지만 초기에는 비용 최적화를 심각하게 고려할 정도로 데이터 양이 많지 않다.
  • 그러므로 수용가능한 정도의 값으로 지정을 해두고, 세부적으로 최적화가 필요해지는 시점에 민감하게 해당 설정을 해가면 될 거라 생각한다.

 

 

references

1. service-opt-in

https://docs.aws.amazon.com/aws-backup/latest/devguide/service-opt-in.html

 

2. proteced resources

https://docs.aws.amazon.com/aws-backup/latest/devguide/create-on-demand-backup.html

 

3. backup plans

https://docs.aws.amazon.com/aws-backup/latest/devguide/create-a-scheduled-backup.html

 

4. private S3 access

https://stackoverflow.com/questions/72554970/aws-backup-from-s3-access-denied