스토리지 유형
- 블록 스토리지(아마존 EBS)
데이터를 블록 단위의 조각으로 나누어 저장
블록은 저장 위치에 대한 식별자를 가지고, 서버 요청에 따라 블록을 재구성하여 하나의 데이터로 전달
신속한 검색, 네트워크 상에 블록 스토리지를 서버에 연결하여 활용
대용량 트랜잭션, 대규모 데이터 저장이 요구되는 어플리케이션에 적합
- 아마존 EBS(Elastic Block Store)
EC2 인스턴스에 사용할 수 있는 블록 스토리지 볼륨 제공
볼륨을 같은 가용영역 내 인스턴스에 연결해서 사용
데이터를 빠르게 엑세스하고 장기적으로 지속해야 하는 경우 적합
SSD 기반 EBS 볼륨 (읽기/쓰기 작업을 자주 처리하는 트랜잭션 워크로드에 최적화)
-- 범용 SSD (가격과 성능의 균형, 대부분 워크로드에 적합),
-- 프로비저닝된 IOPS SSD (지연 시간이 짧거나 처리량이 많은 미션 크리티컬 워크로드에 적합)
HDD 기반 EBS 볼륨 (처리량, 대규모 스트리밍 워크로드에 최적화)
-- 처리량 최적화 HDD (자주 엑세스하는 처리량 집약적 워크로드에 적합한 저비용 HDD)
-- 콜드 HDD (자주 엑세스 하지 않는 워크로드에 적합한 가장 저렴한 HDD)
EBS 스냅샷: 지정 시간에 스냅샷을 생성하여 아마존 S3에 EBS 볼륨의 데이터를 백업
인스턴스 스토어: 임시 블록 스토리지로 호스트 컴퓨터에 물리적으로 연결된 디스크에 위치
- 파일 스토리지(아마존 EFS/FSx)
데이터가 계층적 파일 및 폴더 구조로 저장되는 데이터 저장소 유형, 공유 파일 시스템
- 아마존 EFS
여러 인스턴스에서 실행되는 어플리케이션이 동일한 공유 파일 시스템을 사용해야 하는 경우 활용하는 파일 스토리지
리전 내 여러 가용 영역에서 실행되는 EC2 인스턴스가 파일 시스템에 엑세스 하여 고통 데이터 소스를 공유
대규모 분석 작업 및 대량의 데이터 처리에 적합
- 객체 스토리지(아마존 S3)
구조화된 혹은 구조화되지 않은 대량의 데이터 저장을 위한 스토리지 유형
데이터와 메타 데이터를 하나의 객체 단위로 개별 저장소에 보관하여 키를 매핑하여 데이터 엑세스와 검색 용이
객체 저장 시 고유의 URL이 부여되어 Rest API를 통한 엑세스 가능
사용한 만큼 비용 지불 --> 비용 효율적, 뛰어난 확장성
아마존 S3 (Simple Storage Serviec)
- 업계 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지
- 클라우드 상에서 원하는 만큼의 다양한 유형의 데이터를 저장, 보호 및 관리할 수 있음
- 거의 모든 종류의 데이터 형식 저장 가능
- 높은 데이터 내구성 제공
- 저장 가능한 볼륨과 객체 수 제한이 없음
- 엑세스 제어 정책 및 데이터 암호화를 통한 보안성 강화
- 다양한 스토리지 클래스와 수명주기 정책을 지원하여 비용 관리
- 사용 사례: 데이터 분석용 스토어, 데이터 백업 및 아카이브, 미디어 저장 및 배포, 정적 웹사이트 호스팅
버킷: 아마존 S3 내 객체 저장을 위한 저장소
스토리지 클래스
- S3 스탠다드: 높은 처리 성능, 자주 엑세스하는 데이터에 적합
- S3 Glacier IR: 거의 엑세스 하지 않으면서 밀리초 단위의 검색이 필요한 장기 데이터 저장

