티스토리 뷰

* 스토리지(Storage)

- 데이터를 보관하는 장소로, 사용하는 모든 저장 장치

- e.g. USB(Universal Serial Bus), 외장 하드(SSD, HDD)

 

 

* 스토리지 서비스 및 주요 기능

1) 블록 스토리지(Block Storage)

 - 단일 스토리지 볼륨(Volume)을 '블록'이라는 개별 단위로 분할해서 저장함

 - 각 블록은 저장된 위치에 고유한 주소가 있음
 - 서버에서 파일을 요청하면 블록들을 재구성하여 하나의 데이터로 서버에 전달함

 - 클라우드 환경에서 블록 스토리지의 각 블록은 가상 머신 인스턴스에 위치함

 - 마치 일반 컴퓨터에 하드디스크를 추가하여 C 드라이브, D 드라이브처럼 논리적으로 구분해서 사용

 - 일반적으로 블록 스토리지는 SAN(Storage Area Network) 또는 가상 머신의 디스크로 사용됨

   [참고] SAN : 서로 다른 종류의 데이터 저장 장치를 한 데이터 서버에 연결하여 총괄적으로 관리해 주는 네트워크

 

2) 파일 스토리지(File Storage)

 - 파일 수준 또는 파일 기반 스토리지라고 하며, 디렉터리 구조로 파일을 저장함

 - 각 파일은 폴더에 종속되고 폴더 역시 다른 폴더에 종속되어 계층 구조를 이룸

 - 개인용 컴퓨터와 서버에서 일상적인 작업을 공유하여 사용할 수 있지만,

   파일이 늘어나면 분류하거나 정리하는데 시간이 점점 더 소요된다는 단점이 있음

 - 파일 스토리지는 일반적으로 NAS(Network Attached Storage)에 사용됨

  [참고] NAS : 컴퓨터 네트워크에 연결된 파일 수준의 컴퓨터 기억 장치

                      서로 다른 네트워크 클라이언트에 데이터 접근 권한 제공

 

3) 객체 스토리지(Object Storage)

 - 각 데이터 조각을 가져와서 객체로 저장하고, 개별 단위로 저장함

 - 파일 스토리지와 다르게 모든 객체는 중첩된 계층 구조 없이 단일한 평면적인 주소 공간에 저장됨

 - 이 평면 주소 공간에는 데이터 및 관련 메타데이터(metadata)로 구성된 객체에 고유 식별자가 있음

 - OS나 파일 시스템에 의존하지 않으면서 데이터를 저장하고 객체에 쉽게 접근 가능

 - 객체의 키(이름)만 알고 있으면 쉽고 빠르게 대상을 검색할 수 있음

 - 접근 시 HTTP 프로토콜 기반의 REST API를 사용함

 - 저장할 수 있는 데이터의 수와 파일 크기에 제한 없음

 - 많은 사용자가 사용하는 이미지, 영상 등 복잡하고 대용량인 비정형 데이터를 효율적으로 처리 가능

 

구분 블록 스토리지 파일 스토리지 객체 스토리지
AWS 스토리지 서비스 Amazon EBS Amazon EFS Amazon S3
주요 특징 - 데이터를 블록 단위로 저장
- 호스트에서 파일 시스템 생성
- FC, iSCSI를 이용해 접근
- SAN
- 디렉터리 구조로 파일 저장
- 스토리지에서 파일 시스템 생성
- NFS, CIFS를 이용하여 접근
- NAS
- 데이터를 객체 단위로 저장
- 데이터 검색을 위한 메타데이터와 식별자 사용
- REST API 호출을 통해 접근
- HTTP/HTTPS
사용 사례 호스트에서 직접 파일을 액세스하고 기록하며 빠른 성능을 요하는 경우 다수의 장치가 데이터를 공유하여 동일한 서비스를 사용해야 하는 경우 대량의 데이터를 저장하거나 다수의 서버에서 해당 데이터에 접근해야 하는 경우

 

 

* 스토리지 선택 기준

