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 이용
      • 큰 묶음의 데이터를 작성하는 것이 좋음
      • 한번에 한 행씩 작성하는 것은 매우 비효율적이기 때문
  • 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에 삽입

[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에서 실시간 데이터를 수집하는 경우

  1. IoT Device는 실시간으로 IoT Core (IoT Device를 관리하는 서비스)에 데이터 전송
  2. IoT Core는 Kinesis Data Streams에 실시간 데이터 전송
  3. Kinesis Data Streams → Firehose : S3 수집 버킷으로 1분마다 데이터를 넣음 (실시간에 가까움), 그리고 Lambda를 활용해 데이터 변환 가능
  4. S3 버킷이 Lambda를 작동시켜, Athena SQL 쿼리를 작동시킴
  5. Athena 쿼리는 수집 버킷에서 데이터를 꺼내고, 서버리스인 SQL 쿼리를 수행
  6. 서버리스 쿼리 출력은 리포팅 (보고) 버킷에 저장됨
  7. 리포팅 내용을 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

  • 사진/문서/폼/테이블 내에서 텍스트 추출해 데이터 파일로 제공