AWS 자격증 공부/AWS SAA-C03
AWS SAA : Database & Analysis & Machine Learning
sseldne0
2024. 11. 25. 14:39
[RDBMS]
= SQL, OLTP
JOIN에 유용
RDS
= 관계형 데이터베이스 저장, SQL 쿼리 활용, OLTP
- Managed PostgreSQL, MySQL, Oracle, SQL Server, DB2, MariaDB, Custom
- RDS 인스턴스 크기와 EBS 볼륨 유형 및 크기 프로비저닝
- Storage Auto-scaling
- Read Replica → Read capability 상승
- Multi AZ → High Availability, 쿼리 사용은 불가능한 재해 복구용
- IAM, 보안 그룹을 통한 보안, KMS, SSL 을 통한 데이터 암호화
- 자동 백업 옵션 : 최대 35일 이내 언제든지 시점 복원
- 장기적인 복구를 위해 백업 유지 → 수동 데이터베이스 스냅샷 사용
- DB Downtime : 관리되고 예정된 유지보수 작업에 기인함
- RDS Custom : Oracle, SQL Server DB에서 사용
Aurora
= RDS와 비슷하지만, less maintenance, 높은 유연성, 높은 성능, 더 많은 기능
- MySQL, PostgreSQL과 호환되는 API
- storage와 computing이 독립적인
- storage : 3 AZ, 6 replicas → 설정 못바꿈, high availability, self-healing, auto-scaling
- compute : 다중 AZ에 DB instance 클러스터 위치, Read Replica auto-scaling
- Cluster : 어디서 쓰고 읽을지를 알기 위해 writer endpoint, reader endpoint를 가지고 있음
- Aurora backup & restore option
- Aurora Serverless : 예상하지 못하는 간헐적인 워크로드, 용량 계획 X
- Aurora Global : 리전마다 16개에 달하는 데이터베이스 Read instance 제공, 스토리지 복제는 1초 내에 리전간 발생함, 주요 리전에 문제 있을 경우 두번째 리전을 새로운 주요 리전으로 승급
- Aurora Machine Learning : SageMaker & Comprehend 사용해 ML
- Aurora Database Cloning : 기존에 존재하던 것 밖에 새로운 클러스터 만듦
[NoSQL DB]
JOIN 없음
일반적으로 SQL 사용안함
DynamoDB
= DB가 필요한 경우, 서버리스 애플리케이션, 데이터가 작은 문서들 (수백 KB 문서), 서버리스 캐시
- 관리형 서버리스 NoSQL DB, 밀리초 지연시간
- 용량 모드
- optional auto-scaling : 자동 스케일링이 제공되는 프로비저닝
- on-demand : 용량을 프로비저닝할 필요가 없고 자동 스케일링
- key/value store로 ElastiCache 대체할 수 있음
- TTL feature 활용해 세션 데이터 저장 가능
- 가용성 좋음
- Multi AZ
- Read, Writes 는 완전히 분리되어있음
- DAX cluster : read cache, 마이크로초 읽기 지연시간
- IAM을 통한 보안, 인증, 승인
- 이벤트 처리 능력 : AWS Lambda, Kinesis Data Stream을 통한 스트림 통합
- 글로벌 테이블 : active-active setup : 다수의 리전에 걸쳐 읽기, 쓰기 가능
- 백업
- 자동 백업 : PITR 활성화, 최장 35일까지 언제라도 복구 가능
- on-demand 백업
- PITR 기간 안에 S3로 내보내기 기능을 이용해 읽기 용량을 전혀 사용하지 않고도 테이블을 S3로 내보낼 수 있고, 쓰기 용량을 전혀 사용하지 않고도 S3로부터 새로운 테이블을 가져올 수 있음
- 빠르게 스키마를 변경해야하거나 유연한 스키마가 필요한 경우에 사용
ElastiCache
= Key/Value store, frequent reads, less writes, DB 쿼리 캐싱, 웹사이트 세션 데이터, SQL 사용 불가
- 관리형 Redis / Memcached
- RDS와 비슷하지만 캐싱 작업에 활용
- 인메모리 데이터 스토어로, 데이터를 읽을 때 1밀리초 미만의 지연 시간 제공
- 캐시를 위한 EC2 인스턴스를 프로비저닝해야함
- Redis : 클러스터 생성, 다중 AZ, Read Replicas (for sharding)
- IAM을 통한 보안, 보안그룹, KMS, Redis Auth
- Backup, Snapshot, Point in time restore feature
- Managed and scheduled maintenance
- 애플리케이션이 캐싱 작업을 수행하려면, ElastiCache를 활용하도록 코드를 수정해야 함
DocumentDB
= NoSQL, MongoDB, DynamoDB 생각하기
- MongoDB 기술에 기반한 NoSQL DB
- JSON 데이터를 저장, 쿼리, 인덱스하기 위해 사용
- Aurora 와 비슷한 배포 개념을 가짐
- 완전히 관리됨, 3AZ에 복제본이 있어 높은 가용성을 가짐
- 자동으로 10GB까지 확장됨
- 초당 수백만개의 요청을 작업할 수 있도록 확장되도록 설계
Keyspaces
= IoT 장치 정보, 시계열 데이터 저장에 사용
- 관리형 Apache Cassandra (오픈소스 NoSQL 분산 DB)를 보조
- 서버리스 서비스
- 확장성 높음, 가용성 높음
- 애플리케이션 트래픽에 따라 테이블 자동으로 확장/축소
- 테이블 데이터는 여러 AZ에 걸쳐 3회 복제됨
- CQL (Cassandra Query Language) 사용
- 어떤 규모에서도 지연시간이 10밀리초 미만으로 짧고, 초당 수천건 요청 처리
- 용량 모드 : DynamoDB와 동일
- On-Demand
- Provisioned mode with auto-scaling
- 암호화, 백업, PITR 은 35일 이내
[Object Store]
S3
= 정적 파일, key/value 저장, 웹사이트 호스팅
- Key/Value 저장
- 큰 객체에 훌륭하나, 작은 객체에는 좋진 않음
- 서버리스, 무한 확장, 객체 최대 크기는 5TB
- 스토리지 계층이 다양함, 계층 전환을 위해 수명 정책 적용
- 특징 : 버저닝, 암호화, 복제, MFA 삭제, 액세스 로그
- 보안 : IAM 보안, 버킷 정책, ACL, Access Point, S3 Object Lambda (객체를 애플리케이션에 전송하기 전 수정), CORS, Object/Vault Lock
- 암호화 : SSE-S3, SSE-KMS, SSE-C, client-side, TLS in transit
- Batch operation : Batch
- Multi-part upload, S3 Transfer Acceleration (한 리전에더 다른 리전으로 빠르게 전송), S3 Select (필요한 데이터만 빠르게 검색)
- S3 Event Notification ← SNS, SQS, Lambda, EventBridge
[Data Warehouse]
= SQL Analytics, Business Intelligence
Redshift
- 데이터베이스인 동시에 분석 엔진
- PostgreSQL 기반이지만, OLAP DB임 (온라인 분석 처리)
- 다른 데이터 웨어하우스보다 10배 좋은 성능을 가짐
- PB의 데이터로 확장 가능
- 성능 개선 : 열 기반 스토리지, 병렬 쿼리 엔진
- 공급한 인스턴스만큼 비용 발생
- 쿼리 수행을 위해 SQL문 그대로 이용
- Amazon Quicksight, Tableau와 통합 가능
- Athena와 다르게 인덱스 기능이 있음 ! → 집중적인 DW라 복잡한 쿼리와 조인, 집합이 많다면 Redshift 이용
- 클러스터 : 노드 사이즈를 프로비저닝, 비용 줄이고 싶으면 예약 인스턴스 사용
- 리더 노드 : 쿼리 계획과 결과 집합
- 계산 노드 : 쿼리 수행, 결과를 리더에게 전송
- 몇몇 클러스터에서 Multi AZ
- 스냅샷
- single AZ에서 재해 복구, 백업을 위해 사용 → S3에 저장
- 변화가 생긴 것만 저장
- 모드
- 수동 : 수동으로 / 삭제할 때까지 보존
- 자동 : 매 8시간마다 스냅샷 / 매 5GB마다 스냅샷 / 저장공간 설정
- 스냅샷을 자동으로 복사하도록 구성 : 자동/수동 모드와는 관계 없이, 해당 클러스터에서 다른 AWS 리전으로 복사, 복구
- 데이터 수집
- Kinesis Data Firehose → Redshift
- 데이터를 S3 버킷에 작성
- Firehose가 S3 복사 명령 → Redshift로 데이터 로드
- S3 → Redshift
- 데이터를 S3 버킷에 로드
- IAM 역할을 사용해 Redshift cluster로 데이터 복사
- 데이터 복사는 인터넷 / VPC 를 통해 이루어짐
- EC2 Instance → Redshift
- JDBC driver 이용
- 큰 묶음의 데이터를 작성하는 것이 좋음
- 한번에 한 행씩 작성하는 것은 매우 비효율적이기 때문
- Kinesis Data Firehose → Redshift
- Redshift Spectrum
- S3에 데이터가 있지만, Redshift로 데이터를 이동시키지 않고 그 안에서 데이터를 분석하고 싶을 때, 혹은 더 많은 처리 능력 사용하고 싶을 때 사용
- 쿼리를 시작할 수 있는 Redshift 클러스터가 있어야 함
Athena
= 임시 쿼리 수행, 비즈니스 인텔리전스 분석 및 보고, 로그 쿼리 및 분석 (VPC 흐름 로그, 로드 밸런서 로그)
- S3 bucket에 저장된 데이터를 분석하는 서버리스 쿼리 서비스
- SQL 언어로 파일을 쿼리하여 분석함
- 사용자가 S3 버킷에 데이터 로드하면 Athena 서비스를 사용해 S3에서 데이터 쿼리 및 분석 가능
- csv, json, orc, avro, parquet 등 다양한 형식 지원
- 가격 책정 - 스캔된 데이터의 TB당 고정 가격
- Amazon QuickSight 도구와 함께 사용하여 보고서, 대시보드 생성
- Performance Improvement
- 적게 스캔할 수 있는 데이터를 사용 → 비용 절감 : Apache Parquet, ORC를 사용하면 성능 좋음. Glue (ETL 작업으로 CSV와 Parquet 간 데이터 변환에 유용함) 사용
- 압축 데이터
- 특정 열을 항상 쿼리한다면 데이터 세트 분할하면 됨 (S3 버킷에 있는 전체 경로를 슬래시로 분할
- 큰 파일
- Federated Query
- 어떤 곳에 저장되어있는 데이터든 SQL 쿼리 실행 가능
- 데이터 원본 커넥터 사용 : Lambda 함수 → 다른 서비스 (CloudWatch Logs, DynamoDB…) 에서 연합 쿼리 실행
EMR
- Elastic MapReduce
- 빅데이터 작업을 위한 하둡 클러스터 생성에 사용
- 방대한 양의 데이터를 분석, 처리
- 하둡 클러스터는 프로비저닝되어야하며, 수백개의 EC2 인스턴스로 구성됨
- Apache Spark, HBase, Presto, Apache Flink 등과 함께 사용하는데, 그에 대한 프로비저닝과 구성을 자동으로 해줌
- 노드 유형
- 마스터 노드 : 클러스터 관리, 다른 모든 노드의 상태를 조정, 장기 실행
- 코어 노드 : 태스크를 실행하고 데이터를 저장, 장기 실행
- 태스크 노드 : 테스트만 실행, 스팟 인스턴스를 사용, 이는 선택사항
[Search]
OpenSearch
- 부분 매칭이어도, 모든 필드에 대해 값을 검색할 수 있음
- 검색에 사용되지만, 분석적 쿼리에도 사용, 데이터 시각화 가능
- 프로비저닝
- 관리형 클러스터 : 물리적인 인스턴스 프로비저닝
- 서버리스 클러스터 : AWS가 모든것을 관리
- 자체 쿼리 언어를 사용하기에, SQL 지원 X (← 플러그인으로 활성화)
- Kinesis Data Firehose, IoT, CloudWatch Logs 등 데이터를 받음
- 보안 : Cognito, IAM, KMS encryption, TLS
- Use case
- DynamoDB & Opensearch
- DynamoDB에 데이터를 CRUD
- 그 데이터들을 DynamoDB Stream에 전송
- 람다 함수가 그걸 잡아서 실시간으로 데이터를 OpenSearch에 삽입
- 특정 항목을 검색할 능력을 가져서, 항목 ID를 획득함
- 항목 ID를 기반으로 DynamoDB에서 해당 데이터를 가져옴
- CloudWatch Logs & Opensearch
- using lambda : CloudWatch Log에서 Subscription Filter를 사용해 데이터를 람다 함수에 전송 → 람다는 모든 데이터를 실시간으로 OpenSearch에 삽입
- using Kinesis Data Firehose : CloudWatch Log에서 Subscription Filter를 사용해 데이터를 Data Firehose 에 전송 → OpenSearch 에 모든 데이터를 실시간에 가깝게 삽입
- Kinesis Data Streams & Opensearch
- using lambda : Kinesis Data Streams의 스트림을 실시간으로 읽어오는 lambda function을 사용하여, OpenSearch에 삽입
- using Kinesis Data Firehose : Kinesis Data Streams의 스트림을 Firehose에 넣으면, 모든 데이터를 실시간에 가깝게 OpenSearch에 삽입
- DynamoDB & Opensearch
[Graph]
Neptune
- 완전 관리형 그래프 DB
- 3개의 AZ에 걸쳐 최대 15개의 읽기 전용 복제본을 가짐
- 고도로 연결된 데이터셋을 가진 애플리케이션을 구축하고 실행하는데 사용
- 복잡하고 어려운 쿼리를 그래프 위에서 실행하도록 최적화되어있음
- 수십억개의 관계 저장
- 밀리초 지연시간을 가짐
- 여러 가용 영역에 걸친 복제로 높은 가용성 지님
- Neptune Streams
- Neptune DB 내 그래프 데이터의 모든 변경사항에 대해 실시간으로 정렬된 데이터 시퀀스 제공
- 애플리케이션이 Neptune에 데이터를 쓰면, 변경 사항이 스트림에 즉시 반영되어 사용할 수 있음
- 해당 스트림에는 중복이 없음
- HTTP REST API 통해 스트림 데이터 액세스
- 그래프 데이터 내 일부 변경 사항이 발생할 때 알림 보내거나, 데이터를 다른 데이터 저장소와 동기화할 때 사용, 클러스터의 데이터를 여러 리전에 복제하고자 할 때 사용
[Ledger]
QLDB (Quantum Ledger Database)
- Ledger : 금융 트랜잭션을 기록하는 장부
- QLDB : 금융 트랜잭션을 가짐
- 완전 관리형 데이터베이스, 서버리스, 가용성 높음
- 3AZ에 걸친 복제
- 애플리케이션 데이터의 시간에 따른 모든 변경 내역을 검토하는데 사용
- 불변 시스템 : 데이터베이스에 무언갈 쓰면 삭제하거나 수정할 수 없음
- 삭제되지 않았는지 확인하기 위해 암호화 서명을 하기도 함
- 일반 원장 블록체인 프레임워크보다 2-3배 성능이 좋음
- 탈중앙화 개념이 없음
- 아마존 소유의 중앙 DB에서만 저널 작성 가능
- 많은 금융 규제 규칙을 따름
[Time series]
Timestream
- 완전 관리형, 빠르고 확장성이 있는 타임시리즈 DB
- 타임시리즈 : 시간 정보를 포함하는 포인트의 모임
- 데이터베이스의 용량을 자동으로 확장, 축소
- 시계열 데이터에 대해 RDB보다 훨씬 빠르고 저렴함
- 쿼리 예약, 다중 척도 레코드, SQL 호환성 높음
- 최신 데이터는 메모리에 저장되고 과거 데이터는 비용 효율적인 스토리지 계층에 저장됨
- 시계열 분석 기능이 있어 거의 실시간으로 데이터를 분석하고 패턴 찾음
- 전송 중 데이터와 저장 데이터의 암호화 제공
[Analysis]
QuickSight
- 서버리스 머신 러닝 기반 비즈니스 인텔리전스 서비스
- BI (비즈니스 인텔리전스) : 대화형 대시보드 생성
- 대시보드 생성, 소유한 데이터 소스와 연결
- 시각화, 오토 스케일링 가능, 웹사이트 임베딩 가능
- 비즈니스 분석, 시각화 구현, 임시 분석 수행, 비즈니스 인사이트 획득
- 사용자 수준의 기능을 제공
- CLS (Column Level Security)를 이용하여 권한이 없는 사용자에게 특정 열을 숨길 수 있음
- 다른 제품과의 통합
- RDS, Aurora, Athena, Redshift, S3와 연결
- SPICE 엔진 : 인메모리 연산 엔진 : 퀵사이트로 데이터를 직접 가져올 때 사용하며, 다른 DB에 연결돼있을 때는 사용하지 않음
- 온프레미스 데이터베이스 (JDBC 이용)
- SaaS (Salesforce, Jira)
- 대시보드 및 분석
- 사용자, 그룹 정의
- 기본 버전 : 사용자
- 기업 버전 : 사용자, 그룹
- 이런 사용자, 그룹은 퀵사이트 전용으로 IAM이 아님
- 대시보드
- 읽기 전용 스냅샷, 분석 결과 공유
- 분석의 구성을 저장 → 분석을 위해 설정한 필터, 매개변수 제어, 정렬 옵션 등을 대시보드에 표시
- 대시보드 게시 → 특정 사용자 / 그룹과 분석 결과 / 대시보드를 공유
- 액세스 권한이 있는 사용자는 기본 데이터를 볼 수도 있음
- 사용자, 그룹 정의
Glue
- 추출, 변환, 로드 (ETL) 서비스 관리
- 분석을 위해 데이터를 준비하고 변환하는데 매우 유용함
- 서버리스 서비스
- Glue ETL → Redshift Data Warehouse
- S3, RDS로부터 데이터 Extract
- 데이터 Transform
- Redshift에 데이터 Load
- Convert data into Parquet (열 기반) format
- S3에 csv 형태의 파일이 존재
- 이 파일을 Glue 에서 Parquet 형식으로 변환
- 출력 S3 버킷으로 데이터 보냄
- Parquet 형식의 데이터를 Athena가 훨씬 더 잘 분석
- Glue Data Catalog
- Glue 데이터 크롤러를 활용해 S3, RDS, DynamoDB, 온프레미스 JDBC 를 크롤링
- 테이블 열, 데이터 형식 등 메타데이터를 데이터 카탈로그에 기록
- Glue가 ETL을 수행하기 위한 Glue 작업에 수행할 모든 메타데이터를 가짐, Athena, Redshift Spectrum, EMR 등에서도 데이터 디스커버리에 사용됨 = AWS 서비스의 중심 !
- Glue Job Bookmarks : 새 ETL 작업을 실행할 때 이전 데이터의 재처리 방지
- Glue Elastic Views
- SQL을 사용해 여러 데이터 스토어의 데이터를 결합하고 복제
- 커스텀 코드 지원 X
- 원본 데이터의 변경 사항 모니터링
- 서버리스 서비스
- 여러 데이터 스토어에 분산된 구체화된 뷰인 가상 테이블 생성
- Glue DataBrew : 사전 빌드된 변환을 사용해 데이터를 정리하고 정규화
- Glue Studio : ETL 작업을 생성, 실행, 모니터링하는 GUI
- Glue Streaming ETL : Apache Spark Structured Streaming 위에 빌드되며 ETL 작업을 배치 작업이 아니라, 스트리밍 작업으로 실행
Lake Formation
- Data Lake : 데이터 분석을 위해 모든 데이터를 한곳으로 모아주는 중앙 집중식 저장소
- Lake Formation
- S3에 저장되는 데이터 레이크 생성을 도와주는 완전 관리형 서비스
- 데이터 레이크에서의 데이터 검색, 정제, 변환, 주입을 도움
- 데이터 수집, 정제, 카탈로깅, 복제 같은 복잡한 수작업을 자동화
- ML 변환 기능으로 중복 제거
- 정형 데이터, 비정형 데이터 소스 결합 가능
- 블루프린트 제공 : Out-of-the-box source 로, 내장된 블루프린트를 활용해 Source의 데이터를 Data Lake로 migrate하는 것을 도와줌
- AWS Glue 위에 존재하지만, Glue와 상호작용하진 않음
- 중앙화된 권한 : 액세스 제어 기능, 열 및 행 수준 보안 기능을 통해 Lake Formation에 주입된 데이터를 관리하여 한 곳에서만 모든 보안을 관리
Kinesis Data Analytics
- SQL 애플리케이션용
- 서버 프로비저닝 X, 전송된 데이터만큼 비용 지불
- Sources : Kinesis Data Streams, Kinesis Data Firehose
- SQL문을 적용하여 실시간 분석 처리, S3의 참조 데이터 조인
- Sink (데이터 전송하는 곳)
- Kinesis Data Streams : 실시간 쿼리로 스트림 생성해 실시간 처리
- Kinesis Data Firehose : S3, Redshift, OpenSearch 등에 전송
- Apache Flink 용
- Java, Scala, SQL로 애플리케이션 작성 & 스트리밍 데이터 분석 및 처리
- Flink : 코드로 작성해야하는 특별한 애플리케이션
- Sources : Kinesis Data Streams, Amazon MSK
- 표준 SQL 보다 강력하므로 고급 분석이 필요할 때 사용
- 컴퓨팅 리소스를 자동 프로비저닝, 병렬 연산, 오토 스케일링, 체크포인트, 스냅샷을 통한 백업, Flink 프로그래밍 기능 이용
Amazon MSK : Managed Streaming for Apache Kafka
- Kafka : Amazon Kinesis의 대안
- 데이터를 스트리밍하는 방식
- Kafka 클러스터는 여러 브로커로 구성됨
- 방식
- producer : Kinesis, IoT, RDS로부터 나온 데이터를 클러스터에 주입
- Kafka 토픽으로 데이터를 전송
- 해당 데이터는 다른 브로커로 완전 복제됨
- Kafka 토픽은 실시간으로 데이터를 스트리밍
- 소비자는 데이터를 소비하기 위해 주제를 폴링함. 소비자는 데이터를 원하는대로 처리하거나 대상으로 보냄
- Kinesis Data Streams vs Amazon MSK
- KDS : 1MB 메세지 제한 / MSK : 1MB 기본, 더 높게 설정 가능
- KDS : Shards를 이용한 스트리밍 / MSK : 파티션을 이용한 Kafka topic을 이용해 스트리밍
- KDS : 용량 확장을 위해 샤드 splitting & Merging / MSK : 파티션 추가만 가능
- KDS : TLS 전송 중 암호화 / MSK : 평문 or TLS 전송 중 암호화
- 둘 다 저장 데이터 암호화 가능
- 완전 관리형 Kafka 클러스터 서비스
- 클러스터 생성, 업데이트, 삭제
- brokers node, Zookeeper node를 생성하고 관리
- 고가용성을 위해 최대 3개의 다중 AZ에 복제
- 일반 Kafka 장애를 자동 복구
- EBS 볼륨에 데이터 저장
- MSK Serverless ← 서버 프로비저닝, 용량 관리 필요 X
- Consumer
- Apache Flink용 Kinesis Data Analytics를 사용해 Flink 앱을 실행하고 MSK 클러스터 데이터를 읽어옴
- Glue로 ETL 작업 스트리밍
- MSK를 이벤트 소스로 이용하여 Lambda 함수 적용
- 자체 Kafka Consumer를 생성해 원하는 플랫폼에서 실행
빅데이터 수집 파이프라인
이상적인 빅데이터 수집 파이프라인
- 완전한 서버리스
- 실시간 데이터 수집
- 데이터 변환
- 변환된 데이터를 SQL를 이용해 쿼리
- 쿼리를 이용해 만드는 보고서는 S3에 저장
- 데이터를 웨어하우스로 로드해 대시보드 제작
ex. IoT Device에서 실시간 데이터를 수집하는 경우
- IoT Device는 실시간으로 IoT Core (IoT Device를 관리하는 서비스)에 데이터 전송
- IoT Core는 Kinesis Data Streams에 실시간 데이터 전송
- Kinesis Data Streams → Firehose : S3 수집 버킷으로 1분마다 데이터를 넣음 (실시간에 가까움), 그리고 Lambda를 활용해 데이터 변환 가능
- S3 버킷이 Lambda를 작동시켜, Athena SQL 쿼리를 작동시킴
- Athena 쿼리는 수집 버킷에서 데이터를 꺼내고, 서버리스인 SQL 쿼리를 수행
- 서버리스 쿼리 출력은 리포팅 (보고) 버킷에 저장됨
- 리포팅 내용을 Quicksight를 활용해 시각화하거나, 데이터 웨어하우스로 로드해 데이터를 분석
Machine Learning
Rekognition
- 기계 학습을 이용해 객체, 사람, 텍스트와 이미지와 비디오의 장면 찾음
- 얼굴을 분석하고 비교해 사용자 확인, 이미지 내 인물 수 셀 수 있음
- 익숙한 얼굴을 저장해 자체 DB에 저장 / 유명인 얼굴 DB와 비교
- Content Moderation
- 부적절하거나 원치 않거나 불쾌감을 주는 컨텐츠를 탐지
- SNS, 방송 매체, 광고, 전자 상거래 서비스를 운용할 때 안전한 사용자 경험을 마련해야 할 때 사용
- 플래그를 띄우도록 항목의 최소 신뢰도 threshold를 설정
- A2I (Amazon Augmented AI) 를 활용하여 수동 리뷰 (유지 / 삭제) 가능
Transcribe
- 음성 → 텍스트
- ASR (자동 음성 인식) 이라는 딥러닝 사용
- Redaction 사용해 개인 식별 정보 자동 제거
- 다국어 오디오를 자동으로 언어 식별
Polly
- 텍스트 → 음성
- 어휘 목록 활용
- 발음 어휘 목록 Pronunciation lexicon 사용해 사용자 지정 발음 생성
- 어휘목록을 업로드하고 SynthesizeSpeech 기능에 활용
- SSML 활용
- 음성 합성 마크업 언어
- 보다 다양한 사용자 지정 음성을 만들 수 있음
- 특정 단어, 구절을 강조할 수 있고, 음성학적 발음을 구현, 숨소리 넣기 등
Translate
- 자연스럽고 정확한 언어 번역 기능 제공
- 콘텐츠 현지화 : 해외 사용자를 위한 애플리케이셔션에 적용
- 대량의 텍스트 효율적 번역
Lex + Connect
Lex : Amazon Alexa와 같은 기술
- Lex를 사용해 자동 음성 인식 (ASR)해 음성을 텍스트로 바꿔줌
- Lex가 자연어 이해를 통해 말의 의도 파악, 문장 이해
- 챗봇 구축, 콜센터봇 구축에 도움을 줌
Connect : 가상 고객 센터
- 전화를 받고, 고객 응대 흐름을 생성하는 클라우드 기반 서비스
- 다른 고객 관계 시스템, CRM 및 서비스와 통합
- 초기 비용이 없고, 저렴한 비용
Comprehend
- 자연어를 처리하는 NLP 서비스
- 완전 관리형 서버리스 서비스
- 텍스트에서 인사이트와 관계를 도출
- 텍스트 언어를 이해하고, 주요 문구, 장소, 브랜드 등을 추출한 뒤 감정 분석, 토큰화 및 품사를 사용해 텍스트를 분석, 음성 식별, 텍스트 파일 모음을 주제에 따라 정리하고 식별
- 대량의데이터가 있으면, Comprehend가 그 데이터의 의미를 이해하려고 노력
- 텍스트 혹은 구조화되지 않은 데이터를 구조화된 데이터로 변환
Comprehend Medical
- 비정형 의료 텍스트에서 유용한 정보를 탐지해 반환
- 의사 소견서, 퇴원 요약서, 검사 결과서 등을 보고 텍스트 탐지
- 문서와 문서 속의 보호된 개인 건강 정보를 DetectPHI API 로 탐지
SageMaker
- 완전 관리형 서비스
- 머신러닝 모델을 구축하는 개발자와 데이터 과학자를 위한 서비스
Forecast
- 완전 관리형 서비스
- 머신 러닝을 사용해 매우 정확한 예측을 제공
- 데이터 자체를 확인하는 것보다 50% 더 정확함
Kendra
- 머신러닝으로 제공되는 완전 관리형 문서 검색 서비스
- 문서 내에서 답변을 추출할 수 있게 도와줌
- 데이터 소스 : 문서가 담겨있음
- Kendra : 문서를 인덱싱해 머신러닝으로 작동되는 지식 인덱스를 자동으로 구축
- 사용자의 상호작용 및 피드백에서 학습하고 선호되는 검색 결과를 하는 incremental learning
- 검색 결과 조정 : 데이터의 중요성, 새로움, 사용자 정의 필터 기반으로
Personalize
- 실시간 맞춤화 추천으로 애플리케이션 구축
- ML 솔루션을 구축, 훈련, 배포할 필요 없고 번들 자체를 사용하면 됨
Textract
- 사진/문서/폼/테이블 내에서 텍스트 추출해 데이터 파일로 제공