* 만으로 1년도 더 된 AWS 아키텍처교육 시 들었던 내용입니다. 교육 듣고 정리한 것으로 update 된 내역이 있다면 답글부탁드려요!!!
AWS 1편 - Architecting in the Cloud
AWS 2편 - Security and Compliance
================================================================================================
Data Storage Scaling
================================================================================================
1) 데이터 스토리지 옵션
1. AWS 스토리지 옵션
- 블록스토리지 : 인스턴스 스토리지, Amazon EBS
- 객체 스토리지 : Amazon S3, Amazon Glacier, Amazon CloudFront
- 동기화 볼륨 : AWS Storage Gateway
- 관계형 데이터베이스 : Amazon RDS
- NoSQL 데이터베이스 : Amazon DynamoDB
- 인 메모리 캐시 : ElastiCache
- 콘텐츠 캐시 : Amazon CloudFront
2. 데이터 스토리지에 대한 모범 사례
- AWS의 다양한 스토리지 옵션에 대한 이해
- 액세스 성능, 내구성, 비용 및 인터페이스
- POSIX vs. 객체 스토리지(적합한 것 선택)
- 복수의 클라우드 스토리지 옵션 사용(스토리지 계층 구조)
- 수평적 vs. 수직적 확장
- 보다 창의적인 해결책 인 메모리 캐시와 같은 스토리지 대안을 활용
2) Amazon EBS(Elastic Block Storage)
1. Amazon EBS 사용의 이점
- POSIX 호환, 네트워크를 통해 장착
각 볼륨은 물리적 서버의 하드디스크와 유사, EC2 인스턴스에 복수 볼륨 장착, EC2 인스턴스 간 볼륨 공유 불가
OS 부팅 디바이스, 파일 시스템, 데이터베이스, 원시 블록 디바이스 시나리오에 이상적
- 중복 저장이 기본, 랜덤 IO에 최적화
하나의 AZ에서 복제, RAID 0 또는 리눅스 LVM을 사용하여 스트라이핑 가능
- 스냅샷
S3 저장, 지역 간 마이그레이션 가능, EBS 스냅샷으로부터 생성 가능하고 원하는 가용영역에 배치
AMI는 Amazon EBS 스냅샷으로부터 생성
- EBS 용량
스냅샷으로부터 더 큰 용량의 새로운 볼륨 생성 > 기존 볼륨 탈착 > 루트 볼륨에 선제적으로 용량을 할당
볼륨 당 1GB~1TB
- EBS 안티-패턴
임시스토리지(EC2 인스턴스 스토리지가 적합), 높은 수준의 내구성 스토리지(S3, 스냅샷 적합), 정적 웹콘텐츠(S3적합), 구조화된 데이터나 키-페어 저장(DynamoDB, Amazon RDS 적합)
** 블록 스토리지와 오브젝트 스토리지
- 블록스토리지는 인스턴스에 새로 붙은 하드웨어라고 생각하면 되고, 오브젝트 스토리지는 인스턴스와 독립적인 외장하드쯤으로 생각할 수 있다.
naleejang.tistory.com/92
3) 인스턴스 스토리지
1. Amazon 인스턴스 스토리지의 이점
- 추가요금 없음.제공 인스턴스 유형에 따라 볼륨 개수와 크기가 다름. 자동장착되지 않아 요청해야함. 휘발성(Volatile)
로컬리소스로 네트웍 영향을 받지 않음
- 고성능 SSD 옵션 (hi1.4xlarge EC2 인스턴스 유형, 로컬 1TB SSD 2개 인스턴스 제공, 랜덤 읽기에 최대 120,000IOPS,
랜덤 쓰기에 최대10000~85000IOPS 지원(4KB 블록)
- 대용량 스토리지(Hs1.8xlarge EC2인스턴스 유형, 로컬 2TB디스크 24개 인스턴스에 제공 = 48TiB)
- 안티-패턴
내구성있는 스토리지(Amazon EBS적합), 데이터베이스/구조화된 스토리지(Amazon RDS, DynamoDB적합), 공유 가능 스토리지(Amazon EBS 적합), 백업(Amazon EBS, Amazon EBS 스냅샷 적합)
4) Amazon S3와 Amazon CloudFront
- Amazon S3(Simple Storage Service)
객체 스토리지, 한 번 쓰고 여러 번 읽는 시나리오에 적합(Write Once, Read Many; WORM), 최종 일관정(Event Consistent), 99.999999999% 내구성, 무 제한 스토리지 용량, 사용한 만큼 지불, 확장 및 가용성이 뛰어남, 한 지역에 저장된 객체는 명시적으로 이동하지 않는 한 절대 해당 지역을 벗어나지 않음, 백업용, REST 및 SOAP인터페이스 제공)
1. Amazon S3와 스토리지 클래스
- 표준 : 99.99999999% 내구성과 99.99% 가용성 제공.
- 중복 완화 스토리지(Reduced Redundancy Storage; RRS) : 표준 스토리지보다 낮은 중복 수준으로 저장하여 비용 절감. 99.99%내구성과 99.99%가 용성 제공
- Glacier : 데이터 아카이빙에 적합, 조회를 위한 대기시간은 3~5시간, 아카이브의 99.999999999%내구성을 위해 디자인, 비용 효율적, 데이터 엑세스 에 대해서는 별도 과금
2. Amazon S3 네임스페이스
- 버킷, 객체 및 키 : 버킷명은 글로벌하게 유일함. 최대 100개까지 생성가능하며 버킷 별 용량은 무한대, 버킷 명 + 객체명(키)는 글로벌하게 유일)
3. Amazon S3 서버 측 암호화(Server Side Encryption; SSE)
- 저장 시 데이터 자동 암호화
- 내구성 : Amazon S3 키 스토리지
- 안전성 : 3방향 동시 액세스
- 자체 관리 : 키 스토어를 따로 관리 불필요
- 강력한 암호화 알고리즘 : AES-256
- 단순함 : PUT 헤더에 추가 정보만 명시
4. Amazon S3 액세스 제어
- ACL, IAM을 사용하여 액세스 제어 규칙 정의
- 정책을 버킷과 객체에 적용
- 버킷 정책 : JSON으로 작성, 기간 기반 액세서, 멀티 펙터 인증(MFA)검증, SSL 전송 여부, 액세스 허용 여부를 결정할 요청자 IP, 클라이언스 애플리케이 션 관한 정보 등의 키세트를 제공
5. 웹 사이트 호스팅과 Amazon S3
- 클라이언트 스크립트 기반 정적 사이트(동적 웹 사이트나 기타 웹 애플리케이션 호스팅을 위해서는 EC2 사용)
- S3 버킷을 웹사이트 호스팅용으로 구성하여 버킷에 콘텐츠 업로드
- Amazon Route 53과 결합하여 루트 도메인에서 웹 사이트 호스팅 지원
- 요청을 다른 객제에 리디렉션하는 라우팅 규칙 추가 가능(버킷 내 객체 삭제나 이름 변경 시 사용)
6. 멀티파트 업로드, 객체 버전 관리 및 서버 액세스
- 멀티파트 업로드
.100MB 이상 객체에 대해 멀티파트 업로드 권장
.최대 10000개 파트 지원(최대 5TB)
.독립적, 병렬적으로 업로드 가능함.
.처리량, N/W 문제 시 복구, 일시 중지 및 재개, 최종 객체 크기를 알기 전에 업로드 시작 가능
- Amazon S3 객체 버전 관리
. 객체 히스토리를 보존
. 버켓 수준에서의 객체 버전관리 명시적으로 활성화 해야함
. 모든 객체에 고유한 버전 ID가 부여되며 Amazon S3 버킷 소유자 만이 영구적으로 버전을 삭제 할 수 있음
. MFA(멀티 팩터 인증)Delete를 활성화 하여 버킷울 구성하면 두가지 형식의 인증 후 삭제 및 버전관리 상태 변경
. 액세스 로그를 생성하도록 버킷 구성 가능, 긱체를 Clacier로 이전하거나 만료시키는 라이프사이클 규칙 생성 및 할당 가능
7. Amazon CloudFornt 개요
- 전체 웹 사이트 또는 웹 애플리케이션 전송
- 소프트웨어 또는 기타 대형 파일 배포
- 미디어 파일 전송
- 미리 레코딩된 미디어 스트리밍
- 온 디맨드 미디어의 점진적 다운로드
- 라이브 이벤트 전송