1. 강의 내용
학습 범위
- 20. 서버리스 솔루션 아키텍처 토론
- 21. AWS의 데이터베이스
- 22. 데이터 & 분석
- 23. 머신 러닝
- 24. AWS 모니터링 및 감사: CloudWatch, CloudTrail 및 Config
- 25. Identity and Access Management (IAM) - 고급
2. 강의 정리
1) AWS 데이터베이스 선택 시 고려사항
: AWS에서는 다양한 데이터베이스 옵션을 제공한다.
그 중에 애플리케이션 아키텍처에 맞는 데이터베이스를 선택하기 위해서는 여러 사항들을 고려해야 한다.
1. 고려사항
- 워크로드 유형
- 읽기 위주인가요? 쓰기 위주인가요? 둘 다 요구되나요?
- 처리량
- 얼마나 많은 트래픽을 처리해야 하나요?
- 트래픽이 변동하거나 자동 확장이 필요하나요??
- 데이터 용량
- 얼마나 많은 데이터를 저장해야 하나요?
- 데이터가 지속적으로 삽입 되나요?
- 개별 데이터의 크기는 어느 정도인가요?
- 데이터 모델
- 구조화 된 데이터인가요? 반구조화 된 데이터인가요?
- 데이터를 조회할 때, Join이 필요한가요?
- 스키마
- 엄격한 스키마가 필요한가요? 유연한 스키마가 필요한가야?
- 보고서(Reporting), 검색(Search) 기능이 필요한가요?
- 비용
- 오픈소스를 사용할 계획인가요?
- 클라우드 네이티브(Aurora) DB로 전환할 계획이 있나요?
2. 데이터베이스 유형
유형 | 대표 서비스 | 특징 |
RDBMS (SQL/OLTP) | RDS, Aurora | Join에 강력, 관계형 데이터 처리 |
NoSQL | DynamoDB, ElastiCache, Neptune, 등 | Join/SQL 불가, JSON 기반, 유연한 데이터 모델 |
객체 스토리지 | S3, Glacier | 대용량 객체 저장, 백업/아카이브 |
데이터 웨어하우스 (OLAP) | Redshift, Athena, EMR | SQL 분석, BI 목적 |
검색 | OpenSearch | 비구조화 데이터, 텍스트 검색 |
그래프 | Neptune | 관계 중심 데이터 |
원장(Ledger) | Amazon QLDB | 변경 불가 기록 |
시계열 | Amazon Timestream | 시계열 데이터 처리 |
2) AWS 데이터베이스 종류
서비스 | 지원 엔진 | 주요 특징 | 사용 사례 |
RDS | MySQL, MariaDB, PostgreSQL, Oracle, SQL Server |
인스턴스 크기 및 EBS 볼륨 설정, Read Replicas, 다중 AZ, 자동 백업 |
전통적인 관계형 DB 서비스 (ERP, CRM 등) |
Aurora | PostgreSQL, MySQL | S3 기반 분산 스토리지(자동 복구 및 확장) 스토리지와 컴퓨팅 분리, Aurora Serverless, Aurora Global 옵션 |
고성능 웹 앱, 유연성 필요한 관계형 DB |
ElastiCache | Redis, Memcached | In-Memory DB | 웹사이트 세션 데이터 저장, DB 쿼리 캐싱 |
DynamoDB | 서버리스 NoSQL | 온디맨드/프로비저닝 모드, DynamoDB Streams/Kinesis 지원 |
서버리스 애플리케이션, 실시간 데이터 처리 |
S3 | 객체 스토리지 (Key-Value) | 다양한 스토리지 티어, 이벤트 알림, 수명주기 정책 |
정적 웹사이트 호스팅, 대용량 파일 저장 |
DocumentDB | MongoDB (NoSQL) | JSON 기반, 쿼리/인덱싱 지원 스토리지 자동 확장(10GB 단위), |
MongoDB 기반 서비스 마이그레이션 |
Neptune | 그래프 DB | 수십억 관계 저장, 고성능 그래프 쿼리 | SNS 관계, 추천 시스템, 사기 탐지 |
Keyspaces | Apache Cassandra | 관리형 Cassandra, 높은 확장성 | IoT, 시계열 데이터 저장 |
QLDB | 불변성 원장 DB | 모든 변경 사항 영구 기록, 기존 데이터 수정 불가 (새로운 버전 추가) |
금융 거래 기록 |
Timestream | 시계열 DB | 시계열 데이터에 최적화, 실시간 분석 함수 내장 | IoT, 시계열 데이터 저장 및 실시간 분석 |
1. RDS
- PostgreSQL / MySQL / Oracle / SQL Server / MariaDB / DB2 / RDS Custom
- 인스턴스 크기 및 EBS 볼륨 설정 가능
- 스토리지 자동 확장 가능
- Read Replicas 및 다중 AZ 지원
- IAM, KMS, SSL 전송 보안
- 자동 백업(최대 35일), 수동 스냅샷 가능
- 사용 사례
- 전통적인 관계형 DB 서비스
2. Aurora
- PostgreSQL / MySQL
- 스토리지와 컴퓨팅 분리
- 스토리지
- 데이터를 S3 기반의 분산 스토리지에 저장
- 자동 복구, 자동 확장
- 컴퓨팅
- SQL 쿼리 처리, 트랜잭션 처리 수행
- Writer 1개 + Reader N개 인스턴스로 구성 가능 (스케일 유연성)
- 스토리지
- Aurora Serverless
- 트래픽 예측이 어려운 경우
- 사용량에 따라 자동 확장 및 축소
- Aurora Global
- 글로벌 DB → 여러 리전에서 읽기 가능
- 사용 사례
- RDS와 유사하지만, 성능 및 유연성이 뛰어남
3. ElastiCache
- Redis / Memcached
- In-Memory DB
- 사용 사례
- 웹사이트 세션 데이터 저장, DB 쿼리 캐싱
4. DynamoDB
- 서버리스 NoSQL
- 온디맨드 / 프로비저닝 모드, 자동 확장
- ElastiCache 대체 가능
- 이벤트 처리 지원 (DynamoDB Streams, Kinesis Data Streams)
- 사용 사례
- 서버리스 애플리케이션
5. S3
- Key-Value 기반 객체 스토리지
- 최대 5TB, 무한 확장, 다양한 스토리지 티어 제공
- 이벤트 알림, 수명주기 정책 지원
- 사용 사례
- 정적 웹사이트 호스팅, 대용량 파일 저장
6. Document DB
- MongoDB (NoSQL)
- JSON 저장, 쿼리 및 인덱싱
- 스토리지 자동 증가 (10GB 단위)
- 사용 사례
- MongoDB 기반 애플리케이션을 AWS로 마이그레이션 시 유용
7. Neptune
- 그래프 DB
- 수십억 관계 저장 가능
- 사용 사례
- SNS 친구 관계, 게시글, 댓글, 좋아요, 지식 그래프, 추천 시스템, 사기 탐지(이상한 패턴, 수상한 관계 탐지)
8. Keyspaces
- Apache Cassandra
- 사용 사례
- IoT, 시계열 데이터 저장
9. QLDB
- 불변성 원장 DB
- 데이터의 모든 변경 사항을 영구히 기록하고 추적 관리
- 데이터 삽입, 수정, 삭제 시 기존 데이터를 변경하는 것이 아닌 새로운 버전을 추가함
- 기존 기록은 절대 수정, 삭제 불가
- 블록체인과 같이 탈중앙화는 아님
- 사용 사례
- 금융 거래 기록
10. Timestream
- 시계열 데이터베이스
- 실시간 분석 함수 내장
- 사용 사례
- IoT, 시계열 데이터 저장, 실시간 분석
3) CloudWatch Metrics
: AWS 서비스에 대한 Metric 지표를 수집하는 서비스이다.
1. 주요 기능
- AWS 서비스에서 자동으로 Metric을 수집하거나, ClundWatch Agent / API를 통해 사용자 정의 데이터를 수집한다.
- 기본 메트릭: AWS 서비스에서 자동으로 제공되는 메트릭
- ex. EC2 - UUtilization, S3 - NumberOfObjects
- 커스텀 메트릭: 사용자가 직접 정의하고 업로드하는 메트릭
- ex. 애플리케이션 특정 비즈니스 지표
- 기본 메트릭: AWS 서비스에서 자동으로 제공되는 메트릭
- CloudWatch 대시보드를 통해 Metric을 그래프나 차트로 시각화할 수 있다.
- 특정 Metric이 임계값을 초과하거나 특정 조건을 충족할 때 알림(Amazon SNS) 또는 자동 작업(Auto Scaling)을 트리거 시킬 수 있다.
- Metric 데이터는 기본적으로 15개월 저장된다.
- 1초 단위 고해상도 데이터는 3시간, 10초 단위 고해상도 데이터는 15일로 제한
- 다양한 통계 분석 데이터를 제공한다.
2. Metric 구성 요소
- Metric: 모니터링하고자 하는 데이터
- Namespace: Metric을 그룹화 하는 논리적 컨테이너
- Dimesions: Metric의 속성
- Metric을 세부적으로 식별할 수 있도록 함
- 1개의 Metric는 최대 30개의 Dimeesions을 지정할 수 있음
- ex. InstanceId=i-1234567890abcdef0
- Timestamp: Metric이 기록된 시간
4) CloudWatch Metric Stream
: CloudWatch Metric을 실시간에 가까운 속도로 지정된 대상으로 스트리밍 하는 서비스이다.
1. 주요 기능
- CloudWatch가 Metric을 Kinesis Data Firehose를 통해 전송한다.
- AWS 내부 서비스(S3, Redshift) 또는 서드파티 서비스(Datadog, New Relic)로 전송이 가능하다.
- 필터링을 사용해 특정 Metric만 선택하여 스트리밍 할 수 있다.
- 데이터
2. Metric Streams와 기본 Metrics의 차이
CloudWatch Metrics | CloudWatch Metric Streams | |
데이터 접근 | API 폴링(GetMetricData 등) | 실시간 스트리밍(Kinesis Firehose) |
지연 시간 | 5~10분 | 2~3분 |
저장 기간 | 15개월 | 스트림 대상에 따라 다름 |
사용 목적 | 기본 모니터링, 알람 | 실시간 분석, 외부 통합 |
비용 | 무료 티어 포함 | 사용량 기반 과금 |
4) CloudWatch Logs
: AWS 서비스 또는 온프레미스 서버에서 생성되는 로그 데이터를 수집, 저장, 분석을 제공하는 서비스입니다.
1. 주요 기능
- CloudWatch Logs Insights을 사용해 로그 분석이 가능하다.
- 특정 패턴이 발생하면 CloudWatch Metrics로 변환 후 알림을 트리거 할 수 있다.
- 기본적으로 로그가 암호화되며, KMS 기반 암호화를 지원한다.
2. CloudWatch Logs - Sources
- AWS SDK: 커스텀 로그
- CloudWatch Logs Agent: 기본 에이전트
- CloudWatch Unified Agent: CPU, RAM, 디스크
- EC2, 온프레미스 서버 내부 자원 상태 모니터링 시 유용
- Elastic Beanstalk: 애플리케이션 로그 자동 수집
- ECS: 컨테이너 로그 수집
- AWS Lambda: 함수 로그 자동 수집
- VPC Flow Logs: 네트워크 트래픽 로그
- 네트워크 보안 모니터링 시 유용
- API Gateway: 요청 및 응답 로그
- CloudTrail: 필터 조건에 따라 로깅
- Route53: DNS 쿼리 로그
3. CloudWatch Logs Insights
- CloudWatch Logs에 저장된 로그 데이터를 검색하고 분석한다.
- S3나 OpenSearch로 로그를 옮기기 전, CloudWatch 내에서 로그를 빠르게 분석할 수 있는 도구로 사용된다.
- 전용 쿼리 언어를 제공한다.
- 쿼리를 저장해 CloudWatch 대시보드에 추가 가능
- 서로 다른 AWS 계정의 여러 Log Group 쿼리 가능
- AWS 서비스 및 JSON 로그에서 필드를 자동으로 인식한다.
'DevOps > AWS' 카테고리의 다른 글
AWS SAA 6주차 (0) | 2025.03.29 |
---|---|
AWS SAA 4주차 (2) (0) | 2025.03.15 |
AWS SAA 4주차 (1) (0) | 2025.03.14 |
AWS SAA 3주차 (0) | 2025.03.08 |
AWS SAA 2주차 (0) | 2025.03.01 |