ㅁ 풀어야 할 문제
전 세계 캐시 지역을 활용한 콘텐츠 딜리버리 서비스를 이용하면, 전 세계에 있는 사용자에게 빠르게 데이터 배포 가능하다. 그러나 특정 사용자에게만 콘텐츠를 배포할 때는 사용자 인증이 필요하고 인증 구조를 만들기는 쉽지 않다.
ㅁ 해결/패턴
콘텐츠 딜리버리로 제공되는 [서명을 포함한 URL 인증 기능]을 이용하는 방법이 있다. 사용자가 콘텐츠를 다운로드하기 위해 웹 사이에 액세스할 때, 미리 설정해둔 액세스 위치 IP Address, 다운로드 가능 기간, 액세스 위치의 지역 등이 맞는 경우에만 서명을 포함한 URL 인증 기능을 발급하면 된다. 보다 정확하게 특정 사용자에게 배포가 가능한다.
- 콘텐츠 딜리버리 서비스인 CloudFront의 apitool이나 AWS SDK를 준비한다.
- EC2 상의 웹 서버에 비밀키를 등록해 두고 서명을 포함한 URL 발급 준비를 한다.
- 자체 시스템에 사용자 인증을 실행하고, 그 사용자에게 공개할 각 콘텐츠에 대해 CloudFront의 API를 이용하여 서명을 포함한 URL 발금 기능(공개키를 등록)을 이용한다.
- 서명을 포함한 URL을 HTML 등에 링크(다운로드) 대상으로 이용한다.
- IP 어드레스와 지역으로 제한된 사용자만 일정 기간 동안 이용이 가능하여 프라이빗 콘텐츠 배포로 이용이 가능하다.
- 실제 콘텐츠 다운로드는 직접 콘텐츠 딜리버리 서비스에서 이루어지기 때문에 부하와 장애에 강한 구성이 된다.
- 인증 시스템이나 기간 제한 URL을 발급하는 서버가 필요하다.
- 사용자 인증이 만료되지 않아도 URL의 유효기간이 끝나면 다운로드가 되지 않는다.
'AWS Design Pattern > 정적 콘텐츠 처리 패턴' 카테고리의 다른 글
Rename Distribution - 변경 지연 없는 배포 (0) | 2021.02.05 |
---|---|
Cache Distribution - 사용자와 물리적으로 가까운 위치에 데이터 배치 (0) | 2021.02.05 |
Private Distribution - 특정 사용자에게 데이터 배포 (0) | 2021.02.05 |
Direct Hosting - 인터넷 스토리지 직접 호스팅 (0) | 2021.02.05 |
WEB Storage 패턴 - 고가용성의 인터넷 스토리지 활용 (0) | 2021.02.05 |