[클라우드] AWS의 다양한 서비스 - S3

minidoo·2020년 10월 7일
0

클라우드

목록 보기
3/6
post-thumbnail

S3

S3는 AWS가 제공하는 '스토리지(저장소)'다.
크기 제한은 있지만, 개수 제한이 없기 때문에 대용량의 데이터를 무제한으로 업로드할 수 있다.

EC2(서버)에 저장하지 않는 이유

대용량 데이터가 저장되는 경우 서버가 다운될 수 있다.
Load Balancer을 통해 서버를 분산시킬 수 있지만, 결국 최종적으로 컴퓨터를 추가하기 때문에 비효율적이다.
E2 추가 비용 >>>>>>>> S3 업로드 비용

정적 콘텐츠 저장

  • 정적 콘텐츠: HTML, CSS, JS, 이미지 파일 등과 같이 서버에서 요청을 받으면 어느 사용자에게든지 동일하게 결과값을 응답하는 콘텐츠
  • 동적 콘텐츠: 누가, 언제, 어떻게 서버에 요청했는지에 따라 다르게 응답하는 콘텐츠 Ex) 넷플릭스 추천 영상

정적 콘텐츠를 내 컴퓨터의 서버에 계속해서 올리면 과부화가 일어난다.
따라서, 무제한 업로드가 가능한 S3에 올리는 것이 좋다. (S3를 사용하지 않는다면, Apache나 Engine X 사용)

예외적으로 Node.js에서는 fs 모듈로 파일 시스템에 사용되는 기능을 이용할 수 있다.
내 컴퓨터의 서버에 파일을 올리면 과부화가 일어난다고 했는데, 어떻게 fs 모듈을 사용할 수 있는 것일까?
stream 덕분이다. stream은 파일은 chunk 단위로 쪼개서 읽기 때문에 과부화를 막을 수 있다.

CDN

CloudFront - AWS에서 제공하는 CDN 서비스

CDN은 각 region 마다 존재한다.
S3는 사용자가 파일을 다운받는 순간 비용을 지불한다. 만약 같은 region에서 다운 받은 기록이 있다면 CDN에 접근하여 파일을 가져온다. 매번 S3에 접근하지 않기 때문에 비용 절약과 네트워크 지연 방지 측면에서 유용하다.

S3는 '건 당 + 데이터 크기'로 CDN은 '데이터 크기'로 비용을 측정한다. CDN을 캐싱이라고 생각하면 된다. 유효시간은 24시간으로 변경 가능하다.

CloudFront 사용 여부는 Network - Headers 탭에서 확인 가능하다. X-Cache가 'Miss from cloudfront' 라면 S3에서 'Hit from cloudfront' 라면 CDN에서 콘텐츠를 가져오는 것이다.


S3 사용 이유

  • 대용량 데이터의 저장으로 '확장성' 증가
  • 서버 대신의 사용으로 '경제성' 증가 (비용 절약)

0개의 댓글