AWS

Part 17. AWS 서비스를 운영하면서 필요한 것들 (백업)

cwchoiit 2024. 1. 28. 18:15
728x90
반응형
SMALL
728x90
SMALL

 

이번에는 백업에 대해서 알아보자. 백업은 크게 세가지를 해 볼 예정이다.

  • EC2
  • EBS
  • RDS

 

EC2 백업

AWS Console에서 검색창에 "AWS Backup"을 입력해서 서비스를 찾아 들어간다.

 

좌측 Backup vaults를 클릭해서 "Create backup vault" 클릭

 

다음 부분을 설정한다.

- Backup vault name: cwchoiit-vault

- Encryption key: 기본으로 가지고 있는 AWS/Backup

 

생성을 하면 해당 볼트 세부내용 화면으로 진입하게 되고 그 화면에서 "Create on-demand backup" 버튼을 클릭한다.

 

생성하는 화면에서 다음을 수정한다.

- Resource type: EC2

- Instance ID: 백업할 EC2의 ID

- Backup window: Create backup now

- Total retention period: Forever

- Backup vault: 방금 만든 vault

- IAM role: Default role

 

이 상태로 생성하게 되면 다음 화면처럼 백업이 진행이 된다.

 

진행이 다 끝나면 다음과 같이 "Completed" 문구가 보인다.

 

그리고 이렇게 백업이 완료됐으면 Recovery point ARN에서 보면 마지막에 AMI ID가 보인다. 나의 경우 다음과 같다.

ami-01f69086cb75c9363

 

이 AMI ID를 복사해서 EC2 > Snapshots 으로 들어가서 검색해보자.

 

그럼 백업한 오늘 날짜의 스냅샷이 보인다.

 

이 스냅샷으로 EC2를 복원해보자. 다시 AWS Backup > Backup vaults > 위에서 만든 vault 로 들어간다.

그럼 다음처럼 Recovery points 리스트에 방금 백업한 녀석이 보인다.

 

 이 녀석으로 복원해보자. 선택 후 우측 Actions > Restore 클릭

 

복원 화면에서 설정할 것은 없다. 기존 EC2가 가지고 있는 모든 기본 설정을 동일하게 가져가기 때문에 더 해줄 것은 없고 바로 복원을 눌러보자.

 

Restore backup 버튼을 누르면 Jobs 리스트에서 다음과 같이 복원 작업이 보여진다. 

 

백업 작업이 완료되면 EC2 > Instances 리스트에서 백업이 완료돼서 실행중인 EC2 인스턴스를 볼 수 있다. 해당 인스턴스를 클릭해서 하단에 AMI location을 살펴보면 "AwsBackup"이 붙어있음을 확인할 수 있다.

 

 

 

EBS 백업

이번에는 Elastic Block Storage를 백업해보자. EC2에 붙어있는 Volume인데 이 녀석을 백업해서 복구하는 작업을 하자. 

우선 볼륨을 백업하려면 어떤 볼륨을 백업할지 알아야 하기 때문에 EC2 인스턴스 리스트에서 원하는 인스턴스를 선택 후 하단 Storage 탭에서 볼륨 ID를 가져오자.

 

해당 볼륨을 백업할 예정이다. 백업하기 위해 AWS Backup 서비스로 가서 좌측 Dashboard를 클릭해서 나오는 화면의 가운데 'Create on-demand backup' 버튼을 클릭.

 

생성하는 화면에서 다음을 수정한다.

- Resource type: EBS

- Volume ID: 아까 확인했던 볼륨

- Backup window: Create backup now

- Total retention period: Forever

- Backup vault: cwchoiit-vault

- IAM role: Default role

 

생성하면 다음과 같이 잡 리스트에 생성중인 백업이 보인다.

 

백업을 만들 때 지정한 Backup vault로 들어가보면 다음과 같이 Recovery points에 EBS 타입의 백업이 보인다. 완료가 되면 다음과 같이 Completed 상태로 보여진다.

 

만든 스냅샷으로 복원을 해보자. 스냅샷을 선택하고 우측 Actions > Restore 클릭

 

복원 설정 화면에서는 다음과 같이 수정한다.

- Size: 20(GB)

- Availability zone: ap-northeast-2a

 

나머지는 기본값으로 세팅 후 "Restore backup" 버튼을 클릭해서 복원한다. 완료가 되면 해당 스냅샷 ID를 가져와서 EC2 > Elastic Block Store > Volume 으로 간다. (해당 스냅샷 ID는 Backup vault에서 확인 가능하다. 아래 사진 참고)

 

Volume 리스트에 스냅샷으로부터 복원된 EBS가 보인다.

 

