AWS 데이터 백업, 보관(1)

Joshua_s·2021년 11월 24일
0
post-thumbnail

AWS의 백업 환경으로서의 사용

데이터의 손실을 방지하려면 적절한 백업 환경이 중요하다. 하지만 온프레미스에 백업환경을 구축하면 상당한 시간과 비용이 소모된다. AWS 기능과 서드파티 솔루션을 잘 조합하여 설계하면 저렴한 비용으로 유연한 백업환경을 구축할 수 있다.

AWS를 이용한 백업은 크게 두가지로 나뉜다. 첫번째는 온프레미스 환경의 데이터를 AWS로 백업하는 경우이고 보통 AWS를 처음 이용하는 기업에서 주로 시도되며 클라우드 활용의 첫관문이다. 두번째는 AWS에 구축한 시스템을 백업하는 경우이다.

핵심 설계 사항

1. 스토리지 게이트웨이를 이용한 자동 백업
2. S3, Glacier로 수명 주기 관리
3. 용량의 대부분을 차지하는 이미지파일과 데이터베이스를 S3에 백업

온프레미스 환경의 데이터 백업

온프레미스 환경의 데이터를 AWS에 백업하는 경우는 백업 대상이나 예산에 따라 설계가 달라진다.

1. S3를 명령행 인터페이스를 통해 이용하는 방법
백업 대상이 파일인 경우 유효하며 간편하면서도 저렴하다. S3는 범용적인 파일 저장 서비스로서 온라인 파일처럼 사용할 수 있다. S3는 AZ에 3중화 되있으며 엄청난 내구성을 자랑한다.

2. EC2와 EBS로 구축한 백업용 서버에 데이터를 동기화시키는 방법
첫번째보다 비용이 들지만 DB 백업을 유연하게 실행할 수 있다. 예를 들자면 백업 대상 EC2에서 유틸리티를 실행시키면 DB를 온라인 백업 할 수 있다.

3. AWS스토리지 게이트웨이를 이용하는 방법
1,2번보다 적은 노력으로 자동 백업 환경을 구축할 수 있으며 백업 관리의 통합도 가능하다. 온프레미스 환경에 잇는 서버에 스토리지 관리 전용 소프트웨어를 설치하여 AWS와 접속하는 서비스이다.

S3로 파일 백업

파일 서버의 파일이나 웹서버의 특정 디렉터리등을 백업하느경우 명령행 도구인 AWS CLI를 이용하여 S3에 백업하는 것이 효율적이다. S3는 버전 관리를 지원하고 있어, 로그파일과 같은 버전 관리 하고 싶은 데이터를 백업하는 데에도 적합하다.

라이프 사이클 설정도 이용 가능하여 백업 보관 기간을 설정해두면 일정기간이 경과한 데이터는 자동적으로 삭제된다. 기밀 정보를 백업하는 경우 암호화도 가능하다. 서버 사이드 암호화 ( Server side Encryption)를 제공하며, 더욱 보안이 민감한경우 암호화 소프트웨어와 DBMS의 암호화기능까지 이용할 수 있다.

방법
먼저, 사내 VPC에 접속 가능하도록 라우터에 설정을 추가한 후 메니지먼트 콘솔에서 VPC를 선택한후 네비게이션 메뉴에서 VPC 커넥션을 선택하면 설정 파일을 자동 생성하는 도구를 사용할 수 있다.

이후 S3 버킷에서 파일을 보관하게 되는데 버전 관리 등의 설정은 버킷 단위기 때문에 백업 요건이 다른 데이터를 별도의 버킷으로 저장한다.
AWS CLI나 API를 다운로드 받아 서버나 PC에 인스톨한다. 백업을 자동화 하는 스크립트를 작성하여 cron이나 작업 스케줄러로 실행시킨다. 복원시에는 AWS CLI로 cp나 sync 명령어로 파일을 가져온다.

AWS CLI 명령어
기본적으로는 리눅스와 매우 비슷하다. 대표적인 몇가지만 살펴보겠다.

ls : 리스트, cp : 복사, sync : 모든파일 복사, mb : S3버킷 작성, rm : S3 파일 삭제, rb : 버킷 삭제 등이 있다.

EC2를 이용한 DB 백업

