6. Storage - S3 & CloudFront

2023. 11. 23. 13:16· ASC
목차
  1. Storage
  2. Block Storage
  3. File Storage
  4. Object Storage
  5. Amazon S3
  6. Amazon S3 특징
  7. Amazon S3 구성
  8. Amazon S3 기능
  9. Amazon CloudFront
  10. Cloudfront Edge Location
  11. Amazon Cloudfront

Storage

Storage Service: 데이터 저장, 액세스, 보호 및 분석 기능을 갖춘 Amazon의 서비스

 

Block Storage

Block Storage - ex. EBS

  • 데이터를 일정 크기의 블록으로 나누어 저장
  • 각 블록은 독립적인 주소를 가지며 이를 통해 랜덤 엑세스 가능
  • Storage Area Network(SAN): 고성능의 전용 네트워크로, 서버와 데이터 스토리지 시스테을 연결

Block Storage 특징

  • 빠른 I/O 속도가 필요한 데이터베이스에 적합
  • 높은 IOPS(초당 입출력 작업 수)와 낮은 지연 시간이 중요한 경우 선택
  • 운영 체제 또는 중요한 어플리케이션을 실행하는 데 사용됨

 

File Storage

File Storage - ex. EFS

  • 데이터를 파일로 저장, 파일들은 폴더나 디렉토리에 조직
  • 계층적인 파일 시스템 구조
  • Network Attached Storage (NAS): 네트워크에 연결돼 여러 사용자와 장치가 파일 기반의 데이터에 접근할 수 있게 해주는 전용 파일 스토리지

File Storage 특징

  • 여러 서버나 사용자가 동일한 파일 시스템에 동시에 애겟스해야 할 때 적합
  • 파일과 디렉토리를 통해 데이터를 관리하고 싶을 때 유용
  • 네트워크를 통한 파일 공유가 필요한 경우에 적합

 

Object Storage

Object Storage - ex. S3 Bucket

  • REST 기반의 API 호출을 통해 데이터에 접근, HTTP 프로토콜
  • 대용량 미디어 파일, 이미지, 백업 등을 저장할 때 적합
  • 정적 웹 컨텐츠 (ex. 이미지, 비디오, HTML 페이지)를 호스팅할 때 유용
  • 저렴한 비용으로 데이터를 오래 보관해야 할 때 선택
  • 전 세계 여러 데이터 센터에 걸쳐 데이터를 분산시켜야 할 때 효과적

Amazon S3

Amazon S3 특징

(1) Access 제어

  • 객체 별 ACL을 통해 데이터에 접근 가능한 사용자 특정 가능
  • ACL: Access Control List

(2) 데이터 저장

  • 데이터는 객체 단위로 저장이 된다.

(3) 높은 내구성

  • 데이터가 손실된 확률이 거의 없음

(4) 데이터 저장 용량

  • Standard의 경우 객체 하나의 크기는 최대 5TB까지 된다.

 

Amazon S3 구성

Bucket

  • S3에 객체를 저장하게 해주는 시스템
  • AWS 전역에서 단 한 개만 존재: Region과 관계없이 전역적으로 Unique한 이름이 필요
  • Region 수준에서 정의: 데이터 저장 위치와 관련된 법률 및 규정 준수에 영향

Object

  • 객체 === 파일 (img, html, .. etc)
  • 객체는 키를 가짐 (키는 파일의 전체 경로)
  • 객체 최대 크기는 5TB, 한 번에 5GB 이상 업로드 불가능

 

Amazon S3 기능

Amazon S3 Versioning

  • 버킷의 버전 관리를 활성화함으로써 여러 버전의 객체를 보관할 수 있고 실수로 삭제되거나 덮어써진 객체를 복원할 수 있음
  • 한 번 활성화하면 비활성화 할 수 없으며, 대신 중단 상태로 전환할 수 있음

Amazon S3 Replication

  • 버킷 내의 객체를 자동으로 다른 버킷으로 복사하는 기능, 비동기적으로 이루어짐
  • CRR (Cross Region Replication): 재해 복구, 사용자에게 더 빠른 액세스 제공, 규정 요구사항 충족
  • SRR (Same Region Replication): 엑세스 제어, 실수로 인한 삭제 손상 방지, 효율적 데이터 관리

Amazon S3 Encryption - 정적암호화

서버 측 암호화 (SSE)

  • SEE-S3 (Server-Side Encryption with Amazon S3-Manged Key)
    • 디폴트 설정
    • 각 객체마다 고유한 키를 사용하고 추가 보안을 위해 이 키를 다른 마스터 키로 정기적으로 암호화
    • 사용자는 키 관리에 대해 걱정할 필요 없이 S3에 의해 자동으로 처리됨
  • SSE-KMS (Server-Side Encryption with AWS Key Management Service)
    • 사용자가 키의 사용을 제어하고 접근을 감시할 수 있음
    • 사용자 정의 키 관리 및 암호화 키의 로테이션을 지원: KMS-api를 사용하므로 KMS 제한 사항에 영향을 받을 수 있음
  • SSE-C (Server-Side Encryption with Customer-Provided Keys)
    • 데이터를 업로드하거나 다운로드할 때마다 사용자는 자신의 암호화 키를 제공해야 함
    • 키 관리의 책임이 사용자에게 있음
    • AWS로 키를 보내기 때문에 서버 측 암호화에 해당: HTTP 요청마다 헤더에 키를 포함해야 하고 HTTPS 사용 필수

