2. AWS 기본 아키텍처 - S3에 대한 이해

2021. 4. 27. 05:21IT 공부/AWS

※ Amazon S3

- 객체 수준 스토리지 (파일 일부를 변경하려면, 파일 전체를 다시 업로드해야 함)

- 객체는 파일 데이터 + 그 객체를 설명하는 메타데이터로 구성됨

- S3에 저장되는 데이터는 여러 시설과 여러 디바이스에 중복 저장됨

- AWS의 Console, API, SDK 및 타사 API, SDK를 통해 액세스 가능

- 이벤트 알림 및 다른 프로세스 트리거로 활용 가능 (ex: 특정 버킷에 객체 업로드/삭제시 A프로세스 진행)

- 정적 웹 사이트 전체를 호스팅 할 수 있음

 

※ S3 사용량에 관하여

- S3 analytics에서 액세스 정도를 분석하여 적합한 스토리지 클래스를 사용 가능

- 일별 스토리지 사용량은 AWS MAnagement Console에서 시각적으로 확인 가능

- 사용량에 대한 데이터를 S3 버킷에 저장 후 Amazon QuickSight와 같은 비즈니스 인텔리전스 도구에서 분석 가능

 

 

※ S3의 기능 및 보안

- S3는 CDN의 오리진 역할 수행 가능

- 신규 생성된 버킷 접근 권한은 계정 관리자 및 루트 사용자만 가지고 있음

- 보안을 위한 퍼블릭 액세스 차단 기능의 4가지 옵션

 ::: 새 퍼블릭 ACL 및 퍼블릭 객체 업로드 차단
 ::: 퍼블릭 ACL을 통해 부여된 퍼블릭 액세스 권한 제거
 ::: 새 퍼블릭 버킷 정책 차단
 ::: 퍼블릭 정책이 있는 버킷에 대한 퍼블릭 액세스 및 교차 계정 액세스 차단

 

※ S3 액세스 포인트

- 해당 엔드 포인트에서 데이터로 접근할 수 있는 전용 액세스 정책

 

 

※ S3 버전 관리 기능

- 객체를 영구적으로 제거하지 않고 삭제할 경우, 삭제 마커가 삽입됨

- 객체를 덮어쓴 경우 새 객체 버전이 생기며 이전 버전으로 복원 가능

- 데이터 보존 또는 보호를 위해 S3 객체 잠금이 가능 (WORM 모델 : Write-Once-Read-Many)

 

 

※ CORS (Cross Origin Resource Sharing)

- 한 도메인에서 로드되어 있는 클라이언트 웹 애플리케이션이 다른 도메인에 있는 리소스와 상호 작용하는 방법

- S3 리소스에 대한 교차 오리진 액세스 허용이 가능 (규칙에 대한 XML 문서 필요)

 ::: 버킷에 액세스를 허용할 오리진
 ::: 각 오리진에 대해 지원할 작업 (HTTP 메서드)
 ::: 기타 작업별 정보
<CORSConfiguration>
  <CORSRule>
    <AllowedOrigin>         </AllowedOrigin>
    <AllowedMethod>         </AllowedMethod>
    ....
    <MaxAgeSeconds>         </MaxAgeSeconds>
    <ExposeHeader>          </ExposeHeader>
  </CORSRule>
</CORSConfiguration>

 

 

※ 데이터 스토어로서의 S3

- 대규모 분석 및 연산을 위한 데이터 스토어로 사용 가능

- 수평 확장성에 의해 다수의 동시 트랜잭션이 가능하기 때문

 

 

※ 백업 및 아카이브 도구로서의 S3

- 수명 주기 정책을 사용하여 장기 데이터를 Amazon Glacier로 이전할 수 있음

- 더 높은 수준의 내구성이 필요할 경우, 교차 리전 복제를 사용하여 다른 리전의 S3 버킷에 자동 복사 가능

 

 

※ S3로의 멀티파트 업로드

- 대용량 객체를 분할 업로드 후 S3에서 조각 객체를 전체 객체로 다시 생성

- 병렬 파트 업로드로 처리량 개선

- 작은 파일 크기로 네트워크 오류시 재시작에 대한 부담 감소

 

 

※ S3 사용이 적합한 경우

- 한 번 쓰고 여러 번 읽어야 할 때

- 데이터 액세스가 일시적으로 급증할 때

- 사용자가 매우 많고 콘텐츠 양이 다양할 때

- 데이터세트가 계속 증가할 때

 

 

※ S3 사용이 적합하지 않은 경우

- 데이터가 자주 바뀔 때

- 장기 아카이브 스토리지

- 블록 스토리지

(참고) 파일 스토리지 vs 오브젝트 스토리지 vs 블록 스토리지

www.alibabacloud.com/ko/knowledge/difference-between-object-storage-file-storage-block-storage

  파일 스토리지   - 폴더 계층 구조로 파일 저장
  - 파일 정보에 대한 메타데이터가 제한적
  - 데이터 양이 늘어날 경우 구조적 문제 발생 가능
  오브젝트 스토리지   - 오브젝트라는 각각의 데이터 단위가 개별 단위로 저장
  - 오브젝트는 PDF, 비디오, 오디오, 텍스트, 웹사이트 데이터 등 거의 모든 데이터 유형
  - 폴더 계층 구조 없이 단일 평면 구조로 저장
  - 오브젝트 명이 색인 테이블에서 키 역할을 하여 빠른 검색 가능 
  블록 스토리지   - 데이터를 고정된 크기의 덩어리 또는 블록 시퀀스로 처리
  - 연속적으로 저장되지 않고 요청이 있을 때마다 블록을 병합하여 처리
  - 각 블록이 서로 다른 고유 주소를 가지므로 계층구조 X
  - 메타데이터 처리 능력이 제한적이므로 애플리케이션 수준에서 별도 처리해야 함

 

 

※ S3 Glacier

- 장기 데이터 스토리지

- 아카이브 또는 백업 용도

- 클라우드 스토리지 중 가장 저렴함

- 관리 콘솔을 사용하거나 CLI에서 작업해야 함

- 데이터 검색을 할 일이 거의 없거나 엄청 느려도 무방할 경우 사용

- 데이터 전송 및 저장시 SSL/TLS 암호화

(참고) SSL/TLS

devdic.tistory.com/20

  SSL
  (Secure Socket Layer)
  TLS
  (Transport Layer Security)
  웹 서버와 웹 브라우저 간의 암호화 통신을 위하여
  응용계층과 TCP/IP 계층에서 동작하는 프로토콜

  1) 인증 : 상대 사이트에 대한 신뢰성 인증
  2) 암호화 : 다양한 암호화 알고리즘을 이용하여 메시지 암호화
  3) 무결성 : 송/수신 메시지에 대한 Checksum* 기능, 변조 방지
  4) 지원 프로토콜 : HTTPS(port:443), TelNets(port:992), POP3S(port:995), SFTP(port:22)

::: checksum : 네트워크를 거치면서 데이터가 변경되었는지 확인하는 방법

 

액세스 정보 : S3 Standard > S3 Standard IA > S3 One Zone IA > Amazon Glacier/Deep Archive

 

 

※ 리전

- 일부 서비스는 일부 리전에서만 제공

- 일부 서비스는 교차 리전으로 사용할 수 있으나 지연 시간 증가

- 리전 별로 비용이 다름

 

 

반응형

'IT 공부 > AWS' 카테고리의 다른 글

1. AWS 기본  (0) 2021.04.26