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
'AWS' 카테고리의 다른 글
The clusterInstanceHostPattern configuration property is required (0) | 2022.11.21 |
---|---|
VPC 주요 개념들 (0) | 2022.10.20 |
[ELB] Load Balancer Health Check Error - Health checks failed with these codes: [302] (0) | 2022.09.05 |
public IP address 구하는 방법 (0) | 2022.08.31 |
[CI/CD] 배포 방법 (0) | 2022.08.30 |