이제 이 복원한 EBS를 EC2에 붙여보자. 그러기 위해선 일단 EC2의 Volume을 떼어내야 한다. 그러기 위해선 EC2를 중지해야 한다. 먼저 중지를 하자. 중지가 완료되면 해당 인스턴스의 볼륨을 떼어낸다. 떼어내고 싶은 인스턴스를 클릭 후 하단 "Storage" 탭에서 볼륨을 클릭한다.

 

볼륨을 클릭하면 볼륨 리스트에서 해당 볼륨이 보이는데 선택 후 우측 Actions > Detach volume 클릭

 

잘 떼어내면 상태가 In-Use에서 Available로 변경된다.

 

이제 백업한 볼륨을 붙여보자. 다시 볼륨리스트로 가서 백업한 볼륨을 선택하고 Actions > Attach volume 클릭

 

그러면 복원 설정 화면에서 다음을 수정한다.

- Instance: 볼륨에 붙일 인스턴스

- Device name: /dev/xvda

 

Attach volume을 클릭하면 백업한 볼륨이 인스턴스에 붙는다. 붙었는지 확인하려면 상태를 보자. 해당 볼륨이 Available이 아니고 In Use로 보여진다.

 

인스턴스에서도 확인 가능하다. 백업한 볼륨을 붙인 인스턴스를 클릭해서 하단 Storage 탭을 클릭하면 볼륨 ID가 보인다. 백업한 볼륨의 ID인지 확인.

 

 

RDS 백업

이번에는 RDS를 백업해보자. AWS Backup 서비스로 가서 Dashboard 화면에서 "Create on-demand backup" 버튼 클릭

 

설정 부분은 다음과 같다.

- Resource type: RDS

- Database name: 백업할 RDS

- Backup window: Create backup now

- Total retention period: Forever

- Backup vault: 위에서 사용했던 vault

- IAM Role: Default role

 

이렇게 설정한 후 백업을 만든다. 그러면 Job 리스트에서 백업이 진행중인 것을 확인 가능하다.

 

RDS 백업은 시간이 조금 소요되므로 여유롭게 기다려보자. 시간을 좀 기다리고 나니 다음과 같이 백업이 완료됐다. Status가 Completed 상태가 된 것을 확인할 수 있다.

 

그리고 이 백업된 스냅샷은 RDS 서비스 내 Snapshots 화면에서도 확인할 수 있다. Backup service 탭을 눌러보면 다음과 같이 스냅샷이 보인다.

 

여기서 한 가지 알고 가야하는건 RDS 서비스를 만들면 시스템에서 자동으로 백업을 하는데 그 백업 시간이 있다. 이 백업 시간과 내가 직접 백업을 하려는 백업 시간이 너무 가까우면 위 작업을 따라했을 때 백업이 되지 않는다. 이를 참고하자. RDS의 백업 시간은 아래 사진처럼 확인 가능하다.

 

백업 시간을 확인하고자 하는 RDS를 클릭 > Maintenance & backups 탭 클릭후 Backup 섹션을 보자.

 

여기서 Backup window 항목을 보면 백업 시간을 확인할 수 있다. 이 시간을 변경할수도 있다. 참고하자.

 

이제 백업한 RDS로 복원을 해보자. 백업 볼트로 가서 백업한 RDS를 선택해서 Actions > Restore

 

 

복원 설정 화면에서 수정할 부분은 다음과 같다.

- DB Instance class: 원하는 클래스 선택

- DB Instance Identifier: 적절하게 입력

 

그 외는 기본으로 세팅된 원래 RDS 서비스와 동일한 설정을 따르고 복원을 해보면 된다.

 

근데 위 설정처럼 하면 다음과 같은 에러를 마주하게 된다.

 

t2.micro는 암호화가 지원이 안된다고 하니 살짝 더 큰 클래스를 선택해보자. (본인은 t2.small을 선택) 이 부분도 시간이 꽤 소요되니까 잘 기다려보자. 다 끝나면 다음과 같이 상태가 Completed로 변경된다.

 

그리고 RDS 서비스 내 Databases 화면으로 가면 백업한 RDS가 생성됐음을 확인할 수 있다.

 

백업한 RDS 세부 정보를 보면 Security group이 default로 설정되어 있다. 이것을 바꿔보자. 기존 RDS가 사용하는 보안 그룹으로.

 

우측 Modify 버튼 클릭해서 다음 부분을 수정한다.

 

수정한 다음 다시 확인해보면 보안 그룹도 잘 적용됐다.

 

 

이제 이 RDS로 원래 사용하던 RDS를 대체하려면 엔드포인트를 변경해주면 된다.

728x90
반응형
LIST