본문 바로가기

Server Infra/AWS

AWS Data Analytics Specialty 합격 후기

728x90

응시 계기


AWS관련 업무 진행중 Data Lake 구축 및 집계 활용 관련 프로젝트를 하며 데이터 관련 서비스에 좀더 깊게 공부 하고 싶었다.(데싸를 목표로...)

그래서 관련한 AWS주최 교육도 많이 들었는데 대표적으로

Getting Started with Data Analytics on AWS

AWS training and certification

Coursera에서 진행한 데이터 분석 관련 교육(참고로 랩도 있고 영어지만 갓글 번역이 가능하기 때문에 매우 유용하다!!) 그리고 AWS Training에서 진행한 하둡 관련 교육이다.

참고로 EMR은 Hadoop와 Spark가 기본 베이스이기 때문에 기본기를 다지는데 정말 도움이 많이 되었다.

데이터 분석에 필요한 Athena나 Glue, Kinesis, Kafka, Airflow, Redshift는 현업에서 지겹도록 써 봐서인지 나름 자신감이 있었다.

일단 PSI 공식 모의고사는 60%로 생각보다 준수하였다.

부족한 부분은 EMR과 QuickSight여서 이 부분만 중점적으로 공부했다. 개인적으로

EMR 워크샵

위의 워크샵이 제일 재미있었다. 아무래도 ETL쪽이 취향인듯 한 느낌....

공부하면서 느낀건데 ETL이나 데이터 워크플로우는 Azure의 Data Factory가 좀더 장난감 같이 잘 만든것 같다. Glue Studio도 나와서 UI를 제공하긴 하지만 아직은 좀 부족한 느낌이다.

자 어느정도 공부를 했으니 Udemy를 찾아가자

 

위의 문제를 풀고 오답을 체크한다.

모의고사를 풀다보면 Glue가 정말 여기저기서 튀어 나온다. 당연한게 Hive 대체하는 메타스토어의 기능에 크롤러 북마크, 카탈로그등 다양하게 기능을 지원하고 DPU로 요금 조절 및 퍼포먼스 조절도 가능하다.

 

정말 별걸 다 지원한다. 참고로 Glue ETL에는 PySpark나 Scala를 사용하여 스크립트를 실행하여 ETL작업또한 가능하다!!

 💡 → 간단한 작업 또는 오버헤드가 적다면 무조건 Glue ETL 선택하면 된다.

그리고 Glue Clawler는 다양한 Data Store를 지원하기 때문에 Data Lake를 구축할때 상당히 많이 사용한다.

위처럼 구성이 가능한데 참고로 위 구성을 BluePrint처럼 만든 Lake Formation이라는 서비스도 있다.

💡 → 시험에 나와서 기억한다. Glue로 Lake구축할건지 Lake Formation의 Blue Print를 사용할건지.

물론 레거시부터 존재한 전통적인 엔터프라이즈 환경의 구성이라면 Glue로 Lake구성은 어려울 것이다. 어디는 Hadoop 어디는 Nas 어디는 Oracle 아주 산발적이기에 일단 하나로 모으는 것부터가 어려우기에 Crawler로 모은다음 EMR같은 고성능의 머신으로 ETL작업을 해서 정형화 할것 같다.

Kinesis같은 경우는 Data Stream ⇒ Fire hose ⇒ s3 or redshift or es 같은 파이프 라인과 각각 성능을 위한 튜닝 방법만 알고 가면 될것 같다.

참고로 성능 튜닝에 아주 큰 함정이 있다

Amazon Kinesis Client Library(KCL)는 Amazon DynamoDB 테이블을 사용하여 레코드 처리의 상태 정보를 추적한다는 점인데 이때 샤드의 증가에 따라 RCU같은걸 같이 증가시켜주지 않는다면 에러가 발생한다.

Amazon Kinesis Data Streams FAQ - 데이터 스트리밍 서비스 - Amazon Web Services

또한, Elasticsearch와 관련된 튜닝 및 색인 파이프라인과 모니터링쪽 이슈가 많다. 사실 ES는 FireHose 서비스와 함께 자주 쓰인다. 예를들어, Cloudwatch Logs로 로그를 남기고 있을때 데시보드로 만들기 위한 방법으로

CloudWatch Logs Subscript → Kinesis Firehose → ES → Kibana 형태로 색인 파이프라인 구성관련 이슈가 많다. 또한 중간에 데이터 전처리가 필요한경우 Firehose와 Lambda를 결합하여 전처리 하는 방법도 있으니 숙지하고 간다면 많은 도움이 된다.

Elasticsearch의 Shard별 Index의 크기 관련 튜닝이슈도 많은데 이때 하나의 Shard에 정적 크기는 10Gb~50Gb으로 경우에 따라 Shard를 줄여야 성능 적인 이점을 가져갈 수 있다.

대망의 Redshift는...

각 키들의 구조와

요런 아키텍쳐를 숙지하고 가자.

데이터 노드와 슬라이스 개념도 알고 들어가야 COPY를 어떻게 병렬로 처리해야 빠른지 알 수 있다.

<aside> 💡 무조건 나눈다고 성능이 좋아지지 않는다!! 적당한 크기와 적당한 파티셔닝!

</aside>

Athena또한 상당히 많은 문제에 거론 된 서비스이다.

Athena는 Presto 기반으로 만들어진 서비스인데 이 때문에 여러가지 Data Store에서 쿼리를 해야 하는 요구사항에 Presto와 Athena중 상당히 고민을 많이 했다

Athena는 아래와 같은 장점들을 가지고 있다.

대표적인 사용 사례는 아래처럼 Glue와 함께 사용하는 경우인데 Athena도 Catalog를 가지고 있지만 Athena자체 Catalog를 사용하기보단 Glue와 함께 많이들 사용하는것 같다.

  1. S3원본 데이터 생성및 소스 데이터 분석
  2. 분석 결과 저장
  3. Glue Crawler로 리포팅 데이터 스캔
  4. 스캔된 데이터를 Catalog 테이블형태로 생성
  5. Athnea 쿼리를 사용하여 Output 데이터 생성밎 사용자에게 쿼리 결과 return

모의고사 오답노트


Udemy-DAS-C01-Test-1

Udemy-DAS-C01-Test-2

Udemy-DAS-C01-Test-3

Udemy-DAS-C01-Test-4

Udemy-DAS-C01-Test-5

Udemy-DAS-C01-Test-6

시험은 2021-08-31에 응시했다

결과


다행스럽게 합격.

이전에 DBS-C01볼때처럼 은근 마음속으로 1000점을 기대했지만 EMR이 역시 발목을 잡는다. 교차 AZ가 안되는 것으로 알고 있는데 나중에 찾아보니 5버전 이후로 Mutli-AZ로 읽기 전용 클러스터를 추가할 수 있었다..ㅠㅠ

다음부터는 좀더 치밀하게 공부하기로 다짐하고

이젠 진짜 미루고 미루었던 CKA를 준비하러...

728x90