[CS] AWS-4.S3&CloudFront

limlim·2023년 5월 16일
0

CS

목록 보기
11/15

개요

  • 항해에서 프로젝트를 할 당시 S3는 이미지 저장 때문에 사용한 적이 있으나, CloudFront는 사용해 본적 없다. 그 당시 프론트엔드 담당하시는 분들이 CloudFront를 사용하셨었는데 정확한 개념은 잘 모르겠다. 이번에 정리해서 잘 알아두어야 겠다.
  1. S3란?
  • Simple Storate Service의 약자로 AWS가 제공하는 클라우드 기반 객체 스토리지 서비스임

  • 일반적으로 클라우드 기반의 Storage는 크게 3가지 형태로 나눠짐

1) 파일 스토리지

  • 일반적으로 윈도우, 맥과 같이 폴더와 파일을 기반으로 저장되는 구조의 스토리지임

  • 파일을 저장할 때, 파일을 저장할 폴더를 생성하고 해당 폴더의 경로와 파일을 함께 저장해, 여러 계층으로 구성된 폴더와 파일을 구성할 수 있음

  • 파일 스토리지는 폴더/파일 만으로 구성된 간단한 구조이기 때문에, 파일에 대한 정보 외에 부가적인 데이터(메타 데이터)를 함께 저장하기에는 제한적임

  • 또, 계층의 규모가 커질수록(폴더가 많아질수록) 데이터의 탐색이 느려지고, 자원에 대한 요구가 많아짐

2) 블록 스토리지

  • 블록 단위로 데이터를 저장하는 스토리지 구조로 클라우드 환경에서 자주 사용됨

  • 데이터를 저장할 때 블록으로 분할한 후, 분할된 블록을 고유한 ID로 구분해 저장함

  • 이 과정에서 블록을 저장할 공간으로 가장 효율적인 스토리지 내 공간을 할당함

  • 데이터를 원본 그대로가 아닌 블록 단위로 분할하여, 독립적으로 저장하는 구조의 특성상 운영체제에 종속적이지 않게 데이터를 저장할 수 있음

  • 파일 스토리지에 비해, 탐색 시 더 빠른 효율을 보여줌

  • But, 스토리지 자체적으로 읽기/쓰기 등의 기능 수행 불가

3) 객체 스토리지(오브젝트 스토리지) cf) 내가 프로젝트 때 사용했던 방식

  • 저장하는 객체 단위 그 자체만으로 저장되는 평면적(계층 구조x) 저장 공간

  • 저장된 데이터의 독립적인 url이 제공됨

  1. S3의 특성
  • 클라우드 기반의 객체 스토리지로써 저장되는 객체마다 독립적인 접근 경로, 권한, 메타데이터를 제공 및 구성할 수 있음

  • AWS의 KMS 등을 통해 데이터를 암호화하여 특정 키로 관리되도록 할 수 있으며, 객체의 저장 공간에 정해진 크기가 없이, 필요한 만큼 데이터를 무한히 저장할 수 있음

  1. S3 관련 용어
  • 버킷: S3에 데이터를 저장하기 위해 생성하는 스토리지 단위

  • 버킷 버전 관리: 스토리지에 저장되는 객체들에 대해 버전 관리 기능을 적용하여 복구, 검색, 복원 등 장애 및 실수를 복구할 수 있는 기능 제공

-ACL: Access Control List로, ACL을 활성화하면 객체에 대한 접근 권한을 내 계정 외에 다른 계정에게도 부여할 수 있음 (But, 특별한 경우 아니라면 비활성화하는 것 권장)

  1. CloudFront란?
  • AWS의 CDN으로 데이터의 캐싱을 통해 AWS의 글로벌 인프라를 기반으로 실 사용자와 가장 가까운 서버에서 데이터를 전송해주는 글로벌 서비스임
  1. S3와 CloudFront를 이용한 정적 웹사이트 배포하기

1) S3 생성

2) S3에 정적 웹사이트 업로드

3) CloudFront 생성 및 Origin으로 S3 연결

4) 테스트

  1. 정리
  • 대부분의 경우 S3에 저장되는 파일이 내부에서만 쓰는 문서가 아니라면 S3는 대부분 CloudFront와 함께함

  • 두 개가 조합된 상태에서의 콘텐츠 전달 속도와 관리 편의성은 개발자의 걱정을 덜어줌

참고자료: https://yozm.wishket.com/magazine/detail/1360/

profile
不怕慢,只怕站 개발자

0개의 댓글