본문 바로가기

AWS Design Pattern/기본 패턴

Snapshot 패턴

Snapshot 패턴 - 데이터 백업

풀어야 할 문제

데이터는 무엇보다 중요한 것이 안전하게 다뤄야 한다는 것이다. 그러기 위해서는 백업을 빠트릴 수 없다.

 

해결/패턴

클라우드에서는 안전하고 용량 제한 없는 인터넷 스토리지를 비교적 싼 비용으로 이용이 가능하다.

어떤 순간의 데이터를 복제하는 백업을 스냅샷이라고 하는데 클라우드에서 자주 사용하는 개념이다.

클라우드에서는 가상 서버 데이터(OS 포함)나 그 외 데이터를 인터넷 스토리지에 복제하는 것이 간단하며, 스냅샷을 정기적으로 실행하는 것이 어렵지 않다.

 

구현

-       AWS의 가상 스토리지는 EBS에 스냅샷 기능이 있어 그 기능 사용

-       취득한 스냅샷은 99.999999999%의 안정성을 가지게 설계된 오브젝트 스토리지 S3에 보관

-        EBS의 데이터가 파손되거나 없어져도 스냅샷을 실행했던 시점의 데이터를 S3에서 복원

  

장점

-       백업을 프로그램으로 제어 가능

-       백업 공간으로 안정성이 높은 S3 이용 가능

-       EBS의 데이터 전부가 백업이 가능, 저장한 백업은 신속하게 새로운 EBS로 이용이 가능

-       사용자 데이터 뿐만 아니라 OS별 백업이 가능

-       OS별 저장한 백업은 AMI로 등록이 가능하여 새로운 EC2 인스턴스를 기동하는 것이 가능

-       특정 상태의 데이터 저장이 가능, 용량의 제한이 없기 때문에 복수의 세대(Generation)을 저장해 두 수 있다.

-       장애나 문제가 있을 때 간단하게 환경 재현이 가능하고 임의의 시점으로 되돌릴 수 있다.

 

주의점

-       스냅샷을 실행할 때 데이터의 정합성 확보 필요, EBS 마운트 상태에서 저장할 경우 파일 시스템 (EXT3 NTFS)의 캐시를 뺀다든가 애플리케이션의 트랜잭션을 끝내는 등 논리적 정합성을 가진 상태에서 스냅샷을 실행할 필요가 있다.

-       일반적으로 부트 디스크의 데이터 크기가 작으면 가상 서버 가동이 빠르다. 또한 정기적으로 이루어지는 디스크 체크(fsck) 시간도 빠르다.