[AWS] Storage

Cherry·2024년 5월 14일
0

Storage

  • 컴퓨터에 데이터를 저장하는 저장소의 역할을 수행하는 부품이다
  • 하드 디스크와 동일한 역할을 수행하는 부품이다.
    (비휘발성 기억장치)
  • 스토리지는 직접 서버에 연결을 할 수 있고, 대용량의 데이터를 저장하기 위해 별도의 스토리지용 네트워크를 구성할 수 있다.
  • Storage의 종류로 DAS, NAS, SAN이 있으며 연결 방식 등으로 구분된다.
  • 스토리지는 하드웨어 기반의 장비이기 때문에 장비의 성능에 따라 혹 안정성에 따라 성능이 좌지우지 된다.
  • 램, 롬, 하드디스크, 디스켓, 캐시 등 HW적인 저장소

DAS(Direct Attach Storage)

전용 케이블을 이용해 서버와 스토리지를 직접 연결한다.
아래와 같이 가장 기본적인 각각의 서버에 DAS 스토리지가 있다고 생각하면 된다.

장점
1) 설치와 운용이 쉽다
2) 직접 연결하기때문에 속도가 다른 스토리지에 비해서 빠르다
3) 가격측면에서도 다른장비에 비해 저렴하다

단점
1) 서버 포트수에 한계가 있다.
2) 서버가 다운될 경우에는 스토리지 사용이 불가능하다.
3) 스토리지 장치 해제 시 저장된 데이터 유실 가능성이 존재한다.

NAS(Network Attach Storage)

네트워크에 연결되며 사용 권한이 할당된 내부 사용자 및 외부 사용자들은 자유롭게 NAS에서 데이터를 검색 및 저장가능하다.

장점
1) 데이터를 중앙 집중화하기 좋아 접근하기 쉽다
2) 백업과 설치가 간단하다

단점
1) 사용자가 증가하면 속도가 느려진다.
2) 높은 보안 수준을 요구하는 곳에서 사용이 적합하지 않다.

SAN(Storage Area Network)

블록 스토리지로 이루어진 장치 환경으로 여러 사용자가 동시에 액세스 할 수 있다는 특징이 있다.

장점
1) 이기종 저장장치간 연결이 가능하고 저장장치간 데이터 이동이 가능하다
2) 또한 광 케이블을 이용해 연결하여 속도가 빠르고 전송거리가 길다

단점
1) DAS, NAS에 비해 고가이다

스토리지 vs 데이터 베이스

DB

ID, record, 거래 정보와 같은 구조적 또는 반구조적 데이터가 저장될 수 있다.
nosql을 차지하고 일반적 2차원 데이터 형태 칼럼(field)과 로우(record)로 구성되는 테이블형 데이터가 담긴다.

Storage

텍스트 파일, 이미지, 영상 등 다양한 종류의 데이터가 저장될 수 있다.
파일을 담는다

클라우드에서 스토리지

클라우드 스토리지는 클라우드 컴퓨팅 제공업체를 통해 데이터와 파일을 인터넷에 저장할수 있는 클라우드 컴퓨팅 모델로, 사용자는 퍼블릭 인터넷 또는 전용 프라이빗 네트워크 연결을 통해 스토리지에 액세스 할 수 있다.

  • 비용 효율성
  • 민첩성 향상
  • 더 빠른 배포
  • 효율적인 데이터 관리
  • 확장성

이러한 스토리지는 클라우드에서는 저장방식에 따라서 분류한다.

보통 블록/파일/객체 스토리지로 구분하여 사용한다.

Block Storage

데이터베이스 또는 전사적 자원 관리 시스템과 같은 엔터프라이즈 애플리케이션을 위해 지연시간이 짧고, 빠른 데이터 액세스를 제공하는 스토리지

  • 데이터를 블록 형태로 저장
  • 빠른 저장 및 검색을 위해 블록에 고유한 식별자 부여

Amazon EBS

File Storage

데이터를 파일 및 폴더의 계층 구조로 저장하는 데이터 스토리지

  • 어플리케이션에 가장 널리 사용되는 유형
  • 네트워크 환경에서의 파일 기반 스토리지는 NAS기술 사용
    • 로컬 하드 드라이브와 유사한 방식으로 네트워크 스토리지 데이터 액세스

사용 사례

  • 여러 서버나 사용자가 동일한 파일 시스템에 동시 접근하는 경우
  • 파일과 디렉토리를 통해 데이터를 관리하고 싶은 경우
  • 네트워크를 통한 파일 공유가 필요한 경우

Amazon EFS

Object Storage

대용량 미디어 파일, 이미지, 백업등의 비정형 데이터를 저장하기 위한 평면형 구조 데이터 스토리지

  • 전송된 형식 그대로를 객체 데이터로 저장
  • 사용자가 직접 메타 데이터를 지정 가능 (커스터마이징)
  • 객체는 보안 버킷이라는 저장 공간에 저장
  • HTTP 프로토콜 기반 REST API 호출을 통해 접근
  • 구조상 데이터 검색 및 읽기 속도가 빠름

사용 사례

  • 정적 웹 컨텐츠(이미지, 비디오, HTML)를 호스팅하는 경우
  • 전세계 여러 데이터 센터에 데이터를 분산시키는 경우
  • 저렴한 비용으로 데이터를 오래 보관하는 경우