- 클라우드 스토리지는 어디에서나 접근할 수 있는 편의성, 대량의 데이터를 수용할 수 있는 확장성 갖춤

- 스토리지 도입 시 클라우드 스토리지의 종류별 특징을 이해하고 목적과 상황에 맞게 선택해야 함

 

 

* 스토리지를 선택할 때 고려 사항

  내구성 가용성 보안 비용 확장성 성능 통합
주요 내용 데이터
손실 가능성
서비스
지속 시간
저장 및 전송 중
데이터 보안
스토리지
단위 가격
스토리지 크기 및 사용자 수
변경
스토리지 크기 및 사용자 수 
변경
다른 서비스와 호환성

 

 

* Amazon EBS(Elastic Block Store) 

- EC2 인스턴스에 사용할 수 있는 블록 스토리지 볼륨을 제공하는 서비스

- 블록 스토리지 특성을 이용한 저장 방식이므로 데이터를 일정한 크기의 블록으로 나누어 분산 저장함

- 볼륨 위에 파일 시스템을 생성하거나 하드디스크 드라이브 같은 블록 디바이스를

  사용하는 것처럼 볼륨을 사용할 수 있음

- 인스턴스에 연결된 EBS 볼륨의 구성을 동적으로 변경할 수 있음

- 데이터베이스처럼 데이터 출입이 많은 서비스에 적합함

- EBS 스토리지는 AWS 관리 콘솔에서 필요한 용량과 성능에 맞추어서 볼륨을 생성한 후 EC2 인스턴스에

 연결하고 파일 시스템을 포맷한 후 사용하며, 파일 시스템 포맷은 운영 체제에 따라 다르게 사용됨

- 리눅스는 xfs 또는 ext4 유형이 주로 사용되며, 윈도우는 NTFS 포맷이 주로 사용됨

- 포맷이 완료되면 해당 볼륨을 서버에서 마운트한 후 데이터를 해당 디렉터리에 저장해서 사용함

- 인스턴스와 EBS 볼륨은 서로 종속 관계가 아니며, 인스턴스는 다수의 볼륨을 연결해서 사용할 수 있음

- 하나의 EBS 볼륨은 한 번에 하나의 인스턴스에만 연결할 수 있고,

  해당 인스턴스에서 지원하는 형태의 시스템으로 포맷해야 사용 가능

 

 

* EBS 특징

1) 데이터 가용성

 - 단일 하드웨어 구성 요소의 장애 때문에 데이터가 손실되지 않도록 해당 가용 영역 내에서 자동으로 데이터 복제

 

2) 데이터 지속성

 - EBS 볼륨은 인스턴스 수명과 관계없이 유지되는 비관계형 인스턴스 스토리지

 

3) 데이터 안정성

 - Amazon EBS 암호화 기능으로 암호화된 EBS 볼륨을 생성할 수 있음

 - 암호화 표준 알고리즘(AES-256) 사용

 

4) 데이터 백업

 - 모든 EBS 볼륨의 스냅샷(Snapshot)을 생성함

 - 다중 가용 영역에 중복 저장이 가능한 Amazon S3에 볼륨 내 데이터 사본을 백업 가능

 

5) 데이터 확장성

 - 서비스를 중단하지 않고 볼륨 유형, 볼륨 크기, IOPS(Input/Output Operations Per Second) 용량을 수정 가능

 

 

* EBS 볼륨 유형

1) SSD

 - 메모리형 디스크를 사용함

 - 데이터를 빠르게 읽고 처리하는 능력이 좋음

 - 주로 서버의 운영체제가 설치되는 OS 영역이나 일반 데이터베이스 보관용 스토리지 유형으로 사용됨

 

2) HHD

 - 플래터(Platter) 디스크를 사용함

 - 속도와 상관없이 데이터 저장 용량이 많이 필요할 때 사용하므로 데이터 분석에 주로 활용됨

 

