티스토리 뷰

728x90
반응형

서론

AWS Backup은 AWS에서 제공하는 서비스에 대한 데이터 백업을 중앙에서 관리하고 자동화 할 수 있는 완전관리형 서비스이다. 이를 적용하면, 개별로 수행되던 백업 작업을 자동화하고 통합하여 관리하므로 서비스별로 일일이 정의할 필요없이 간단하게 수행할 수 있다.

AWS Backup은 EBS, EC2, RDS, DynamoDB, EFS, FSx, Storage Gateway과 같은 AWS 리소스의 백업을 모니터링할 수 있다.


백업

지금부터는 AWS Backup을 활용하여 EC2를 백업하는 과정에 대해 알아보도록 하자.

먼저 백업을 진행하기 전 EC2의 백업 형태인 스냅샷과 AMI에 대해 알아보자. AWS Backup으로 백업 및 복원을 진행하면, 스냅샷과 AMI가 생성되는데 각각 어떠한 백업을 의미하는지 파악해 보자.

* AMI : EBS 를 포함한 전체 EC2 인스턴스 백업

* 스냅샷 : EBS 볼륨에 대한 백업

1) AWS Backup 실행 (AWS Backup > 보호된 리소스 > 온디멘드 백업 생성)

2) 온디멘드 백업 생성

* 리소스 : 리소스 유형은 EC2 / 백업할 EC2 인스턴스 ID를 선택한다.

* 백업기간 : 백업이 수행될 시간을 정의한다.

* 만료 : 만료 여부를 선택한다.

* 백업 볼트 : 백업이 구성될 백업 볼트를 지정한다.

위와 같이 간단히 구성이 완료되면, 아래와 같이 백업 작업이 진행된다.

3) 작업

위와 같이 EC2 백업을 생성하는 동안 일정 시간이 소요된다. 백업이 완료되면 다음과 같이 AMI와 스냅샷이 생성된다.

이를 기반으로 특정 시점의 스냅샷을 생성할 수 있고, 백업 본을 만들어 다른 리전 또는 다른 계정 또는 부득이하게 삭제된 이미지를 복원하는 용도로 활용할 수 있다.


복원

1) 백업 볼트(AWS Backup > 백업 볼트)

복원 방법은 더 간단하다. 앞서 백업으로 생성한 AWS Backup을 기반으로 손쉽게 복구할 수 있다. 백업 볼트는 백업을 저장하는 AWS 상의 컨테이너를 의미한다. 백업 볼트를 임의로 미리 생성하거나, 백업을 지정하는 보호된 리소스의 백업 볼트 지정할때 생성할 수도 있다.

현재는 Default에 앞서 저장한 백업 볼트의 백업을 기반으로 복구해 보도록 하자.

2) 백업 복구

앞서 백업한 이미지의 ID(복구 지점 ID)를 기반으로 복구를 시도한다. 해당 이미지를 선택하고 복원 버튼을 클릭한다.

백업 복원 설정은 백업 시점의 설정을 기반으로 자동 구성되며, 인스턴스의 유형, VPC, Subnet, Security Group, IAM 등을 설정하고 백업 복원을 클릭한다.

복원 작업도 몇분정도 소요되며, 이 시점에 아래와 같이 실제 EC2 인스턴스와 볼륨이 생성되며 복원이 진행되는 것을 확인할 수 있다.

3) 복원 확인

복원이 완료되었으면, 정상적으로 이전 EC2 인스턴스가 복원되었는지 확인하기 위해 다음과 같이 이전 EC2와 비교를 해보도록 하자.

비교 정보는 ls -la와 df -h이다.[AS-IS EC2]

Last login: Fri Dec 11 06:56:34 2020 from 222.234.121.74

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
45 package(s) needed for security, out of 74 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-192-168-114-198 ~]$ ls -la
total 48
drwx------ 7 ec2-user ec2-user   182 Nov 16 17:02 .
drwxr-xr-x 3 root     root        22 Oct 16 01:24 ..
drwxr-xr-x 4 ec2-user ec2-user    76 Oct 18 14:20 appmesh
-rw-rw-r-- 1 ec2-user ec2-user 20480 Oct 18 15:00 appmesh.tar
-rw------- 1 ec2-user ec2-user  2171 Dec 11 08:41 .bash_history
-rw-r--r-- 1 ec2-user ec2-user    18 Jan 16  2020 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user   193 Jan 16  2020 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user   231 Jan 16  2020 .bashrc
drwxrwxr-x 3 ec2-user ec2-user    58 Nov  4 05:36 kafka
drwxrwxr-x 2 ec2-user ec2-user    24 Nov 16 17:02 oidc
drwx------ 2 ec2-user ec2-user    61 Nov  6 07:48 .ssh
-rw------- 1 ec2-user ec2-user  9534 Nov 16 17:02 .viminfo
drwxrwxr-x 2 ec2-user ec2-user   169 Oct 25 15:14 yaml
[ec2-user@ip-192-168-114-198 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        474M     0  474M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  400K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       30G  2.4G   28G   8% /
tmpfs            99M     0   99M   0% /run/user/1000
[ec2-user@ip-192-168-114-198 ~]$ 

[Restore EC2]

Last login: Fri Dec 11 06:56:34 2020 from 222.234.121.74

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
40 package(s) needed for security, out of 69 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-192-168-120-217 ~]$ ls -la
total 48
drwx------ 7 ec2-user ec2-user   182 Nov 16 17:02 .
drwxr-xr-x 3 root     root        22 Oct 16 01:24 ..
drwxr-xr-x 4 ec2-user ec2-user    76 Oct 18 14:20 appmesh
-rw-rw-r-- 1 ec2-user ec2-user 20480 Oct 18 15:00 appmesh.tar
-rw------- 1 ec2-user ec2-user  2158 Nov 16 17:02 .bash_history
-rw-r--r-- 1 ec2-user ec2-user    18 Jan 16  2020 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user   193 Jan 16  2020 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user   231 Jan 16  2020 .bashrc
drwxrwxr-x 3 ec2-user ec2-user    58 Nov  4 05:36 kafka
drwxrwxr-x 2 ec2-user ec2-user    24 Nov 16 17:02 oidc
drwx------ 2 ec2-user ec2-user    61 Nov  6 07:48 .ssh
-rw------- 1 ec2-user ec2-user  9534 Nov 16 17:02 .viminfo
drwxrwxr-x 2 ec2-user ec2-user   169 Oct 25 15:14 yaml
[ec2-user@ip-192-168-120-217 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        474M     0  474M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  400K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       30G  2.4G   28G   8% /
tmpfs            99M     0   99M   0% /run/user/1000
[ec2-user@ip-192-168-120-217 ~]$ 

위와 같이 복원된 EC2를 확인할 수 있다. 이전과 동일한 파일시스템과 EC2 인스턴스를 구성할 수 있다.

# 이미지 복사 (타 리전 & 타 계정)

앞서 백업한 이미지를 기반으로 복원을 시도해 보았으며, 복사를 할 경우 타 리전 및 타 계정으로 해당 이미지를 복사할 수 있다.

위와 같이 간단하게 복사하고자 하는 리전을 선택하고, 다른 계정을 사용할 경우 계정의 외부 볼트 ARN을 입력하여 이미지를 복사할 수 있다.

728x90
반응형