Amazon S3

데이터를 버킷 내 객체로 저장하는 객체 스토리지 서비스

  • 확장성, 데이터 보호, 비용 효율성
  • 대량의 데이터를 안전하게 저장
  • 비즈니스 요구에 맞게 데이터에 대한 접근 제어
    특징
  • 액세스 제어: 객체별 Access Control List(ACL)을 통해 데이터에 접근 가능한 사용자 관리
  • 높은 내구성: 99.999999999% 내구성
  • 데이터 저장: 객체 단위 데이터 저장
  • 데이터 저장 용량: 단일 객체 최대 크기 5TB

버킷

버킷은 S3에 저장된 객체에 대한 컨테이너로 최상위 디렉토리이다.

  • 버킷에는 객체를 무제한으로 저장 가능
  • 한 계정당 최대 100개의 버킷 생성 가능
  • AWS 전역에서 단 하나만 존재, 리전과 관계없이 전역적으로 유일한 이름 사용

객체

객체는 S3에 저장되는 기본 개체로 디렉토리 내에 저장되는 파일이다.

  • 객체는 하나 이상의 버킷에 저장, 각 객체의 크기는 최대 5TB
  • 객체 데이터와 메타 데이터(이름-값 페어 집합)로 구성
  • 객체는 키와 버전 ID로 버킷 내에서 고유하게 식별

구성

  • 키: 객체에 할당한 이름, 버킷 내 객체에 대한 고유한 식별자
  • 버전 ID: 버킷에 객체를 추가할 때 Amazon S3가 생성하는 문자열
    • Amazon S3 내 모든 객체는 버킷 + 키 + 버전 조합으로 공휴하게 식별 가능
  • 메타데이터: 객체 관련 정보를 저장하기 위한 이름-값 페어 세트, 사용자가 직접 지정 가능
  • 값: 저장하는 콘텐츠, 임의의 바이트 시퀀스
  • 태그: 저장된 객체를 분류하기 위해 사용하는 정보
  • 액세스 제어 정보: 저장하는 객체에 대한 액세스를 제어하기 위한 정보
    • 리소스 기반 액세스 제어(ACL, 버킷 정책)과 사용자 기반 액세스 제어 모두 지원

데이터 암호화

  • 서버측 암호화(SSE): 데이터를 받는 애플리케이션 혹은 서비스 서버가 해당 데이터를 암호화
    ex) SSE-S3(기본 적용), SSE-KMS, DSSE-KMS, SSE-C
  • 클라이언트측 암호화(CSE): 전송 및 저장 시 보안을 보장하기 위해 로컬에서 데이터 암호화, 제 3자 노출 방지

액세스 제어

  • 리소스 기반 정책: JSON 정책 문서로 적절한 권한을 가진 사용자만 리소스에 대한 액세스 허용 및 객체 보호, 리소스에 접근하기 위해 필요한 권한을 정의
  • 자격 증명 기반 정책: 자격 증명이 무슨 작업을 어느 리소스, 어느 조건에서 수행할 수 있는지를 제어하는 정책(관리형 정책, 인라인 정책), 사용자가 수행할 수 있는 작업 정의
  • CORS: S3를 사용하여 정적 웹 사이트를 호스팅하는 경우 CORS(Cross-Origin Resource Sharing) 구성을 통해 액세스 제어
  • Pre-Signed URLs: 미리 서명된 URL을 사용하여 버킷 정책 업데이트 없이 S3 객체 액세스 허용

스토리지 관리

버전 관리
👉 한 버킷에 여러 버전의 객체를 보관, 실수로 삭제되거나 덮어써진 객체 복원 가능

  • 버킷의 버전 관리를 활성화하면 저장되는 객체에 대해 고유한 버전 ID 자동 생성
  • 한 버킷에 여러 버전의 객체 보관 가능
  • 한 번 활성화하면 비활성화 불가

객체 복제
👉 객체 복제를 통해 하나 이상의 대상 버킷에 대한 객체를 동일하거나 다른 AWS 리전에 비동기적으로 자동 복제 가능

  • S3 리전 간 복제(CRR): 서로 다른 리전 버킷에서 새 객체를 복제하는 경우
  • S3 동일 리전 복제(SRR): 동일한 리전 버킷에서 새 객체를 복제하는 경우
  • S3 배치 복제: 기존 객체를 온디맨드 옵션으로 다른 버킷에 복제하는 경우

클래스

S3 버킷의 각 객체에는 그와 연결된 스토리지 클래스가 존재하며, 사용자는 사용 사례 및 요구 사항에 맞게 스토리지 클래스를 선택

  • 자주 액세스, 짧은 지연시간 필요: S3 Standard, S3 Express One Zone, Reduce Redundancy
  • 자주 액세스하지 않음: S3 Standard-IA, S3 One Zone-IA
  • 객체 아카이빙을 위한 저비용: S3 Glacier

수명주기
: 객체를 효율적으로 저장 및 관리하기 위해 S3 객체 그룹에 적용할 작업을 정의하는 수명 주기 구성

  • 전환 작업: 객체가 다른 스토리지 클래스로 전환되는 시기 정의
  • 만료 작업: 객체가 만료되는 시기 정의. 객체가 만료되면 S3가 해당 객체 자동 삭제

0개의 댓글