구분 SSD HDD
볼륨 유형 범용 SSD 볼륨
(gp2, gp3)
프로비저닝된 IOPS
SSD 볼륨 (io1 및 io2)
처리량 최적화 HDD 볼륨
(st1)
콜드 HDD 볼륨 (sc1)
특징 다양한 작업에 적합하며 요금과 성능 간 균형
유지
지연 시간에 민감한 작업을 위해 설계된 고성능
SSD 볼륨
자주 접근하고 처리량이 집약적인 작업에 적합한 저렴한 HDD 자주 접근하지 않는 작업에 적합한 최저 비용의
HDD 볼륨
볼륨 크기 1GiB ~ 16TiB 4GiB ~ 16TiB 125GiB ~ 16TiB 125GiB ~ 16TiB
기준 성능 속성 IOPS IOPS MiB/s MiB/s
사용 사례 일반적인 작업 I/O 집약적 NoSQL 및
관계형 데이터베이스
Big Data 분석 간헐적 사용 데이터

 

 

* EBS 스냅샷

- EBS 스냅샷 기능은 특정 시점에 포인트를 찍어서 그 시점으로 되돌아갈 수 있는 지점을 만드는 기능

- 중분식 백업 방식을 이용함

- 마지막 스냅샷 이후 변경되는 데이터 블록만 기록/복제하므로 저장 비용과 시간도 효과적으로 절감할 수 있음

- 매번 원본과 크기가 같지 않아도 변경된 부분만 중분되어 백업되기 때문에

  특정 데이터를 삭제해도 어느 한 부분의 스냅샷만 가지고 있다면 복구할 수 있음

- 스냅샷 삭제 시 다른 스냅샷에서 참조되지 않는 영역만 데이터에서 제거되기 때문

- 스냅샷은 기본적으로 Amazon S3라는 스토리지 공간에 저장되어 여러 가용 영역에 자동으로 복제됨 

- 다른 계정으로 공유할 수 있고, 스냅샷을 이요하여 손쉽게 다른 리전으로 복제할 수 있음

 

 

* Amazon EFS (Elastic File System)

- 클라우드 환경과 온프레미스 환경에서 사용할 수 있는 완전 관리형 네트워크 파일 시스템

  [참고] 완전 관리형 : 클라우드에서 하드웨어 프로비저닝 유지 관리, 소프트웨어 구성, 모니터링, 복잡한 성능 조절 등

                                  모든 것을 관리하기 때문에 사용자 입장에서는 별다른 관리가 필요 없다는 의미

- 처음 파일 시스템을 생성한 후 서버에 연결하면 사용한 만큼 자동으로 스토리지 크기가 확장되고, 사용한 만큼만 비용을 지불하면 되기 때문에 사실상 용량 제한 없이 사용할 수 있음

 

 

* EFS 특징

- 고성능 네트워크 파일 시스템으로, 여러 대의 컴퓨터가 네트워크상의 동일한 데이터에 접근해야 할 때 사용함

- NFS 표준 프로토콜 기반의 연결을 지원하고 있어 기존 다양한 어플리케이션과 유연하게 통합할 수 있음

  [참고] NFS(Network File System) : 네트워크 기반의 파일 시스템으로,

                                                          공유된 원격의 호스트 파일을 다른 시스템이 로컬에서 가용할 수 있도록 구현한 방식

- 여러 컴퓨팅 인스턴스에서 동시에 사용할 수 있음

- 기존 NAS처럼 사용자 홈 디렉터리를 공유하여 애플리케이션 개발

- 테스트 환경의 다양한 웹 서비스와 콘텐츠 관리, 분석이나 미디어 업무에도 활용할 수 있음

- EFS 볼륨은 IOPS가 높고 용량이 매우 크기 때문에 처리량이 많고 대기 시간이 짧음

- 파일 시스템의 사용 증가에 따라 자동으로 용량 및 성능이 조정되는

  탄력성을 제공하여 네트워크 스토리지의 용량 및 성능 부족을 걱정할 필요 없음

- EBS처럼 가용 영역 단위의 서비스가 아니라 가용 영역 전반에 걸쳐 사용할 수 있는 스토리지

