4. Ondemand Disk 패턴 - 동적으로 디스크 용량 늘리고 줄이고



출처 : http://en.clouddesignpattern.org/index.php/CDP:Ondemand_Disk_Pattern


문제


시스템에 이용하는 디스크 용량을 사전에 예측하기 어려움, 그래서 시스템을 가동할 때 안전계수를 계산하여 몇 년 후 예상되는 용량의 디스크를 준비하는 경우가 많음. 그 디스크는 바로 사용하지 않고 실제로 몇 년이 지나도 사용하지 않을 수 있음, 비용낭비 됨

디스크의 I/O 성능을 높이고 싶을 때 disk striping으로 구성하는 것이 효과적. 그러나 striping을 테스트하는 경우 필요한 디스크 수를 미리 계산하기 어렵고, 테스트를 하는 것도 하드웨어에 대한 초기 투자가 필요함.



문제 해결/패턴 설명


가상 디스크는 언제나 필요한 시점에 필요한 만큼 용량 확보 가능.

디스크는 매년 용량 단가가 낮아지는 경향이 있어 필요할 때 확보한다는 것은 비용면에서 장점.

일시적으로 대용량 디스크가 필요할 때 기존엔 대용량 디스크를 장창해야 했지만, 가상 디스크는 필요할 때만 장착하고 사용이 끝나면 폐기하면 됨.



구현


AWS의 가상 디스크 EBS를 사용하면 언제든지 필요한 용량 확보 가능함.

  • EBS를 이용할 때 처음엔 최소한의 크기의 볼륨을 확보함
  • 더 많은 디스크 용량이 필요할 때 EBS 스냅샷을 저장하고 그 스냅샷을 기반으로 새로운 EBS를 만듬
  • 새로운 EBS를 만들 땐 원래의 볼륨보다 큰 볼륨 크기를 지정함.
  • 새로운 EBS를 EC2 인스턴스에 할당함
  • 할당 후 이용하고 있는 파일시스템의 사이즈 변경 명령어로 할당한 용량까지 영역을 확잠함
  • striping을 할 때는 복수의 EBS를 할당하고,mdadm이나 OS의 기능을 이용하여 소프트웨어 RAID 디스크로 구성한다.


장점


  • 필요할 때 볼륨 크기를 변경할 수 있으므로 용량 예측 시에 부담이 적음
  • 필요할 때 디스크 용량을 확보할 수 있어 비용면에서도 이득
  • striping을 하면 디스크 I/O 성능이 향상됨.


주의점


  • EBS는 S3와 달리 확보한 디스크 용량에 대해 요금 부과. 100기가바이트 확보하고 5기가바이트만 사용해도 100기가바이트 요금 부과
  • 하나의 EBS에 설정 가능한 최대 용량은 1024기가 바이트, 따라서 단일 파티션에 1024기가바이트 이상의 용량이 필요하면 복수의 EBS를 할당하여 mdadm 등의 소프트웨어로 단일 볼륨으로 만들어 사용해야함.


기타


EBS는 네트워크로 액세스하는 디스크 볼륨이기 때문에 큰 사이즈의 EC2 인스턴스를 이용하는 편이 I/O 성능을 높일 수 있다. 특히 striping을 할 때 EC2 인스턴스 사이즈에 주의해야 함.


'블로그 > AWS CDP(아마존웹서비스 클라우드디자인패턴)' 카테고리의 다른 글

6. Multi-Datacenter 패턴  (0) 2015.03.04
5. Multi-Server 패턴  (0) 2015.03.03
4. Ondemand Disk 패턴  (0) 2015.03.01
2. Stamp 패턴  (0) 2015.03.01
1. Snapshot 패턴  (0) 2015.03.01
0. AWS CDP 정리  (0) 2015.03.01
비밀글