RDS
Relational Database Service
클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영, 확장 할 수 있도록 도와주는 웹서비스
=> Amazon Aurora, MySQL, ORACLE, PostgreSQL, MariaDB, SQLServer
- RDS의 장점
- 관리의 용이성
- 뛰어난 확장성
- 높은 가용성과 내구성
- 빠른 속도
- 안전한 보안
- 저렴한 비용
DynamoDB
규모에 상관없이 빠르고 유연한 완전관리형 NoSQL 데이터베이스 서비스
NoSQL : not SQL, not only SQL등으로 해석 가능하다.
| RDS | DynamoDB |
|---|
| 데이터 접근 | SQL이 주로 사용되고 다양한 툴들이 사용 | AWS 콘솔, AWS CLI 등 |
| 성능 | 스토리지(데잍터 저장) 최적화 | 컴퓨팅(데이터 처리) 최적화 |
| 스케일링 | 스케일 업 | 스케일 아웃(수평적 증설) |
| 쿼리 | 확장성은 별로지만 유연한 쿼리. 데이터웨어하우스를 생성할 때 사용된다. | 확장성은 좋지만 RDS보다 효율적이지 못한 쿼리 |
| 쿼리비용 | 상대적으로 높음 | 상대적으로 저렴 |
ElastiCache
인 메모리 데이터 스토어 또는 캐시를 손쉽게 배포, 운영 및 확장할 수 있게 해주는 웹 서비스
메모리에 데이터가 저장되서 서버가 중단되면 데이터가 사라진다.
메모리 용량을 초과해서 데이터가 저장될 수 없다.
=> Redis, Memcached
S3
Simple Storage Service
데이터를 안정적으로 저장하고 검색할 수 있는 인터넷 스토리지 서비스
-
S3 특징
- 사용자 폭증에 대한 추가 작업 불필요
- 저장 가능한 파일 수 무제한
- 1byte ~ 5TB의 데이터 저장 가능
- 필요시 파일에 접근 못하도록 보안 가능
- 데이터를 HA 구성하여 손실 시 자동 복원
- 버전 관리 기능도 있어 사용자의 실수도 복원 가능
-
S3 주요 용어
- Bucket : 객체에 대한 컨테이너. S3의 최상위 디렉토리.
- Object : 파일. Bucket에 저장 가능.
- MetaData : 파일을 구분하는 데이터. Key, Value 쌍으로 존재한다.
-
StorageClass(S3의 종류)
- Standard - 접근이 빈번하게 사용할 때
- Standard-IA(Infrequent Access) - 간혈적으로 접근하여 사용할 때
- Amazon Glacier - 데이터를 보관하는 것에 의의를 둔다.(접근을 잘 안할 경우)
-
S3의 장점
- 높은 내구도
- 저렴한 비용
- 높은 객체 가용성
- 높은 보안성
- 이벤트(데이터 저장, 접근 시) 알림 전송
-
S3 사용자들의 예시
- PC 포맷 - 데이터 백업저장 용도
- 개인 프로젝트 사용 - 이미지 업로드 기능과 함께 저장할 저장소로 사용
- 웹서버를 AWS로 옮겨 사용 - 웹사이트의 자료를 S3에서 바로 다운받게 사용자들에게 제공
Storage
컴퓨터, 서버에 데이터를 저장하는 저장소 역할을 수행하는 부품
-
저장장치 유형
플로피 디스크, CD, USB, ...
-
기업 스토리지 유형
TAPE(가장 오래된 스토리지), HDD(HardDiskDrive, TAPE보다 전송 속도가 빠름), SSD(Solid State Driver, 속도가 빠르지만 비쌈), NVMe(노트북에 주로 사용, NVMe 서버 전용 스토리지, 고성능)
-
연결방식에 따른 저장장치 종류
- DAS(Direct Attached Storage)
- 서버와 저장장치를 직접 연결하여 사용하는 방식
- 속도가 가장 빠름, 다른 사용자에게 공유하기 어려움, 연결 개수의 한계가 있음
- NAS(Network Attached Storage)
- 서버와 저장 장치를 이더넷 등 LAN 방식의 네트워크에 연결된 방식
- 접속 트래픽이 증가할 경우 성능이 낮아짐
- SAN(Storage Area Network)
- 일반적으로 사용하는 LAN 대신에 광케이블(FC Cable)을 사용하는 고속 네트워크 시스템
- Switch, SAN
DB
DataBase
DB 애플리케이션 / Data 그 자체
DBMS
DataBase Management System
DB를 관리하고 운영하는 소프트웨어
- DBMS 분류
- 계층형 Hierarchical
- 망형 Network
- 프로그래머가 모든 구조에 대한 이해가 있어야 한다.
- 관계형 Relational
- 가장 많이 사용한다. 테이블 단위로 구성된다. 행과 열 단위로 테이블이 구성된다.