👉 SSE-S3: 우리가 키를 제어할 수 없다는 단점

 

클라이언트 측 암호화 (CSE): 사용자에게 많은 책임이 부여

  • 클라이언트 측에서 암호화하고 암호화 된 데이터를 S3에 저장
  • 암호화 키와 암호화 프로세스는 전적으로 사용자 측에서 관리
  • 이는 보안을 높이짐만, 키 관리 및 암호화 구현의 복잡성이 증가함
  • Amazon S3 Client-Side Encryption Library와 같은 클라이언트 라이브러리 사용

Amazon S3 Encryption - 동적 암호화

  • 전송 중 암호화: SSL 또는 TLS라고 함
  • Amazon S3는 HTTP, HTTPS 두 개의 엔드포인트를 가지고 있고 HTTPS만 전송 중 암호화 지원
  • SSE-C의 경우 HTTPS 프로토콜을 꼭 사용해야 함
  • 대부분의 클라이언트는 기본적으로 HTTPS 엔드포인트를 사용함

Amazon S3 Security

  • IAM
  • 버킷 정책
  • 접근 제어 목록 ACL

Amazon S3 Hosting

  • S3 버킷에 있는 파일을 이용해 정적 웹사이트 호스팅 가능

Amazon S3 CORS

  • CORS: 요청 프로토콜의 일부로 다른 웹사이트에 요청을 보내야 할 때 다른 오리진이 CORS Header를 사용해서 요청을 허용하지 않는 한 해당 요청은 이행되지 않음 (ex. Access-Control-Allow-Origin)
  • Amazon S3 CORS
    • 만약 클라이언트가 S3 버킷에서 교차 출처 요청 (cross-origin request)을 보내는 경우, 정확한 CORS 헤더를 활성화해야 한다.
    • CORS 헤더를 설정함으로써 특정 출처 혹은 모든 출처 (*)를 허용할 수 있음

Amazon S3 Pre-Signed URLs

  • S3 콘솔, AWS CLI 또는 SDK를 사용하여 생성할 수 있는 URL
  • 미리 서명된 URL을 받은 사용자는 GET / PUT 에 대한 권한을 URL을 생성한 사용자로부터 상속받음
  • 특정 사용자에게만 접근 가능하도록 할 때 사용하기도..

Amazon S3 Classes


Amazon CloudFront

Cloudfront Edge Location

CDN (Content Delivery Network)

  • 지리적 제약 없이 전세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 기술

Edge Location

  • 사용자에게 더 가까운 지리적 위치에 콘텐츠를 저장하는 데이터 센터
  • CloudFront에는 300개 이상의 Edge Location이 있다.

Cloudfront Edge Location

  • Regional Edge Caches (REC)
    • Origin과 Edge Location 사이에 존재하는 캐시 계층
    • 표준 Edge Location에서 캐시하지 않는 콘텐츠를 저장
    • Edge Location에서 cache miss가 발생했을 때, 오리진 서버 대신 REC에서 컨텐츠를 검색해서 더 빠른 응답 시간을 제공
  • Origin Shield
    • 2020.10 Release
    • CloudFront에서 캐싱 계층을 하나 더 추가하여 캐시 적중률을 높이고 오리진 서버의 부하를 줄여주어 로드 속도를 향상
     

Amazon Cloudfront

Cloudfront

  • AWS에서 제공하는 CDN 서비스
  • 클라이언트의 요청으로 서버에서 받아온 컨텐츠를 캐싱하고 이후 같은 요청이 들어왔을 때, 캐싱해둔 것을 제공
  • Origin에서 HTTPS를 지원하지 않아도, CloudFront 내에서 HTTPS 통신 지원 가능
  • 성능 향상, 데이터 전송 속도 빨라짐, 보안성 향상, 안정성 및 가용성 향상

Amazon Cloudfront 동작 순서

 

Amazon Cloudfront Origin

  • 정적 콘텐츠: 서버가 필요하지 않은 이미지 등 (S3 bucket)
  • 동적 콘텐츠: 서버가 필요한 컨텐츠, 동적 컨텐츠를 정적 캐싱하면 사용자는 TTL 시간 동안 새롭게 추가 or 수정된 데이터를 볼 수 없음.
  • 컨텐츠는 TTL 값 동안 Edge Location에 캐싱되어 낮은 지연시간으로 컨텐츠를 가져올 수 있음

