본문 바로가기

AWS Design Pattern/정적 콘텐츠 처리 패턴

(6)
Private Cache Distribution - CDN을 이용한 프라이빗 배포 ㅁ 풀어야 할 문제 전 세계 캐시 지역을 활용한 콘텐츠 딜리버리 서비스를 이용하면, 전 세계에 있는 사용자에게 빠르게 데이터 배포 가능하다. 그러나 특정 사용자에게만 콘텐츠를 배포할 때는 사용자 인증이 필요하고 인증 구조를 만들기는 쉽지 않다. ㅁ 해결/패턴 콘텐츠 딜리버리로 제공되는 [서명을 포함한 URL 인증 기능]을 이용하는 방법이 있다. 사용자가 콘텐츠를 다운로드하기 위해 웹 사이에 액세스할 때, 미리 설정해둔 액세스 위치 IP Address, 다운로드 가능 기간, 액세스 위치의 지역 등이 맞는 경우에만 서명을 포함한 URL 인증 기능을 발급하면 된다. 보다 정확하게 특정 사용자에게 배포가 가능한다. ㅁ 구현 - 콘텐츠 딜리버리 서비스인 CloudFront의 apitool이나 AWS SDK를 준비..
Rename Distribution - 변경 지연 없는 배포 ㅁ 풀어야 할 문제 - Cache Distribution 패턴을 사용해 콘텐츠를 배포하는 경우, 마스터 서버의 파일을 변경해도 에지 서버(캐시 서버)의 데이터는 타임 아웃이 될 때까지 갱신되지 않음 - 원하는 타이밍에 파일을 갱신하려고 할 때에는 사용 불가 ㅁ 해결/패턴 - 에지 서버의 캐시 데이터는 그 쪽에 액세스하는 URL이 키가 됨 - 갱신하려고 하는 파일을 다른 파일명으로 배치하고 액세스 URL 자체를 변경하면, 에지 서버의 캐시 타임 아웃에 상관없이 새로운 콘텐츠 배포 가능 ㅁ 구현 - 콘텐츠와는 별도로 기본 콘텐츠(액세스 URL을 포함한 HTML 파일 등)를 만든다. - 기본 콘텐츠는 캐시 타임아웃을 짧게 하거나 계속 마스터 서버에서 배포 - CloudFront로 배포하는 콘텐츠를 갱신하는 경..
Cache Distribution - 사용자와 물리적으로 가까운 위치에 데이터 배치 ㅁ 풀어야 할 문제 - 컴퓨터나 모바일 장치의 보급에 따라 더 많은 사람이 더 많은 지역에서 인터넷 상의 콘텐츠에 액세스하게 됨 - 또 이미지나 동영상 데이터는 품질이 좋아져 데이터 양도 굉장히 많아지고 있음 - 사용자 경험(User Experience) 관점에서 보면, 보다 빠르고 안정적으로 데이터를 이용자에게 제공하고 싶어하지만 현재의 기술로는 어느 정도 통신 지연이 발생 - 이런 이유로 콘텐츠 배포 장소가 한 곳 밖에 없다면 사용자 경험이 나빠짐 ㅁ 해결/패턴 - 세계 각지에 있는 지역에 콘텐츠 배포 장소(origin)에서 배포되는 콘텐츠 캐시 데이터를 배치 - 이렇게 하여 지리적으로 이용자와 더 가까운 지역에서 콘텐츠를 배포하게 되고, 지리적/물리적 제약 해결 가능 - 이 패턴을 적용하면 사용자와..
Private Distribution - 특정 사용자에게 데이터 배포 ㅁ 풀어야 할 문제 인터넷 스토리지는 가용성과 안정성이 높고 사이즈가 큰 콘텐츠나 액세스 수가 많은 콘텐츠를 배포하는데 적당하다. 그러나 특정 사용자에게만 콘텐츠를 배포하는 경우, 애플리케이션의 인증 부분과 연동이 필요해 인터넷 스토리지만으로 액세스를 제한하는 것은 어렵다. ㅁ 해결/패턴 인터넷 스토리지에서 제공되는 접근 제한 URL 발급 기능을 이용하면, 콘텐츠로 액세스하는 IP 어드레스 및 액세스 기간을 설정할 수 있다. 사용자 별로 URL을 발급하고 접근 제한 URL에서만 콘텐츠 다운로드가 가능하게 하면, 만료된 링크나 다른 IP 어드레스를 가진 사용자가 접근한다고 해도 다운로드가 불가능 실질적으로 특정 사용자만 접근이 가능하게 한다. ㅁ 구현 - S3의 apitool이나 AWS SDK를 준비 - ..
Direct Hosting - 인터넷 스토리지 직접 호스팅 ㅁ 풀어야 할 문제 단기간 액세스가 급격이 늘어날 경우 상황에 맞춰 서버 증설이 어려움 거기에 대응하기 위해 액세스 양을 예측하여 많은 서버를 준비하는 방법도 있지만, 불필요하게 서버를 준비해 두면 비용 측면에서 문제가 발생 ㅁ 해결/패턴 이 패턴은 클라우드가 제공하는 인터넷 스토리지를 웹 서버로 이용하여 이미지나 동영상 등 큰 용량의 정적 파일이나 HTML 등을 호스팅 함 인터넷 스토리지는 원래 공유 스토리지로 사용하게 설계되어 있어 용량에 문제 없으며 특정 서비스의 액세스 수가 급격히 증가해도 인터넷 스토리지에서는 문제 없이 처리가 가능하여 부하 대책을 고려할 필요가 없다. ㅁ 구현 - 인터넷 스토리지 S3에 공개할 정적 콘텐츠(HTML/CSS/자바스크립트/이미지/동영상 등)를 업로드함. - S3 버..
WEB Storage 패턴 - 고가용성의 인터넷 스토리지 활용 ㅁ 풀어야 할 문제 동영상이나 고화질 이미지, Zip 파일 등 용량이 큰 파일을 한대의 웹 서버에서 배포할 때 네트워크 문제가 발생됨 그럴 때 네트워크 부하를 줄이기 위해 여러 대의 웹 서버로 부하를 분산하는 경우가 있지만 그 경우 비용이 문제됨 ㅁ 해결/패턴 대용량 파일을 인터넷 스토리지에 저장하고 거기서 직접 파일을 배포하면, 웹 서버의 네트워크 부하와 디스크 용량 문제 해결 인터넷 스토리지에 저장된 객체는 공개 설정하여 사용자가 직접 액세스 가능 이것을 이용하여 인터넷 스토리지에서 배포하도록 하면, 웹 서버 네트워크 분산을 줄일 수 있고 배포 파일을 동기화하기 위하여 가상 서버간 데이터를 복사할 필요가 없어짐 ㅁ 구현 배포할 콘텐츠를 S3에 저장하고 사용자가 직접 S3에서 다운로드 가능하도록 함 -..