- 가용 영역 장애를 고려한 디자인이 가능해서 전통적인 NAS보다 뛰어난 가용성을 가짐

 

 

* Amazon S3(Simple Storage Service)

- AWS 서비스 중에서 EC2 서비스와 더불어 가장 오래되고, 기본이 되는 객체 스토리지 서비스

- S3에 저장되는 데이터를 객체(Object)라고 하며, 이 객체 저장소를 버킷(Bucket)이라고 함 

- 객체에 대한 입출력은 HTTP 프로토콜로 하며, REST API를 이용하여 명령이 전달됨

- 높은 내구성을 가지고 있음

  99.99999999%의 내구성으로 디자인이 되어 있기 때문에 데이터 손실을 최소화하도록 규정함

- 데이터 저장 공간이 거의 무제한에 가까워 특별한 용량 제한 없이 데이터를 저장할 수 있으며,

  필요한 경우 다양한 스토리지 계층으로 데이터를 분류하여 데이터 저장 비용을 절감할 수도 있음

- 보안 규정 준수 및 감시 기능을 제공하고 있어 데이터가 안전하게 저장되고, 인증된 사용자만 접근할 수 있도록 구성함

- 필요한 경우 접근 권한 정책을 이용해 해당 객체의 접근을 제어할 수 있음

- S3 객체는 기본적으로 웹 접속이 가능하기 때문에 간단한 정적 웹 콘텐츠를 S3에 올려

  웹 서버의 도움 없이 바로 웹 서비스가 가능함

 

 

* S3 구성 요소

1) 버킷

 - 데이터 스토리지를 위한 S3의 기본 컨테이너

 - 객체는 반드시 버킷에 저장되어야 하며, 하나의 리전에서 생성된 후에는 버킷 이름과 리전을 변경할 수 없음

 

2) 객체

 - S3에 저장되는 기본 매체로, 객체 데이터와 객체 메타데이터로 구성되어 있음

 - 메타데이터는 객체를 설명하는 이름-값에 대한 하나의 쌍으로 존재함

 - 객체를 저장할 때 사용자 정의 메타데이터를 지정할 수 있음

 - 객체는 키(이름) 및 버전ID를 이용해 버킷 내에서 고유하게 식별됨

 

3) 키

 - 버킷 내에서 객체의 고유한 식별자

 - 버킷 내 모든 객체는 고유한 하나의 키를 갖게 됨

 - S3는 '버킷 + 키 + 버전'과 객체 사이의 기본 데이터 맵으로 생각할 수 있음

 

4) S3 데이터 일관성

 - S3 버킷에 있는 객체에 대해 여러 서버로 데이터를 복제하여 고가용성 및 내구성을 구현하고 데이터 일관성 모델 제공

 

   http://cloudneta.s3.amazonaws.com/20240125/example.png

    - cloudneta : 버킷

    - 20240125/example.png : 객체 키

 

 

* S3 특징

- 빠르고 내구성과 가용성이 높은 키 기반의 접근성을 제공

- 데이터의 저장 및 검색에 특화된 객체 스토리지 

- 하나의 리전 내 최소 세 개 이상의 물리적으로 분리된 가용 영역에 데이터를 복제해서 저장하므로 높은 내구성과 고가용성을 제공하며, 서버의 OS 도움 없이 객체별 접근이 가능하므로 데이터 저장 및 활용에 용이함

- Amazon S3는 동일 버킷 내 여러 개의 객체 변형을 보유하여 데이터 복구에 특화된 객체 스토리지

- S3에 버전 관리 기능을 이용하면 버킷에 저장된 모든 버전의 객체를 보존하거나 검색 및 복원할 수 있음

- 의도하지 않은 사용자 작업 및 애플리케이션 장애에서 쉽게 복구될 수 있음

- AWS와 다른 서비스를 유기적으로 연동시켜 다양한 형태로 사용할 수도 있음