Amazon Cloudfront 캐시 정책

  • 캐시 정책은 CloudFront가 컨텐츠를 얼마나 오랫동안 캐시할 것인지, 어떤 HTTP 헤더, 쿼리 문자열 및 쿠키를 캐시에 포함할 것인지 결정
  • 캐시 정책 설정은 TTL(Time-To-Live), 캐시할 헤더, 쿼리 문자열, 쿠키 등을 포함할 수 있음

Amazon Cloudfront OAI (Original Access Identity)

  • OAI: CloudFront가 S3에 저장된 Private 객체에 액세스할 수 있도록 하는 특별한 식별자
  • 외부 사용자가 S3 Endpoint를 통한 직접적인 요청이 아닌 CloudFront의 배포를 통해 접근하도록 구성하고 싶을 때 OAI 사용 가능
  • S3 Origin 보안 강화를 위해 사용되는 S3만을 위한 CloudFront 서비스

Amazon Cloudfront 응답 헤더 정책

  • 응답 헤더 정책: CloudFront가 사용자에게 컨텐츠를 전달할 때 HTTP 응답에 추가할 헤더를 정의하는 기능
  • 보안 헤더 추가: 보안 관련 HTTP 헤더를 응답에 자동으로 추가 가능
  • 사용자 정의 헤더: 특정 사용자 정의 헤더를 추가하여 응답을 더 유용하게 만들 수 있음 (어플리케이션 버전, 캐시 상태 등)
  • 캐싱 동작 제어: Cache-Control 헤더를 통해 캐시 서버와 브라우저가 컨텐츠를 캐싱하는 방식을 제어할 수 있음
  • CORS (Cross-Origin Resource Sharing) 설정: 다른 도메인의 웹 페이지에서 리소스를 요청할 수 있도록 허용하는 Access-Control-Allow-Origin과 같은 CORS 관련 헤더를 설정 가능
  • 성능 최적화: 성능과 관련된 헤더를 추가하여 브라우저의 렌더링 성능을 개선할 수 있음

Amazon Cloudfront 보안 및 Access 구성 및 제한

  • Signed URL
    • 개별 파일에 대한 access 제공 (파일 하나당 하나의 url)
    • 만료시간, IP주소 범위 등 지정
  • Signed Cookie
    • 다수의 파일에 대한 access 제공 (다수의 파일에 하나의 signed cookie)
    • 만료시간, IP주소 범위 등 지정

Amazon Cloudfront Pricing

  • 서버 Edge Location마다 데이터 전송 비용이 다름
  • 다양한 Price class 존재
저작자표시 (새창열림)

'ASC' 카테고리의 다른 글

5. RDS & DynamoDB  (1) 2023.11.16
Computing - Lightsail & EC2, Auto Scaling & ELB  (0) 2023.11.08
3. VPC & Route53  (0) 2023.11.01
2. Container & Docker + CI/CD  (1) 2023.10.29
1. 클라우드 컴퓨팅 개요 & IAM  (0) 2023.09.29
  1. Storage
  2. Block Storage
  3. File Storage
  4. Object Storage
  5. Amazon S3
  6. Amazon S3 특징
  7. Amazon S3 구성
  8. Amazon S3 기능
  9. Amazon CloudFront
  10. Cloudfront Edge Location
  11. Amazon Cloudfront
'ASC' 카테고리의 다른 글
  • 5. RDS & DynamoDB
  • Computing - Lightsail & EC2, Auto Scaling & ELB
  • 3. VPC & Route53
  • 2. Container & Docker + CI/CD
호프
호프
호프
Untitled
호프
전체
오늘
어제
  • 분류 전체보기 (341)
    • 오류😬 (4)
    • 스터디📖 (96)
      • 웹 개발 기초 (8)
      • Spring (20)
      • ML, DL (30)
      • Node.js (22)
      • React (0)
      • 블록체인 (12)
      • Go (3)
      • Javascript (1)
    • 알고리즘💻 (153)
      • 그리디 (23)
      • Bruteforce&Backtracking (16)
      • DP (17)
      • 이분탐색&정렬&분할정복 (17)
      • 누적합&투포인터 (6)
      • 스택&큐&덱 (19)
      • 그래프(DFS&BFS) (19)
      • 트리 (7)
      • 우선순위큐&다익스트라 (11)
      • 벨만포드&플로이드와샬 (8)
      • map&set&number theory (5)
      • 기타 (5)
    • 프로젝트 (3)
      • 캡스톤 디자인 프로젝트 (3)
    • 블록체인🔗 (3)
      • Solana (2)
      • 개발 (0)
      • Harmony (1)
    • ASC (6)
    • CS (73)
      • 데이터베이스 (12)
      • 클라우드컴퓨팅 (21)
      • 운영체제 (11)
      • 컴퓨터네트워크 (14)
      • 블록체인응용 (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 복습

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
호프
6. Storage - S3 & CloudFront
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.