본문 바로가기

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

(3)
Direct Object Upload - 업로드 절차 간소화 ㅁ 풀어야 할 문제 - 사진이나 동영상 공유 사이트에서 여러 사용자로부터 크기가 큰 데이터가 업로드 됨 - 업로드 처리는 서버 쪽의 부하(특히, 네트워크 부하)가 높아져 어느 정도 규모의 사이트에서도 업로드 전용 가상 서버가 필요한 경우가 있음 ㅁ 해결/패턴 - 업로드를 인터넷 스토리지로 처리, 즉 클라이언트에서 가상 서버를 통하지 않고 인터넷 스토리지에 직접 업로드 함. - 위처럼 처리 시 업로드 처리의 부하를 고려하지 않아도 가능 ㅁ 구현 - 웹 서버(EC2)에 S3로 업로드하는 HTML의 폼을 만듦 - 업로드 폼을 이용해 사용자 쪽에서 S3로 직접 파일을 업로드 함 - S3로 파일 전송 완료 후 폼에 지정해둔 URL로 리다이렉트 되어지므로 리다이렉트 서버에서 업로드 종료 확인 처리가 이루어짐 ㅁ 장..
Storage Index - 인터넷 스토리지 검색 효율화 ㅁ 풀어야 할 문제 인터넷 스토리지는 데이터가 분산 배치되어 있어 안전성과 가용성이 높으나 인터넷을 통해 액세스하기 때문에 자체 시스템과 비교하면 일반적으로 응답 성능은 낮다. 또 고속의 검색기능은 제공하지 않는 경우가 있기 때문에 특정 사용자의 데이터 리스트를 가지고 온다거나 어떤 기간 내의 데이터를 가지고 오려고 할 때 애플리케이션 쪽에서 처리해야 할 필요가 있다. ㅁ 해결/패턴 인터넷 스토리지에 데이터를 저장할 때는 저장과 동시에 검색 성능이 높은 KVS(SimpleDB)에 메타정보를 저장하고 그 정보를 인덱스로 사용 검색 시 KVS를 이용하여 얻은 결과를 기반으로 인터넷 스토리지에 액세스 함 ㅁ 구현 - S3에 데이터를 저장한 다음에 S3의 메타 정보(Keys, paths, data sizes, ..
WRITE PROXY - 인터넷 스토리지로 고속 업로드 ㅁ 풀어야 할 문제 인터넷 스토리지는 일반적으로 읽기에 대한 수용 능력 및 데이터 안정성이 매우 뛰어나다. 그러나 이중화를 위해 여러 지역에 쓰기가 이루어지고 있고 HTTP 프로토콜로 클라이언트와 통신하므로 비교적 쓰기 속도가 느린 특성이 있다. 따라서, 큰 데이터를 인터넷 스토리지에 쓰는 경우 성능이 문제가 될 수 있다. ㅁ 해결/패턴 클라이언트에서 인터넷 스토리지에 직접 데이터를 전송하는 것이 아니고, 가상 서버로 데이터를 받아 그 가상 서버로부터 인터넷 스토리지로 전송함 클라이언트에서 가상 서버로의 전송은 HTTP보다 빠른 프로토콜(예를 들어, UDP 기반의 프로토콜)을 이용할 수 있다. 또, 작은 용량의 파일이 많을 경우 클라이언트 쪽에서 한번 압축하여 가상 서버로 전송 후 압출을 풀어 인터넷 스..