- 뛰어난 내구성 덕분에 빅데이터, 머신 러닝을 위한 데이터를 저장하거나 기업의 데이터를 영구적으로 보관하는 등 데이터를 보관하거나 분석할 때 자주 사용됨

- 웹 서버의 장치 도움 없이 S3 서비스 객체에 직접 접근할 수 있어 대규모의 이미지를 사용하는 e커머스 업무에 사용되는 이미지나 동영상을 제공할 수 있음

- 웹 서버 부하를 줄일 수 있어 서비스 안정성과 성능 향상에 크게 기여함

 

[문장에 대한 참고 내용] AWS와 다른 서비스를 유기적으로 연동시켜 다양한 형태로 사용할 수도 있음

 e.g.  모바일과 PC에서 웹 접근 시 화면 크기가 달라서 표시 화면이 다른 것을 확인할 수 있는데, 같은 화면 크기를 표시한다면 가독성 차이로 불편함을 느낄 수 있으므로 웹에 접근할 때 사용하는 이미지를 인터페이스별로 크기를 분리하는 기능이 필요함


이 때, S3를 이용하여 사용자 인터페이스 정보를 변경하면 해당 정보를 이벤트로 발생시켜 'AWS의 람다' 서비스와 연동하여 접근 장치별 인터페이스 화면에 전달하여 동일한 내용을 확인 가능함

 

 

* S3 스토리지 클래스

- 여러 사용 사례에 맞게 설계된 다양한 스토리지 클래스를 제공함

- 여기에는 자주 접근하는 데이터를 저장하는 S3 standard와 알 수 없거나 변화하는 접근 패턴이 있는 데이터를 저장하는 S3 intelligent-tiering, 데이터 수명은 길지만 자주 접근하지 않는 데이터를 저장하는 S3 standard-IA 및 S3 one zone-IA, 데이터 수명이 제한되어 추후 삭제 예정인 데이터 및 백업을 위한 S3 glacier 등이 있음

 ------- 데이터에 대한 S3 수명 주기 정책을 이용한 스토리지 변화 -------
스토리지 유형 S3 standard S3 - IA glacier
AWS 데이터베이스 서비스 S3 standard storage S3 infrequent access 
standard storage
anazon S3 glacier
주요 특징 자주 액세스하는 데이터 액세스 빈도가 낮은 데이터 거의 액세스하지 않는 데이터
사용 사례 주요 사용 데이터
 - 빅데이터 분석용 데이터
 - 작업용 임시 백업 데이터
- 파일 동기화
- 데이터 백업
- 재해 복구용 데이터
- 장기 보존용 데이터
- 시스템 백업

 

 

* S3 스토리지 클래스의 종류 및 특징

1) standard

 - 가장 일반적인 스토리지 클래스

 - 데이터를 검색할 때 요금 및 최소 사용량에 제한 없이 사용한 만큼 비용 지불함

 

2) intelligent-tiering

 - 객체 접근 정보가 고정되어 있지 않을 때 자동으로 빈번한 접근 그룹과 간헐적 접근 그룹에 나누어서 저장함

 

3) infrequent access 

 - 객체가 자주 사용되지는 않지만 조회가 필요할 때 사용되는 데이터를 저장하는 클래스

 - 두 개의 하위 클래스로 나뉨  

  (1) standard-infrequent access : 최소 세 개 이상의 가용 영역에 데이터가 저장되기 때문에 내구성이 높음

  (2) one zone-infrequent access : 이름처럼 하나의 가용영역에만 데이터가 저장되기 때문에 내구성이 낮음

                                                      데이터가 삭제되어도 다시 생산할 수 있는 데이터를 위한 클래스

 

4) S3 glacier
 - 데이터 아카이브와 장기간 백업을 고려하여 만든 스토리지 클래스

 - 아카이빙 데이터는 오랫동안 데이터가 저장되어 있는 것을 의미함

 - 이런 아카이빙 데이터에 접근하려면 많은 시간이 소요될 수 있음

 - 데이터를 다른 클래스로 옮기려면 기가바이트 당 비용이 발생하므로 주로 보관이 목적일 때 사용

 