S3 생명주기 정책
- S3에 저장된 데이터의 수명 주기 이동 및 삭제를 자동화하기 위해 사용
- 시간이 지나면서 중요도가 감소하면 비용이 적게 드는 스토리지 클래스에 저장
S3 intelligent-tiering
- 엑세스 패턴이 변경될 때 가장 비용 효율적인 엑세스 계층으로 데이터를 자동으로 이동하여 스토리지 비용 최적화
엑세스 제어
- 버킷 기본 설정은 비공개
- Make Pubilc 설정 및 엑세스 정책을 작성하여 데이터 엑세스 권한 부여
- Make Pubilc: 불특정 다수에게 엑세스 권한 부여, 특정 사례에서 제한적 사용
- 엑세스 정책: 리소스 기반 정책인 버킷 정책을 통해 구현, 조건에 부합하는 사용자에게 권한 부여
S3 Presigned URLs: 객체에 시간 제한 엑세스 권한 부여
정적 웹 사이트 호스팅
- 아마존 S3 사용 가능 (HTTP만 지원, 퍼블릭 읽기 엑세스와 버킷 정책 적용 필요)
버전 관리
- 버킷에 여러 버전의 객체를 보관하고 실수로 삭제되거나 덮어쓰기 된 객체 복원 지원
- 객체를 영구적으로 제거하지 않고 삭제하면 S3에서 삭제 마커 삽입 (이전 버전, 삭제한 버전 사용 가능)
객체 잠금
- 고정된 시간 동안 객체의 삭제, 덮어쓰기를 방지하는 기능
데이터 암호화
- 전송 중: 클라우드 안밖으로의 데이터 이동 중의 암호화 방식, 클라이언트측 암호화
- 유휴 시: S3에 데이터를 저장할 때 암호화 방식, 서버측 암호화
데이터 이동
- 네트워크 환경에서 대용량의 객체를 관리 가능한 파트로 분할하여 독립적으로 일관되게 업로드
> 온프레미스의 대량의 데이터를 오프라인 방식으로 클라우드로 마이그레이션
| RDB | NoSQL | |
| 데이터 | 행과 열 | 키-밸류, 다큐먼트 등 |
| 스키마 | 고정 | 동적(유연) |
| SQL | 지원 | 미지원 |
| 확장성 | 수직적 확장 (스케일 업) | 수평적 확장 (스케일 아웃) |
| 가용성 | 장애 조치 구성 필요 | 기본적으로 고가용성 지원 |
| 활용 | 명확한 스키마가 중요하고 데이터 구조 변경이 불필요한 경우 | 데이터 구조 변경이 필요한 경우 |
인메모리 DB: 메모리에 데이터를 저장하여 디스크 기반 DB보다 수십~수백배 이상 빠름
- 캐싱, 실시간 데이터 처리 및 분석 등에 적합
- 시스템 장애 시 데이터 유실 가능성 존재, 메모리 저장 공간 한정, 높은 비용
아마존 RDS(관계형 DB)
- 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 잇느 관리형 서비스
- 소모적인 관리 작업을 자동화하고 암호화, 고가용성 및 읽기 전용 복제본 구성 기능을 제공
- 운영 중 컴퓨팅 리소스 및 스토리지 용량 확장 지원
| Fail-over | Read Relicas | |
| 목적 | 가용성 | 확장성 |
| 배포 영역 | 단일 리전 내 2개의 가용 영역 | 하나의 AZ, 여러 AZ, 여러 리전 가능 |
| 복제 방식 | 동기식 복제 | 비동기식 복제 |
| 읽기/쓰기 | 기본 인스턴스만 읽기/스기 | 읽기 전용 |
| 장애 조치 | 장애 발생 시 자동 조치 | 필요 시 수동 승격 가능 |
Amazon Aurora
- 클라우드용으로 구축된 DBMS 호환 관계형 DB 엔진으로 엔터프라이즈 데이터 베이스의 성능과 가용선에 오픈 소스 데이터베이스의 간편성과 비용 효율성 결합
- 빠른 성능과 가용성, 안정성 강화
Amazon DynamoDB
- 완전 관리형 NoSQL DB 서비스
- 데이터 자동 복제를 통해 1개의 리전 내 3개의 가용 영역에 복제본을 구성하기 때문에 한 곳에서 장애가 나더라도 가용성을 유지
- 서버리스 서비스로 인프라를 배포하고 관리할 필요가 없음
- 기본 키로 파티션 키와 정렬 키를 조합하여 활용할 수 있음
- 파티션 키 값을 기준으로 저장할 파티션을 결정하여 데이터 분할하여 분산 저장
- 파티션 키 값이 같은 항목은 동일한 파티션에 저장되며 정렬 키를 기준으로 정렬됨
Amazon ElastiCache
- 클라우드에서 인 메모리 캐시를 배포, 운영, 조정하는데 사용되는 완전 관리형 서비스
- 서버리스 서비스로 변동이 심한 어플리케이션 수요에 맞춰 용량을 확장하고 자동 장애 조치를 지원하여 고가용성 제공
Data Migration Service
- AWS DMS는 운영중인 소스DB를 원하는 대상DB로 마이그레이션 하기 위한 서비스
- 지속적인 복제를 통한 동기화를 수행하여 가동시간 중단 없이 클라우드 환경으로 운영DB 마이그레이션 가능
- 이기종 DB인 경우 AWS Schema Conversion Tool을 사용하여 소스DB 스키마, 데이터 유형 및 코드 객체를 대상DB와 일치하도록 변환한 후 데이터 마이그레이션 수행
클라우드 네이티브: 클라우드 컴퓨팅 환경에서 현대적 어플리케이션을 구축, 배포 및 관리하는 접근 방식
- 아키텍처: 마이크로 서비스
- 컴퓨팅 기술: 컨테이너
- 조직/프로세스: DevOps
- 빌드 배포: CI/CD, 자동화 도구
모놀리식 아키텍처
- 비즈니스 로직이 한 어플리케이션 안에 포함되어 있는 전통적인 소프트웨어 아키텍처 구조
마이크로서비스 아키텍처
- MSA는 하나의 큰 어플리케이션을 여러 개의 작은 서비스 유닛으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처
- 서비스 마다 자체 DB를 가지고 경량의 API를 통해 통신
- 서비스간 영향 없이 각 서비스를 개발, 업데이트, 배포 및 확장 가능
컨테이너
- 운영체제에서 실행되는 프로세스를 격리하여 별도의 실행 환경을 제공하는 운영체제 수준의 가상화 기술
- 어플리케이션 코드, 런타임, 종속 항목, 구성을 하나의 객체로 패키징한 것
- 이동성, 확장성, 효율적 배포
| 가상 머신 | 컨테이너 | |
| 시작 시간 | 수분 | 수초 |
| 이미지 크기 | GB 단위 | MB 단위 |
| 플랫폼 | 하이퍼바이저 | 도커 |
| Huest OS | 리눅스, 윈도우 등 다양 | Host OS 활용 |
쿠버네티스
- 벤더나 플랫폼에 종속되지 않고 오픈소스 생태계의 광범위한 제품과 결합하여 활용될 수 있어 널리 활용 중
- 컨트롤 플레인: 클러스터와 워커 노드 내 Pod를 예약, 상태 감시 및 제어, 관리하는 역할
- 데이터 플레인: 컨테이너화된 어플리케이션 구성 요소인 Pod를 호스팅하는 워커 노드 생성 및 관리
- 고객이 직접 구축 관리하기 어려운 컨트롤 플레인과 데이터 플레인을 설치 관리하는데 최적화된 환경 제공
- 퍼블릭 클라우드 내 다양한 연계 서비스와 유기적으로 통합되어 있어 보다 편리한 운영 환경을 제공
'[KT AIVLE SCHOOL]' 카테고리의 다른 글
| 클라우드 서비스(5) (0) | 2024.12.08 |
|---|---|
| 클라우드 서비스(4) (3) | 2024.12.06 |
| 클라우드 서비스(2) (2) | 2024.12.03 |
| 클라우드 서비스(1) (1) | 2024.12.02 |
| IT 인프라(4) (0) | 2024.11.28 |