5. 스토리지
스토리지 서비스
스토리지 개요
객체, 파일, 블록 스토리지의 세 가지 유형이 있다.
- 블록 스토리지 (Amazon EBS)
- 서버에 붙어있다
- 속도가 빠르다
- 블록 단위로 있어서 특정 부분만 수정 가능
- 파일 스토리지 (Amazon EFS, FSx)
- 공유 파일에 액세스 가능
- NAS
- 네트워크를 타야 해서 블록 스토리지보다는 느리다
- 객체 스토리지 (Amazon S3, S3 Glacier)
- 무한 확장 가능
- 파일이 어디에 있는지 상관 X
- 파일 하나 하나가 고유의 키를 가진다
- 하나의 파일에 접근할 때는 블록, 파일 스토리지보다는 느리다
- 분산된 여러 파일을 키를 통해 가져올 때 한번에 병렬로 가져올 수 있다.
- 파일을 설명하는 메타데이터 존재
객체 스토리지는 객체 단위로 저장한다. 파일 하나를 저장하면, 고유의 key가 생긴다. key만 가지고 있으면 파일이 어디에 있든 찾을 수 있다. Metadata를 함께 저장하면 모든 사진을 다 받아서 검사할 필요 없이 데이터를 얻을 수 있다.
Amazon S3 개요
Amazon S3
- 내구성이 우수한 객체 스토리지 솔루션
- 모든 Amazon S3 스토리지 티어는 객체에 대해 연중 99.999999999%(9 11개)의 데이터 내구성을 제공하도록 설계됨 (3중화 이상 해둠)
- 용량 걱정 없이 무한하게 저장 가능 (파일 하나는 5TB)
- 인터넷에 공유 가능 (Contents Delivery)
- 비용이 저렴하다
- 사용 사례
- 백업 및 복원
- 분석용 데이터 레이크
- 미디어 저장 및 스트리밍
- 정적 웹 사이트
- 아카이빙 및 규정 준수 등
버킷 및 객체
- 버킷 내에 객체로 저장된다. 버킷은 리전에 속한다.
- 버킷 이름이 Globally Unique 해야 한다.
- 객체에는 파일 그리고 메타데이터가 포함된다.
- 폴더별로 나누어서 관리 가능하다
- 실제로 폴더에 저장되는건 아니고 객체에 접두부가 생기는 것
객체 보호
접근 막기, 암호화하기, 규정 준수하기
Amazon S3 액세스 제어
기본적으로 버킷, 객체, 관련 리소스 등의 모든 S3 리소스는 프라이빗으로 설정된다.
버킷 정책
리소스 기반 정책이다
Amazon S3 퍼블릭 액세스 차단
Amazon S3 액세스 포인트
액세스 포인트를 여러 개 두고, 대규모로 간편하게 관리할 수 있다.
서버 측 암호화 키 유형
- Amazon S3 관리형 키 (SSE-S3)
- 객체마다 고유한 암호화 키를 사용하여 암호화
- Amazon S3 관리형 키 (SSE-S3)를 사용할 경우, 객체의 암호화 키 자체도 정기적으로 회전되는 마스터 키로 암호화됨
- 암호화에는 AES-256(Advanced Encryption Standard)이 사용되며, 이는 가장 강력한 블록 암호화 알고리즘 중 하나임
- AWS KMS 키 (SSE-KMS)
- 이 방식은 AWS KMS(Key Management Service)에서 관리되는 키를 사용하여 암호화함
- AWS KMS 키 (SSE-KMS)를 사용하면 자체적으로 키 관리를 할 수 있음
- S3는 키 관리를 위임받아 우리의 키로 암호화 작업을 수행함
- 고객 제공 키 (SSE-C)
- 이 방식은 사용자가 직접 키를 관리하는 경우에 사용할 수 있음
- AWS KMS와는 달리 사용자가 직접 키를 관리하며, S3는 디스크에 데이터를 쓸 때와 데이터에 액세스할 때 암호화 및 복호화 작업을 처리함.
객체 저장
Amazon S3 스토리지 클래스
Amazon S3 Intelligent-Tiering
- 데이터 액세스 패턴이 변경될 때 자동으로 스토리지 비용을 절감할 수 있음
- 처음에는 Frequent Access Tier, 30일동dks 안쓰면 Infrequent..
Amazon S3 Glacier 스토리지 클래스의 이점
- 비용 효율적 스토리지
- 유동적인 데이터 검색
- 보안 및 규정 준수
- 확장성과 내구성
Amazon S3 버전 관리
- 버전 관리를 사용하는 버킷에서는, 실수로 삭제하거나 덮어쓴 객체를 복구할 수 있다.
- 삭제된 객체가 영구적으로 제거되지 않으며 삭제 마커가 삽입된다.
- 객체를 덮어쓰면 버킷에 새 객체 버전이 생성된다.
수명 주기 정책
- 우리가 직접 수명 주기 정책을 설정할 수 있다.
- 30일보다 오래된 객체를 S3 Standard-IA로 이동, 365일보다 오래된 객체를 S3 Glacier Deep Archive로 이동 등
- 객체별로, 버킷별로 수명 주기 규칙을 설정할 수 있다.
S3 객체 복제
- 데이터에 대한 높은 수준의 가용성 및 내구성 확보 가능
- 동일 리전 복제(SRR), 교차 리전 복제(CRR) 방식
- 메타데이터 유지하며 복제, 여러 스토리지 등급에 복제, 소유권이 서로 다른 객체 복사본 유지, 여러 리전에 저장된 객체 유지 등 태스크 수행 가능
Amazon S3의 추가 기능
Amazon S3 멀티파트 업로드
- 멀티파트 업로드 기능을 통해 최대 단일 5TB 파일 업로드 가능
- 콘솔에서는 X, API, SDK 사용해야 함.
- 속도가 훨씬 빠름. 병렬 업로드.
- 파트 하나 업로드 실패해도 그 파트만 다시 업로드 하면 됨. 네트워크 문제 빠른 복구
- 일시중지 및 재개
- 객체 생성 중 업로드 가능
Amazon S3 Transfer Acceleration
- 전 세계에 배포된 AWS 엣지 로케이션을 사용하여 데이터를 빠르고 쉽게 전송할 수 있다.
- 네트워크 가변성을 줄일 수 있다.
Amazon S3 이벤트 알림
- 파일이 추가되는 등 버킷에서 이벤트가 발생하면 전송되는 알림을 수신할 수 있다.
- SNS, SQS, Lambda Function으로 이벤트 알림 메시지를 전송할 수 있다.
- AWS에서 이벤트 모니터링을 관리하므로 따로 폴링할 필요 X
Amazon S3 비용 관련 요인
- 스토리지 - 객체 저장 시에 발생하는 기가바이트당 비용을 고려
- 요청 및 검색 - API 호출 (PUT, GET) 요청의 양 고려
- 데이터 전송 - 다른 리전으로 전송하면 요금 부과
- 관리 및 분석
- 복제 - 버킷 여러개 사용하니까 요금 부과
- 버전 관리 - 객체 여러개 저장하니까 요금 부과
공유 파일 시스템 개요
공유 파일 시스템
여러 인스턴스가 동일한 스토리지를 사용해야 하는 경우 어떻게 해야하지?
Amazon EFS
- NFSv4 프로토콜을 사용해서 연결
- 여러 인스턴스에서 동시에 파일 시스템 접근
Amazon EFS 이점
- 버스트 처치량 모드를 사용하여 스토리지 사용량에 따라 처리량 확장
- 프로비저닝 안해도 자동으로 스토리지 확장 및 축소
- 실제 사용한 만큼만 비용을 지불하기 때문에 TCO 줄일 수 있음
Amazon FSx
데이터 마이그레이션 도구
AWS 데이터 마이그레이션 도구
- 온라인
- Storage Gateway
- DataSync
- Transfer Family
- 오프라인
- Snow Family
AWS Storage Gateway
- 온프레미스 환경과 AWS 스토리지 간 애플리케이션을 원활하고 안전하게 통합하는 데 사용할 수 있는 서비스
- Amazon S3 File Gateway
- Amazon FSx File Gateway
- Tape Gateway
- Volume Gateway
Storage Gateway 아키텍쳐
여러 프로토콜을 통해 로컬 데이터에 연결할 수 있다.
- NFS 또는 SMB(파일)
- iSCSI(볼륨)
- iSCSI VTL(테이프)
AWS DataSync
- 온프레미스 -> AWS / AWS -> 온프레미스 둘 다 가능하다
- 서로 다른 AWS 계정끼리도 가능하다
AWS Snow Family 서비스 모델
- 원하는 지역으로 Snowball Edge 장비 배송
- 데이터 백업만 원하는 경우 이런 방식 많이 사용