진짜 개발자
본문 바로가기

AWS/Storage

AWS - 이론) Storage 서비스

728x90

Storage 서비스


S3

- 오브젝티브 스토리지 서비스

- 99.999999999% 의 내구성

- 버킷에 저장할 수 있는 객체수에는 제한이 없다

- 하나의 객체는 최대 5TB가능

- http/s 엔드포인트를 이용하여 웹에서 언제든 접근 가능

- 객체 업로드나 삭제에 알림, 워크플로, 스크립트를 트리거 할 수 있다.


사용처

1) 스토리지 및 백업

2) 어플리케이션 파일 호스팅

3) 미디어 호스팅

4) AMI및 스냅샷 저장

5) 소프트웨어 전송


버킷 

- 글로벌적으로 유니크한 이름을 주어야한다(중복 불가)

- 자원의 위치를 나타내는 최상위 네임스페이스


객체 접근 경로

- http://    s3-ap-notheast-1    . amazonaws.com    /[bucket name]/

        리전코드                                            버킷이름    


보안

1) ACL
2) IAM

3) KSM   

- 객체에 대한 엑세스 제한 : 다른 URL을 통해 접근해오는 사용자들에대한 전송비용을 지불해야 하므로

=> 서명된 URL을 사용하도록 요구

- OAI

- 사용자를 대신해 CloudFront 원본 엑세스 ID가 S3에서 객체를 직접 가져온다

- S3에 대한 요청을 CloudFront 에 대한 인증을 가진 사용자만 요청이 가능하게 함

과정

1. 원본 엑세스 ID를 생성하고 이를 배포에 추가

2. Amazon S3 버킷 또는 버킷 내 객체에 대한 권한을 원본 엑세스 ID에만 읽기 권한을 부여

4) 사용자가 암호화된 데이터를 업로드

- 이때는 AWS에 복호화에 필요한 데이터들을 AWS에 같이 업로드해야 한다.


버전관리

- 삭제된 객체를 쉽게 검색하여 이전버전으로 롤백 가능(백업)

- 모든 업로드에대한 새버전을 관리


S3 객체 수명주기 정책

- 시간이 지남에 따라 사용자가 정의한 수명주기 정책에 따라

  사용빈도가 낮아진 데이터를 값이 상대적으로 저렴한(엑세스 속도가 낮은) 스토리지로 자동으로 옮긴다



과금

보관을 위한 저장공간비용 + 네트워크를 통해 전송되므로 대역을 사용한 비용

- 버킷에 객체를 업로드하는 것은 비용지불을 하지 않는다


S3 1 Zone    

- 하나의 가용영역에만 데이터를 저장

- 가용성은 줄어 들지만 비용이 저렴


S3 Analytics

- 나의 스토리지에 대한 엑세스 패턴을 분석하여 올바른 스토리지 형태로 전환하기위한 서비스



S3 Storage Class

- S3는 Storage를 클래스별로 나누어 사용자의 다양한 요구사항을 충족시켜준다


Storage class 종류

https://aws.amazon.com/ko/s3/storage-classes/


Storage class별 과금 

https://aws.amazon.com/ko/s3/pricing/


Glacier

- 자주 사용하지 않는 데이터를 장기 저장하는데 적합

- 저장 비용이 싸다

- 표준 검색시간 3~5시간 소요

- 감사팀이 와서 지난 몇년간의 실적을 조사할 때를 대비하여 장기간 문서를 저장해놓아야할 때 사용

  => 이러한 문서를 찾을때 3~5시간이 걸리므로 필요시 추가 과금을 통해 빠르면 수분내에 데이터를 찾을 수 있다.

- 자동적으로 암호화가 되기 때문에 보안이 상대적으로 좋다


warm(write     read    )

- 특정 업무 시간에는 계속해서 데이터를 바꿀 수 있지만 업무시간이 끝나고

   한번 커밋한 파일에 대해서는 위변조를 방지하기 위해 읽기만 가능하게 하는 기능


보안

- 기본적으로 모든 데이터가 암호화가 된다

- KMS와 연동됨



EBS(Elastic Block Store)

- AWS의 외장하드디스크 서비스

- 데이터에 빠르게 엑세스 해야하며 , 장기간 지속해야 하는경우

- 인터넷에 대한 엑세스가 제공되지 않는다

EC2에 연결하여 사용이 가능하다(USB처럼)

- EBS에 저장된 데이터는 사용자가 지우기 전까지 영구적으로 보존된다

- 필요한 만큼 가상의 볼륨을 잡고 그만큼의 과금을 한다

- 저장된 데이터는 가용영역내에서 자동으로 복제된다

- S3로 스냅샷을 저장할 수 있다.


EBS를 인터넷으로 연결하여 제공하는법

- EC2에 연결하여 연결된 EC2에서 웹을연결하여 스토리지를 제공하면 된다(NFS 등등)


지원 볼륨 유형

  *IOPS - 초당 I/O 속도

SSD   

- IOPS가 좋다


1) 범용 SSD

- 3IOPS당 1GB

=> 초당 15 I/O가 필요하다면 무조건 5GB로 올려야 함 

이때 EBS는 용량에 대한 과금이 메겨지므로 비효율적이므로 프로비저닝된 IOPS를 고려해야함


2) 프로비저닝된 IOPS

- 내가 요구하는 IOPS를 수치로 적용하면 그에 맞는 IOPS를 제공

- 저장될 데이터양은 적으나 높은 IOPS를 요구할 때 사용

ex) 관계형 DB, NoSQL DB

HDD

- IOPS가 SSD에 비해 상대적으로 좋지 않다

- IOPS속도는 상관 없지만 스토리지가 상대적으로 많이 필요할 때 사용

ex) 빅데이터, 데이터 웨어하우스



암호화된 EBS

- 암호화된 EBS 볼륨은 다음이 자동으로 암호화된다

1. 볼륨 내부의 데이터

2. 볼륨과 인스턴스 사이에서 이동하는 모든 데이터

3. 볼륨에서 생성된 모든 스냅샷

4. 암호화된 볼륨으로 부터 생성된 스냅샷에서 다시 생성된 볼륨





EC2 인스턴스 스토리지 

- EC2에 직접 연결되어 있는 스토리지를 의미한다

- 한번 Stop 후 Start시 물리서버가 바뀌므로 데이터가 삭제된다음 start시 옮겨서 다시 저장된다


EFS

- NAS 스토리지 서비스

- 공유 스토리지

- NFS 4.0 ,4.1 제공

NFS 4.0 : 파일단위의 lock이 걸린다 즉, 동시성 제한이 걸린다

NFS 4.1 : 블록단위로 lock을 바꾸어 동시성을 향상 시켰다.


  탑재대상

- NFS에서 마운트 포인트를 의미



EBS(블록스토리지) vs S3(오브젝트 스토리지)

- 글자하나를 변경하고자 할때

EBS : 해당 글자가 속한 블록을 검색하여 블록 하나를 변경

S3 : 전체 파일을 업데이트 한다