EC2를 사용한 DB 백업 방식은 온라인 백업을 사용한다. 온라인 백업은 DB가 동작하는 상태에서 데이터를 동기화 하여 데이터를 백업하는 방식이다. 데이터의 일관성을 유지하려면 특별한 동기화 방법을 적용해야한다.
대표적으로 DBMS에서 구입 복제등의 유틸리티 이용, DRBD를 이용하기가 있다. DRBD는 디스크 볼륨의 내용을 네트워크로 실시간으로 복제하는 리눅스 제공 기능이다. 백업 데이터의 저장이 가능한 충분한 용량을 확보한 EBS 볼륨을 준비하고 EC2에 연결한다.

방법
복제하는 경우 EC2 인스턴스에서 DBMS를 시작하고 DBMS 기능에서 데이터를 동기화 한다.대부분의 DBMS에서 동기화, 비동기화 모드가 지원되는데 동기화 모드에서는 데이터 손실이 발생하지 않지만 업데이트 속도가 떨어진다. 비동기의 경우 업데이트 속도는 떨어지지 않지만 데이터 손실 가능성이 있다.

DRBD를 사용하는 경우 온프레미스 환경의 DB파일이 저장된 디스크 볼륨과 EC2에 연결된 EBS 볼륨을 동기화하도록 설정한다. 그리하여 업데이트된 블록이 EBS 볼륨에 동기화 되도록 한다. 백업 대상에 DBMS를 도입할 필요가 없다. 복구할때에는 동기화 방향을 역으로 해서 EC2 인스턴스로 부터 온프레미스 환경의 DB 서버에 대해 역방향으로 데이터를 동기화하여 복구 시킨다.

백업 데이터로 리포트를 작성할 것이 아니면 백업 대상에 DB 서버로 시작하고 사용하도록 할 필요가 없다. 이와 같은 경우 기술적인 부담이 상대적으로 적은 DRBD 동기화를 권장한다.

AWS 스토리지 게이트웨이 이용

스토리지 게이트웨이는 백업 시스템의 구축과 운용 부하를 줄일 수 있는 방법이다. 이 서비스를 사용하면 사내 환경에 저장된 파일을 AWS에 자동으로 백업할 수 있다.

작동원리
스토리지 게이트 웨이는 온프레미스의 서버 가상화 환경에서 동작하는 가상머신으로 제공된다. 이때 로컬디스크 혹은 SAN 디스크와 같은 가상머신이 사용할 수 있는 스토리지가 필요하다. 또한 온프레미스 환경의 네트워크에서 AWS의 VPC와 연결할 수 있도록 네트워크를 설정한다. 가상머신 이미지의 설치가 완료되면 스토리지 게이트웨이 관리 콘솔에서 AWS 계정과 연결한다.

이용방법
게이트 웨어 보관형 볼륨을이용하여 온프레미스 환경에 볼륨 스토리지라 불리는 가상 디스크 볼륨을 만든다. 작성한 볼륨은 온프레미스에 있는 iSCSI장치로 마운트시킨 후 이 볼륨 스토리지에 백업데이터를 저장하도록 서버를 설정한다. 스토리지 게이트웨이의 관리 콘솔에서 백업 대상인 S3버킷을 지정해 놓으면 볼륨 스토리지는 EBS 스냅샷 형태로 S3버킷에 자동으로 동기화 된다. 증분 백업 방식이기 때문에 동기화 2번째 이후에는 차분만 전송된다.

S3에 보관된 EBS 스냅샷에 접근하는 방법은 두가지이다. 하나는 S3버킷의 스냅샷을 온프레미스의 스토리지 게이트웨이의 볼륨 스토리지로 복원하는 방법인데 이 방법은 볼륨 스토리지가 손상되어 복구해야하는 경우 혹은 버전 관리된 과거의 백업 데이터를 얻어야 하는경우에 사용한다. 다른 하나는 EBS스냅샷을 EBS로 복원하고 EC2 인스턴스에 연결하는 방법이다.

장점
이방식은 네트워크 환경을 구축하면 GUI 설정 방법을 익혀두는 것만으로 백업 환경을 쉽게 도입할 수 있다. 또한 온프레미스 환경에 작성된 볼륨이 AWS S3에 2중으로 백업 데이터를 보관한다. 빠르게 복구할 용도로 데이터 센터의 볼륨 스토리지를 활용하고 재해 대책의 보조 백업으로 S3을 사용할 수 있다.

단점
다른 방법들에 비해 비용이 높다.
편리함을 위하여 비용을 감수해야한다.

profile
devops engineer가 되기 위해

0개의 댓글