티스토리 뷰

AWS

[AWS] Amazon S3, CloudFront

rangrangerang 2019. 8. 12. 15:02

> 결론 : S3와 CloudFront를 함께 이용하면 

빠른 속도와 큰 규모의 콘텐츠 저장 및 전달이 가능하다



PART 1

Amazon S3

- HTTPS 형태의 API로 데이터를 저장하거나 추출하게 해주는 전형적인 웹 서비스

- Amazon Simple Storage Service는 인터넷용 스토리지 서비스(저장소)

- 정적 웹사이트 호스팅 기능을 이용할 수 있음

파일 이름을 대표하는 key와 파일 자체로 구분되는 Object Storage

1# 장점

S3 버킷이 자동으로 확장되므로 특정 저장 공간을 계획하고 할당할 필요가 없다

서버가 없는 서비스이기 때문에 직접 파일을 저장하는 서버를 관리하거나 패치할 필요가 없다.

- 응용 프로그램에 서버가 필요한 경우 (예를 들어 동적 응용 프로그램이 있기 때문에) 정적 콘텐트에 대한 요청을 처리할 필요가 없기 때문에 서버를 더 작게 만들 수 있다.







PART 2

CloudFront

전 세계적으로 정적이며 동적인 웹콘텐츠, 비디오 스트리밍 및 API를 안전하고 규모에 맞게 제공하는 CDN (Content Delivery Network) 서비스


1# 에지 로케이션

CloudFront는 에지 로케이션이라고 하는 전세계 데이터 센터 네트워크를 통해 콘텐츠를 제공한다. 에지 서버를 사용하여 콘텐츠를 캐시하고 제공하면 시청자가 있는 곳과 가까운 위치에 콘텐츠를 제공하여 성능을 향상시킬 수 있다. CloudFront는 다음지도에서 볼 수 있듯이 전세계 모든 지역에 에지 서버를 보유하고 있다.


사용자가 CloudFront에서 제공하는 콘텐츠를 요청하면 해당 요청은 근처의 에지 로케이션으로 라우팅된다. 

1. CloudFront에 요청된 파일의 캐시된 복사본이 있는 경우 : CloudFront는 이를 사용자에게 전달하여 빠른 (대기 시간이 짧은) 응답을 제공한다. 

2. 요청한 파일이 아직 캐시되지 않은 경우 : CloudFront는 오리진을 검색한다 (예 : 콘텐츠를 저장한 S3 버킷). 그런 다음 동일한 콘텐츠에 대한 다음 로컬 요청의 경우 이미 인근에 캐시되어 즉시 게재할 수 있다.


2# 시나리오

[S3만 사용했을 때]

=>  사용자의 위치에 따라 시간이 오래 걸릴 수 있다. 지연으로 인해 일부 사용자 요청이 반송되어 페이지에서 오류를 반환할 수도 있다.


[S3 버킷으로 CloudFront]

=> 요청은 “가장 잠재성이 적은” 에지 로케이션으로 라우팅된다. (즉, 전달 속도 측면에서 가장 가까움) 그런 다음 CloudFront는 녹색 화살표와 같이 캐시된 콘텐츠를 주변의 요청한 사용자에게 신속하고 직접 제공한다. 콘텐츠가 아직 에지 서버로 캐시되지 않은 경우 CloudFront는 S3 버킷 오리진에서 콘텐츠를 검색한다.


3# Signed URL

CloudFront로 배포되는 파일의 사용을 제한하는 기능


[Signed URL 종류]

  • Canned Policy를 사용한 Signed URL: 
    - 파일 1개의 사용을 제한한다.
    - 특정 날짜가 지나면 파일을 받지 못하게 하는 기능만 사용할 수 있다.
    - 정책(Policy)의 내용이 URL에 포함되어 있지 않아 URL의 길이가 짧다.
  • Custom Policy를 사용한 Signed URL:
    - 파일 여러 개의 사용을 제한한다.
    - 특정 날짜가 지나면 파일을 받지 못하게 하는 기능, 특정 날짜 이후에 파일을 받을 수 있도록 하는 기능, 특정 IP 혹은 IP대역에서만 파일을 받을 수 있도록 하는 기능을 사용할 수 있다.
    - 정책(Policy)의 내용이 URL에 포함되어 있어 URL의 길이가 길다.



[Reference] https://jjungyooni.tistory.com/entry/S3-S3-%EB%9E%80 https://cloud.hosting.kr/techblog_180716_a-match-made-in-the-cloud/ http://pyrasis.com/book/TheArtOfAmazonWebServices/Chapter12/04




댓글