aws 에서 제공하는 db 에는 종류가 한개만 있는게 아니다. 데이터 안정성, 서치 기능, 가격, 저장되는 데이터 종류, 데이터의 양 등등에 따라 여러가지 db 를 선택할 수 있고 이에 따라 가격과 활용 방법도 천차만별이다. 오늘은 그 db 들의 종류를 알아보도록 하자
우선 DB 의 종류에 따라 이렇게 7가지 카테고리로 나눌 수 있다. 각각의 DB 에 따라 세부적으로 알아야하는 내용 전에 대분류를 보고 가도록 하자. (자격증 시험용이니 일반적인 분류와는약간 다를 수도 있다)
1. RDBMS = RDS, Aurora (SQL)
RDBMS 는 SQL 을 할 때 쓰는 종류의 DB 다.
1.1 RDS
-PostgreSQL, MySQL, Oracle, SQL server, Maria DB 등 관계형 db 를 쉽게 운영할 수 있게 지원하는 서비스다.
장점
- 크기 조정이 알아서 되기 때문에 비용이 효율적임!
- 가상머신 위에서 작동하는 구조임!
- 관계형 db 를 간편하게 관리할 수 있음! db 설정, 백업 등 관리가 자동화되기 때문임
단점
- 일부 고급 설정이나 튜닝이 필요한 경우 직접적인 서버 접근이 제한된다
- 기본적으로 Private IP 를 부여하여 외부에서는 접근이 안되는 구조고
- 따라서 EC2타입, 보안 그룹 등을 지정해 주어야 한다
1.2. Aurora
Postgre, MySQL 에서 호환이 가능하다 .특이한 점은 컴퓨팅과 스토리지가 분리된 형태의 DB 라는 점이다 (그래서 가용성이 높다) 스토리지에 문제가 생기면 자동으로 복구되고, 오토 스케일링이 있어서 용량도 자동으로 늘어난다
*Aurora db 의 종류:
Aurora Serverless: 예측이 어려운 워크로드에 대해서 사용하기 좋음
Aurora Multimaster: DB 인스턴스 여러개가 write 를 할 때 사용하기 좋음
Aurora Global: region 마다 따로따로 Read instance 를 지원한다. (복제되는 원리인데 1초도 안걸린다고 ..)
Aurora Machine Learning: ML 기능을 db 안에서 할 수 있는 것 같음
Aurora Database Cloneing: D
- RDS 와 보안, 모니터링 기능은 동일함
- 하지만 Aurora 는 조금 더 유지보수할게 적으며, 유용성도 좋고, flexable 한 db 라고 생각하면 된다!
2. NoSQL = Dynamo DB, ElastiCache, Neptune , DocumentDB(MongoDB)
NoSQL 타입의 저장소들이다
2.1. DynamoDB
Nosql 데이터베이스, 확장성과 가용성 성능이 좋다. 서버리
장점
- 트래픽 증가에 따라 자동 확장, 축소가 가능함
- 따라서 성능과 비용이 예측 가능하다/ 일관된 응답 시간을 제공한다
- 리젼에 따라서 DB 를 복제함
단점
- 비싸다
사용사례
- 처리량이 높은 실시간에 사용되면 좋음
2.2 ElasticCache
ElastiCache는 분산 캐싱 및 인메모리 데이터 스토어를 위한 서비스다. 굉장히 빠른 속도로 1밀리초 이내에 데이터를 읽을 수 있다. 이건 DB 라기 보다는 데이터베이스의 부하를 줄이는?? 역할을 한다고 생각하면 된다. 이걸 이용해서 RDS 를 읽어내려면 애플리케이션 코드가 ElasticCache 를 활용하도록 해야함
장점
- 메모리 내 데이터 저장으로 빠른 응답 속도 제공
- 클러스터를 추가하여 수평적으로 확장 가능.
단점
- SQL 사용 불가 (DB 가 아니니깐요...)
- 애플리케이션 코드 바꿔줘야함
2.3. Document DB
DocumentDB는 MongoDB 호환성을 가진 문서 지향 데이터베이스 서비스. MongDB 에 있는 데이터를 쉽게 이전할 수 있다는데 한번도 이걸 쓰는건 못봤다...
3. Object Store
3.1 S3
커다란 오브젝트를 저장할때 쓴다. DB 보단 저장소에 좀 더 가깝달까. 성능이 좋고 확장성이 좋아서 AWS 서비스에서 아주 중요한 역할을 한다.
S3 에 대해서는 말해야 할 내용이 많으니 따로 게시글을 작성하겠다
4. Data Warehouse = Redshift, Athena
데이터 분석가라면 아마 웨어하우스인 이들에 가장 능숙할거다!
4.1. Redshift
- 설명: Redshift는 대용량 데이터 웨어하우스를 위한 관리형 컬럼 기반 데이터베이스입니다.
- 장점:
- 빠른 쿼리 성능: 컬럼 기반 저장 및 압축 기술을 사용하여 높은 성능 제공.
- 확장성: 클러스터 확장 및 축소가 용이.
- 단점:
- 소규모 트랜잭션 처리에는 적합하지 않을 수 있음.
4.2. Athena
서버리스 쿼리 서비스. S3 에 저장된걸 불러오거나 할 때 씀. 경험적으로 데이터 분석가는 이거 쓸 일이 제일 많았다 따라서. 별도의 서버 설정이나 데이터베이스 관리가 필요하지 않음
장점
- 서버리스 아키텍처: 별도의 인프라 구성이 필요 없이 즉시 쿼리 실행 가능.
- 다양한 데이터 형식 지원: JSON, CSV, Parquet 등 다양한 형식의 데이터 지원.
- 쿼리 비용: 실제로 실행된 쿼리에 대해서만 비용 부과
단점
- 쿼리 성능: 대규모 및 복잡한 쿼리의 경우 성능이 다른 관계형 데이터베이스보다 느릴 수 있음.
- 데이터 형식 변환: S3에 저장된 데이터 형식이 변환되어야 할 수 있음
사용 사례:
- 대용량 로그 데이터, 웹 애플리케이션 로그, 트랜잭션 로그 등과 같은 S3에 저장된 비정형 데이터를 분석하고 싶을 때.
- 데이터 웨어하우스를 구축하지 않고도 필요에 따라 데이터에 쿼리를 실행하고 싶을 때.
* Athena 와 Redshift 의 차이: 아테나는 서버리스고 따라서 관리 필요 X 레드시프트는 관리 필요함 서버리스이기 때문에 아테나는 속도가 좀 느림. 다만 비용면에서는 데이터 양이 적다면 유리할 수 있다.
5. Search
5.1. OpenSearch(JSON)
검색 타입의 DB 에는 텍스트를 입력하거나 검색하기 좋다. 비정형 데이터를 저장할때 쓴다. OpenSearch는 검색, 분석 및 시각화를 위한 오픈 소스 검색 엔진 및 데이터 스토어다.
장점:
- 오픈 소스: 자유롭게 사용, 수정, 배포 가능
- 검색 및 분석: 다양한 데이터 유형에 대한 풍부한 검색 및 분석 기능 제공
- 확장성: 대용량 데이터 및 분산 아키텍처에 적합한 확장성
단점:
- 자체 관리: Amazon Elasticsearch Service와 같이 관리 서비스를 사용할 때와 비교하여 자체적으로 관리해야 하는 부담이 있을 수 있음.
사용 사례:
- 검색 엔진: 웹 사이트, 애플리케이션 등에서 텍스트 기반의 검색이 필요한 경우.
- 로그 및 이벤트 데이터 분석: 대규모 로그 및 이벤트 데이터를 수집하고 분석하는 경우.
- 실시간 데이터 분석: 실시간으로 변하는 데이터를 분석하고 시각화하는 경우.
6. Graph
6.1. Amazon Neptune
그래프 타음의 DB는 데이터 간의 관계를 보여준다 . 복잡한 관계를 쉽게 모델링 할 수 있다
장점
- 그래프 데이터 모델 지원으로 복잡한 관계를 쉽게 표현 가능
- 분산 환경에서의 확장성 제공.
단점
- 일부 특수한 쿼리에 대한 성능 이슈가 발생할 수 있음
이용 사례
- 소셜 네트워크 분석: 친구 관계, 연결, 추천 등의 복잡한 소셜 네트워크 데이터를 저장하고 분석하는 데 사용
7. Time series
7.1. Amazon Timestream
시계열 데이터를 저장하기에 특화된 형태의 DB
장점
- 자동으로 데이터 유효기간에 따라 데이터를 관리해준다.초단위, 밀리초단위 데이터 저장이 필요할때 선택해서 쓸 수 있는 DB 이다.
단점
- 범용적인 상황에서는 쓰이지 않음
사용 사례
- IoT 센서 데이터, 로그 데이터, 성능 모니터링 데이터와 같은 대규모 시계열 데이터를 처리해야 하는 경우나 데이터의 유효 기간을 자동으로 관리하고 검색해야 하는 시나리오에 활용할 수 있다
'데이터 엔지니어링 > AWS' 카테고리의 다른 글
[aws] #2. EC2 의 보안 (1) | 2023.10.03 |
---|---|
[aws] #2. EC2 의 인스턴스 유형들 (0) | 2023.10.03 |
[aws] #2. EC2 처음으로 만들어보기 (1) | 2023.10.03 |
[aws] #1. AWS 기본기능 - IAM (0) | 2023.09.13 |