5) S3 glacier deep archive

 - 재사용이 거의 없는 데이터를 보관할 때 사용하는 클래스

 - 일정 기간이 지나면 삭제할 데이터를 주로 보관하며, 조회하는 데 수 시간에서 수일이 소요될 수 있음

 - 그 대신 데이터 보관 비용이 가장 저렴하므로 데이터 목적에 따라 매우 유용한 저장소가 될 수 있음

 

스토리지 클래스 내구성 가용성 가용 영역 수 최소 기간 사용 사례 고려 사항
S3 standard 99.9999999% 99.99% 세 개 이상 없음 자주 액세스
하는 데이터
 
S3 intelligent-
tiering
99.9999999% 99.99% 세 개 이상 없음 알 수 없거나
변경되거나
예측할 수 없는
액세스 패턴이
있는 데이터
객체당 약간의 월별 모니터링 및 자동화 요금
S3 standard-IA 99.9999999% 99.99% 세 개 이상  30일 수명이 길고
자주 액세스
하지 않는 데이터
객체와 관련된 검색 비용
S3 one zone-IA 99.9999999% 99.95% 한 개 30일  수명이 긴
데이터에 자주
액세스하지 않는 중요하지 않은
데이터
- 단일 가용
영역에 데이터 저장
- S3 standard-
IA보다 가격이 저렴함
S3 glacier 99.9999999% 99.99%
(객체 복원 후)
세 개 이상 90일 분에서 시간
단위로 검색
시간을 지원하는 장기간 데이터
보관
- 실시간 액세스 지원 불가 
- 객체에 액세스 할 때 먼저 복원 필요
- 객체 복원은 수 분에서 수 시간까지 소요
S3 glacier
deep archive
99.9999999% 99.99%
(객체 복원 후)
세 개 이상 없음 분에서 시간 단위로 검색 시간을
지원하는 장기간 데이터 보관
- 가장 저렴한 객체 스토리지 클래스
- 객체 복원은 최대 12시간
이상 필요

 

 

* S3 보안

- S3 버킷 접근은 일반적으로 버킷을 생성할 때 사용한 버킷 이름을 포함하여 생성된 유일한 식별자를 기반으로 언제, 어디서든 접근 가능함으로 인해 보안은 가장 중요한 부분

- AWS 자격 증명 서비스인 IAM과 밀접하게 연관되어 있음

- 밀접하게 연관되어 있기 때문에 IAM으로 접속 사용자나 데이터 접근을 관리할 수 있음

- 특정 S3 버킷 접근에 대해 허용과 거부가 발생한다면 IAM에서 접근 권한을 통제하여 일어나는 상황으로 이해

- IAM으로 사용자 및 정책별 접근 권한을 제어할 수 있지만, 접근 권한이 있는 사용자가 개별 객체에 접근할 수 있게 하는 S3만의 버킷 내 모든 객체에 대한 권한을 조정할 수도 있음

- 쿼리를 요청할 때 쿼리 문자열을 인증하여 사용자 인증 정보도 함께 보낼 수 있는데, 해당 객체에 접근할 때 이 인증 정보로 일시적 허용 여부 권한을 이용할 수 있음 (e.g. 임시 권한을 부여해서 접근하는 persign 기능)

- S3 객체는 기본적으로 외부 사용자가 접근할 수 없도록 설정되어 있고 객체 소유자와 루트 사용자만 해당 객체에 접근할 수 있으며, 외부에서 접근하려면 별도의 정책을 이용해 직접 설정해야 함

 

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

[AWS] CloudFormation 기초 내용 정리  (0) 2024.01.25
[AWS] 데이터베이스 서비스  (0) 2024.01.25
[AWS] 부하분산 서비스 - ELB 기능  (0) 2024.01.21
[AWS] AWS 네트워킹  (0) 2024.01.21
[AWS] 네트워킹 기초 정리  (0) 2024.01.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함