KT AIVLE(KT 에이블스쿨) 5기 DX트랙_클라우드 서비스_(3)
스토리지 서비스 ( EBS, EFS, S3 )
클라우드 스토리지 유형
1. 블록 스토리지 ( Amazon EBS )
2. 파일 스토리지 ( Amazon EFS/FSx )
3. 객체 스토리지 ( Amazon S3 )
1. 블록 스토리지
- 데이터를 블록 단위의 조각으로 나누어 저장
- 각 블록은 저장된 위치에 대한 고유한 식별자(주소)를 가지고 있어
서버에서 파일을 요청하면 블록들을 재구성해 하나의 데이터로 전달
- 균일하게 Block 단위로 분산하여 저장하기 때문에
데이터 입출력(IOPS)에 대한 성능이 좋음 (신속한 검색)
- 네트워크상에 있는 블록 스토리지를 서버에 연결하여 활용
- 대용량 트랜잭션, 대규모 데이터 저장이 요구되는 애플리케이션 환경에 적합
[ Amazon EBS ]
: EC2 인스턴스에 사용할 수 있는 블록 스토리지 볼륨을 제공
=> 각 EBS 볼륨은 동일한 가용 영역(AZ)에 있는 하나의 인스턴스에 연결하여 사용
=> 사용이 쉽고 확장 가능한 고성능 블록 스토리지 서비스
[ Amazon EBS 볼륨 유형 ]
1. Solid State Drive(SSD) 볼륨
: SSD(Solid-State Drive)는 주요 성능 특성이 IOPS이며 작은 I/O 크기의 읽기/쓰기 작업을 자주 처리하는 트랜잭션 워크로드에 최적화되어 있음
범용 SSD | 프로비저닝된 IOPS SSD | |
설명 | - 가격과 성능 간의 균형을 제공하며 대부분의 워크로드에 적합 - 최대 IOPS 16,000 |
- 지연 시간이 짧거나 처리량이 많은 미션 크리티컬 워크로드에 적합 - 최대 IOPS 16,000~ 256,000 |
사용사례 | - 트랜잭션 워크로드 - 중간규모의 단일 인스턴스 DB - 개발 및 테스트 환경 |
- 지속적인 높은 IOPS 성능이 필요할 경우 - I/O 집약적인 DB 워크로드 |
2. 하드 디스크 드라이브(HDD) 볼륨
: HDD(Hard Disk Drive)는 주요 성능 특성이 처리량(Throughput)이며 대규모 스트리밍 워크로드에 최적화되어 있음
처리량 최적화 HDD | 콜드 HDD | |
설명 | - 자주 액세스하는 처리량 집약적 워크로드에 적합한 저비용 HDD - 최대 IOPS 500 |
- 자주 액세스하지 않는 워크로드에 적합한 가장 저렴한 HDD - 최대 IOPS 250 |
사용사례 | - 빅데이터 - 데이터 웨어하우스, 로그 처리 |
- 자주 액세스하지 않는 데이터를 위한 처리량 중심의 스토리지 - 스토리지 비용이 최대한 낮아야 할 경우 |
[ EBS 스냅샷 ]
- 지정 시간에 스냅샷을 생성하여 Amazon S3에 EBS 볼륨의 데이터를 백업할 수 있음
- 증분식(Incremental) 백업 방식
- 최초 스냅샷 생성 이후 변경 혹은 추가된 디바이스의 블록만이 저장되기 때문에 스냅샷을 만드는 데 필요한 시간이 최소화되며 스토리지 비용이 절약됨
[ 인스턴스 스토어 ]
- 임시 블록 스토리지로 호스트 컴퓨터에 물리적으로 연결된 디스크에 위치(지연시간 ↓, IOPS ↑, 처리량 ↑)
- 인스턴스가 중단되거나 종료되면 데이터가 손실되므로 버퍼, 캐시 등 자주 변경되는 임시정보를 저장하는 스토리지로 활용하는 것이 바람직함
2. 파일 스토리지
- 데이터가 계층적 파일 및 폴더 구조로 저장되는 데이터 저장소 유형
- 여러 사용자나 애플리케이션이 접근하여 파일을 공유하기 위한 공유 파일 시스템으로 활용
[ Amazon EFS ]
:여러 인스터스에서 실행되는 애플리케이션이 동일한 공유 파일 시스템을 사용해야 하는 경우에 활용하는 파일 스토리지 서비스
- 인스턴스가 파일 시스템에 접근 시 탑재 대상(Mount Target)을 통해 액세스
- 탑재 대상은 각 가용영역 단위로 1개가 제공 (가용영역 내 서브넷이 2개인 경우 하나에만 생성됨)
- 탑재 대상에 보안그룹을 설정하여 트래픽을 제어할 수 있음
3. 객체 스토리지
: 구조화된 혹은 구조화되지 않은 대량의 데이터 저장을 위한 스토리지 유형
- 데이터와 메타 데이터를 하나의 객체 단위로 개별 저장소에 보관하며 고유 식별자(키)를 매핑하여
데이터 액세스와 검색이 용이
- 객체 저장 시 고유의 URL이 부여되어 Rest API를 통한 액세스 가능
- 사용한 만큼만 비용을 지불하면 되기 때문에 비용 효율적이며 뛰어난 확장성을 보유
[ Amazon S3 ]
- 업계 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스
- 클라우드 상에서 원하는 만큼의 다양한 유형의 데이터를 저장, 보호 및 관리할 수 있음
특징
- 거의 모든 종류의 데이터를 원하는 형식으로 저장 가능
- 99.99999999%의 데이터 내구성을 제공하도록 설계
- 저장할 수 있는 데이터 전체 볼륨과 객체 수 제한이 없음 (무한대의 확장성)
- 액세스 제어 정책 및 데이터 암호화를 통한 보안성 강화
- 다양한 스토리지 클래스와 수명주기 정책을 지원하여 비용을 관리
사용 사례
1. 데이터 분석용 스토어
- 금융 거래 분석, 클릭스트림 분석 등 대규모 데이터 분석을 위한 데이터 레이크로 사용
2. 데이터 백업 및 아카이브
- 뛰어난 내구성 및 확장성을 갖춘 백업 및 아카이브 도구
- 수명주기 정책을 통한 데이터 이전 및 비용 관리
3. 미디어 저장 및 배포
- 정적 웹 콘텐츠 또는 미디어 저장 및 배포
- 각 객체가 고유한 HTTP URL에 연결되므로 S3에서 직접 전송할 수 있음
4. 정적 웹사이트 호스팅
- 정적 웹 사이트를 호스팅
- 정적 HTML, CSS 파일, JavaScript 형식
[ 데이터 백업 및 아카이브 ]
- S3는 뛰어난 내구성 및 확장성을 갖춰 클라우드 혹은 온프레미스 데이터를 백업하고 아카이브하기 위한 도구로도 매우 유용
- 다양한 스토리지 클래스와 수명주기 정책을 제공하여 장기 보존이 필요한 데이터를 비용 효과적인 방법으로 저장 및 관리할 수 있음
[ 수명주기 정책 ]
- S3에 저장된 데이터의 수명 주기 이동 및 삭제(전환 및 만료작업)를 자동화하기 위해 사용 (버킷 별로 혹은 객체별로 설정 가능)
- 시간이 지나면서 데이터의 중요도가 감소하면 수명주기 정책을 통해 비용을 더 적게 지불함으로써 전체 비용을 줄일 수 있음
[ 액세스 제어 ]
1. Default Setting
- S3에서 버킷 생성 시 기본 설정은 비공개임
- 버킷을 생성한 특정 AWS 계정의 리소스 소유자(Owner)만 해당 버킷에 액세스할 수 있음
- 리소스 소유자는 Make Public 설정 및 액세스 정책(Access Policy)을 작성하여 다른 사용자에게 데이터 액세스 권한을 부여할 수 있음
2. Make Public
- Make Public 설정은 불특정 다수에게 액세스 권한을 부여하기 위해서 사용
- S3에 정적 웹 사이트 호스팅, 미디어 스트리밍 서비스 등의 특정 사례에서만 제한적으로 활용
3. Access Policy
- 사용자별로 권한을 설정하고자 할 경우 액세스 정책(Access policy)를 설정
- 액세스 정책은 리소스(버킷 및 객체) 기반 정책인 버킷 정책을 통해 구현
4. S3 Presigned URLs
- Presigned URLs을 사용하여 버킷 정책을 업데이트하지 않고도 Amazon S3의 객체에 시간 제한 액세스 권한 부여
- URL이 생성될 때 지정된 만료기간 동안 유효하며 콘솔을 통해서는 1분~12시간, AWS CLI 또는 SDK를 사용하는 경우
최대 7일로 설정 가능
[ 정적 웹 사이트 호스팅 ]
- 도메인은 웹 브라우저를 통해 특정 사이트에 접속할 때 IP 주소를 대신하여 사용하는 주소로 한눈에 파악하기 힘든 IP 주소를 대신함
- DNS는 도메인 이름을 IP 주소로 변환하도록 구축된 글로벌 데이터베이스 시스템임
- DNS을 통해 도메인을 IP 주소로 변환한 후 해당 IP 주소에 해당하는 웹서버로 요청을 전달하여 클라이언트와 서버가 통신을 수행
- Amazon S3를 사용하여 정적 웹 사이트를 호스팅할 수 있음 (정적 HTML 파일, 이미지, 동영상, JavaScript 형식) – HTTP만 지원, 퍼블릭 읽기 액세스와 버킷 정책 적용 필요
- 버킷 URL을 통해서도 접근 가능하지만 DNS를 통해 특정 도메인을 사용하여 호스팅 할 수도 있음 (Route53은 AWS에서 제공하는 DNS 서비스임)
[ 미디어 저장 및 배포 ]
CDN 서비스
: 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술
- 콘텐츠를 담고 있는 서버(Origin)들은 모든 사용자의 요청에 일일이 응답해야 하고 트래픽이 과도하게 증가하는 경우 성능 저하와 장애 발생 확률이 커짐
- 각 지역 엣지 로케이션에 캐시 서버를 분산 배치해 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버에서 콘텐츠를 전달
활용사례
1. Caching 서비스
- 웹 서버의 이미지 등을 캐싱하여 웹 서버에 부하를 줄이고 컨텐츠를 클라이언트에 빠르게 전송
ex) 쇼핑몰, 커뮤니티
2. Download 서비스
- 대용량의 컨텐츠나 패치 등으로 많은 클라이언트에 한번에 컨텐츠를 전송해야 할 경우
ex) 게임 다운로드, 업데이트, 백신 패치
3. Streaming 서비스
- 영상 컨텐츠를 클라이언트에게 스트리밍할 경우
ex) 동영상, 인터넷 강의 등
CDN의 접속 원리
1. 사용자가 요청하면 지연 시간이 가장 짧은 엣지 로케이션으로 요청을 라우팅하여 응답
2. 캐시된 콘텐츠가 없는 경우에만 오리진(S3 버킷) 또는 웹 서버에서 콘텐츠를 검색
3. 오리진 콘텐츠가 캐싱을 위해 CloudFront 엣지 로케이션으로 전송됨
4. 데이터가 최종 사용자에게 전송됨
[ 버전 관리 ]
S3 Versioning
- 버킷에 여러 버전의 객체를 보관하고 실수로 삭제되거나 덮어쓰기 된 객체 복원 지원
- 버전 관리를 사용 설정하면 저장되는 객체에 대해 고유한 버전 ID를 자동으로 생성
- 객체를 영구적으로 제거하지 않고 삭제를 진행한다면 S3에서는 삭제 마커를 삽입함
(만약 삭제 마커를 제거하면 삭제가 취소되면서 삭제한 버전으로 되돌릴 수 있음)
[ 객체 잠금 ]
S3 Object Lock
- 객체 잠금은 고정된 시간 동안 또는 무기한으로 객체의 삭제 또는 덮어쓰기를 방지하기 위한 기능
- 데이터를 작성한 후 변경하거나 삭제하지 않아야 하는 시나리오에서 활용
- 규제 요구 사항(ex. 비즈니스에 금융 또는 의료 부문의 규정 준수 요구 사항이 있는 경우)을 충족해야 하거나
향후 감사 목적으로 활용하고자 할 경우에 적합
[ 데이터 암호화 ]
전송 중 (In-Transit)
- 전송 중 암호화는 클라우드 안밖으로의 데이터 이동 중의 암호화 방식임
- SSL/TLS 암호화나 클라이언트측 암호화 방식 활용
유휴 시 (At Rest)
- 유휴 시 암호화는 S3에 데이터 저장 시 암호화하는 방식임
- 서버측 암호화 방식은 S3 관리형 키, AWS KMS 키, 고객 제공 키 3가지 방식을 지원
[ 데이터 이동 ]
- 신뢰할 수 없는 네트워크 환경에서 대용량의 객체(100MB이상)를 관리 가능한 파트로 분할하여 독립적으로 일관되게 업로드할 수 있음
- 병렬 처리를 활용하여 전반적인 업로드 속도를 향상시킬 수 있으며 부분 업로드가 실패하면 다른 부분에 영향을 주지 않고 다시 시작할 수 있음
- 객체 파트가 모두 성공적으로 업로드되면 이를 다시 재조합해서 객체를 생성하여 S3에 저장
[ 데이터 복제 ]
Cross-Region Replication
- 객체 복제(Object Replication) 기능을 사용하여 동일 리전(Same-Region) 내 가용영역 간 혹은 교차 리전간 (Cross-Region) 라이브 복제를 수행할 수 있음
- 객체 복제는 규정 준수 요구사항 충족, 사용자 대기시간 최소화, 백업 및 재해 복구 (DR) 등의 다양한 목적으로 활용됨
[ 이벤트 알림 ]
S3 Event Notifications
- S3 이벤트 알림 기능은 새로운 객체가 버킷에 추가되거나 기존 객체의 덮어쓰기 등의 이벤트 발생 시 다른 서비스에 이벤트 알림을 전송하는 기능임
- 이를 통해 버킷에 저장된 객체를 처리하는 애플리케이션 기능을 손쉽게 구현할 수 있고 필요 시 사용자에게 이메일이나 알림을 제공할 수 있음
[ AWS Outposts ]
: 일관된 하이브리드 환경을 위해 데이터센터, 코로케이션 공간 또는 온프레미스 시설에 동일한 AWS 인프라, AWS 서비스, API 및 도구를 제공하는 완전 관리형 서비스
데이터베이 서비스 ( RDS, DynamoDB, ElastiCache )
관계형(RDB) | 비관계형(NoSQL) | |
데이터 | 행과 열 | Key-value, document, columnar, graph |
스키마 | 고정 | 동적(유연) |
SQL | 지원 | 미지원 |
확장성 | 수직적 확장(Scale up) | 수평적 확장(Scale out) |
가용성 | 장애 조치 구성 필요 | 기본적으로 고가용성 지원 |
활용 | - 명확한 스키마가 중요하고 데이터 구조 변경이 불필요할 경우 - 데이터 변경이 잦은 경우 |
- 데이터 구조 변경이 필요한 경우 - 대규모 데이터의 읽기/쓰기 성능이 필요한 경우 |
[ AWS Database Services ]
1. 관계형 DB ( Amazon RDS )
: 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있는 관리형 서비스
2. 비관계형 DB ( Amazon DynamoDB )
: Key-Value와 document 데이터 모델을 지원하는 NoSQL DB로, 페타바이트 규모의 스토리지를 제공하고 초당 수천만 건의 읽기 및 쓰기 요청을 지원
3. 인메모리 DB ( Amazon ElastiCache )
: 클라우드에서 인 메모리 캐시를 배포, 운영, 조정하는데 사용되는 완전 관리형 서비스
[ Data Migration Service ]
- AWS DMS는 운영중인 소스DB를 원하는 대상DB로 마이그레이션하기 위한 서비스 지속적인 복제를 통한 동기화를 수행하여 가동시간 중단없이 클라우드 환경으로 운영 DB 마이그레이션이 가능
- 이기종 DB인 경우 AWS Schema Conversion Tool을 사용하여 소스DB 스키마, 데이터 유형 및 코드 객체를 대상DB와 일치하도록 변환하고, DMS를 사용하여 소스DB에서 대상 DB로 데이터 마이그레이션 수행