본문 바로가기

AWS Design Pattern/데이터 업로드 패턴

Storage Index - 인터넷 스토리지 검색 효율화

ㅁ  풀어야 할 문제

인터넷 스토리지는 데이터가 분산 배치되어 있어 안전성과 가용성이 높으나 인터넷을 통해 액세스하기 때문에 자체 시스템과 비교하면 일반적으로 응답 성능은 낮다.

또 고속의 검색기능은 제공하지 않는 경우가 있기 때문에 특정 사용자의 데이터 리스트를 가지고 온다거나 어떤 기간 내의 데이터를 가지고 오려고 할 때 애플리케이션 쪽에서 처리해야 할 필요가 있다.

 

  해결/패턴

인터넷 스토리지에 데이터를 저장할 때는 저장과 동시에 검색 성능이 높은 KVS(SimpleDB)에 메타정보를 저장하고 그 정보를 인덱스로 사용

검색 시 KVS를 이용하여 얻은 결과를 기반으로 인터넷 스토리지에 액세스 함

 

  구현

-       S3에 데이터를 저장한 다음에 S3의 메타 정보(Keys, paths, data sizes, storage times ) SimpleDB 또는 DynamoDB에 저장

-       검색이나 집계를 할 때 SimpleDB DynamoDB를 이용하여 처리

-       SimpleDB DynamoDB의 처리 결과를 기반으로 S3의 데이터를 가지고 옴

 

ㅁ  장점

-       견고한 대용량 스토리지 기능과 높은 검색 기능 둘 다 이용 가능

 

ㅁ  주의점

-       S3 내의 데이터와 KVS의 메타 정보가 맞지 않는 경우가 발생하면 정확한 검색 결과를 얻을 수 없다. 따라서 데이터의 등록과 메타 정보 등록은 반드시 동시에 해야 한다.

-       Web Storage 패턴을 참조한다.