AWS DNA, 매우 유익한 시간이었다.
결론부터 말하자면 AWS DNA는 매우 유익한 시간이라고 생각한다. AWS DNA 5기는 데이터 분석과 파이프라인에 대한 한가지 주제로 진행되었고, 마침 재직 중인 회사에서 고민하고 있던 주제과 일치하였다.
어떻게하면 데이터 파이프라인을 고도화할 수 있을까? 실시간 스트림 데이터를 어떻게 제공할 수 있을까?
AWS DNA를 통해 데이터와 관련된 서비스에 대한 집중 교육을 하고, 핸즈온 교육을 하였다. 이를 통해 평소 사용하지 않는 AWS 서비스에 대해 경험해볼 수 있어 좋았다. 특히 실제 재직중인 회사의 데이터 파이프라인에 적용하여, 좋은 성과를 내기도 했다.
실제로 AWS DNA를 통해서 데이터 파이프라인을 고도화하였고, 해커톤에서 이를 발표하여 피드백을 받기도 했다. 그리고 해커톤이 끝난 이후에도 프로그램이 일회성으로 끝나지 않고 회사에서 겪고 있는 문제점에 대해 논의하고 해결하기 위해 AWS SA분을 매칭하는것까지 매우매우 좋은 시간이 되었다.
AWS DNA란?
AWS DNA는 2020년부터 AWS 코리아에서 진행하는 AWS 교육 프로그램의 한 종류이다.
2022년까지는 업무 외 시간에 진행하였기에 학생도 참여가 가능했고, 직장인도 참여가 가능했다. 그리고 한가지 주제가 아니라 AWS 전반에 대한 서비스를 배우고, 최종적으로는 해커톤을 통해 실력을 발휘하는 프로그램이였다.
AWS DNA 프로그램은 선별된 인원으로 운영되는 AWS 교육 및 네트워킹 프로그램입니다.
다양한 사업의 요구 및 문제를 실무적으로 해결하는 케이스를 데모와 함께 심화학습으로 제공합니다.
필자는 2021년 재직중인 금융권에서 한번 신청을 했었고, 탈락을 했다.. 그리고 2023년 올해 다시 신청했다!
두번째만에 성공한 AWS DNA 신청
하지만, 2023년에는 회사에 재직중인 직장인 대상으로, 팀 단위로만 참여가 가능했다. 그리고 올해에는 Data Analytics라는 주제가 있었다. 필자는 데브옵스팀에서 재직하고 있었기 때문에 데브옵스팀 인원과 데이터팀 인원과 같이 참여를 했다!!
그리고 아주 기분좋게 AWS DNA 5기로 선정되었다.
지금 AWS DNA가 다 끝난 시점에서 AWS DNA를 통해 경험했던 내용과 아쉬웠던점에 대해 적나라하게 공유하고자 한다~
AWS DNA 교육내용
이번 AWS DNA 5기는 Data Analytics라는 주제를 가지고 , 진행되었다. 그렇기 때문에 교육하는 내용이 모두 Data와 관련된 서비스들이 주를 이뤘다.
1일차
1일차에는 AWS Glue, Glue Crawler, DMS, EMR 등에 대한 서비스 교육을 하였다.
CDC
변경된 데이터를 감지하고, 추적하는데 사용하는 일련의 소프트웨어 설계 패턴이다. AWS로 데이터베이스를 이관하거나, 서로 다른 데이터베이스 복제 및 이관에 DMS 서비스가 많이 사용되며 CDC를 하기 위해서는 일반적인 방법으로는 진행하기 어렵고 Icebug 등과 같은 서비스를 이용해야 한다.
스트림 데이터 수집
기존에는 각 애플리케이션에서 바로 Target으로 데이터를 전송하는 방법이였으나, 이런 방식은 확장성이 떨어진다.
시간이 지날수록 유지관리는 되지 않는다. 그래서 AWS MSK 또는 Kinesis를 일반적으로 사용한다.
MSK
- AWS의 완전 관리형 Kafka 서비스이다.
- 일반적으로 Broker가 1개 이상 있으며, 각 Broker는 데이터를 동기화하응 클러스터링이 되어 있다.
- 데이터를 저장하는 구분은 토픽은 파티션이 저장하고, 파티션은 각 브로커가 나눠서 저장하고 있다.
- 그래서 1개의 파티션에 손상이 오더라도, 다른 Broker에서 복구가 가능하다.
- MSK 사용에 제약조건은 늘리는건 되지만, 줄이는건 되지 않는다.
- 스케일아웃(수평 확장) 시에는 파티션 재할당이 필요하다. 그렇기 때문에 해당 작업 진행될때는 일부 Broker에 부하가 생긴다.
- 스케일업(수직 확장)은 I/O 중단없이 진행된다.
Kinesis Data Steam
- Kafka와 구조가 비슷하다. 각 샤드별로 데이터를 분산 저장하며, FIFO 방식이다.
- AWS SDK, API, Library, Agent를 통해서 KDS에 데이터를 보낼 수 있으나 일반적으로 API를 많이 사용하는 편이다.
- KDS 사용에는 파티션 키를 정하게 된다. 그리고 해당 파티션 키로 어떤 샤드로 데이터를 저장할지 결정한다.
- 그렇기 때문에 샤드는 많으나, 파티션 키를 1개만 사용한다면 매우 비효율적이며, 스로틀링이 걸릴수도 있다.
- KDS 사용에는 파티션 키를 정하게 된다. 그리고 해당 파티션 키로 어떤 샤드로 데이터를 저장할지 결정한다.
MSK vs KDS
아키텍처 관점에서는 매우 유사하다. 하지만 약간의 운영이 다르다.
- MSK는 단일, 다수 클러스터 설정? 브로커 개수, 토픽 개수 등을 설정해야 한다.
- 하지만 KDS는 스트림 개수, 샤드 개수만 정하면 되기 떄문에 상대적으로 수월하다.
Kinesis Data Firehose
MSK, KDS가 데이터를 저장하는 Queue 시스템이라면, KDF는 해당 Queue에서 데이터를 읽고 Target으로 전달해주는 역할이다.
일정 시간(최소 1분) 또는 일정 크기(최소 1MB)의 데이터가 쌓이게 되면 Target으로 데이터가 전달한다.
- KDF는 Proxy와 같이 단순히 데이터를 전달받아서 넘겨주기만 한다. 그렇기에 중복된 데이터를 받을 수 있고 이는 애플리케이션에서 제어해야 한다.
2일차
2일차는 Athena, Redshift, QuickSight에 대한 교육이 주였고, 특히 Redshift에 대한 내용이 많았다. 그리고 이해하기가 어려웠다.
Athena
Athena는 실제 업무에서도 많이 사용하기 때문에 어렵지 않았다. S3에 저장된 데이터가 있고, 이를 Glue Crawler + Catalog를 통해서 스키마를 매핑하고 Athena에서 조회하는 내용었다.
Redshift
Redshift.. 이건 어려웠다. 어려웠다기 보다 생소한 내용이 많았다. Redshift가 AWS에서 잘 사용하지 않는 서비스?이고 매우 불편하다고 들었다.
- 메타데이터를 저장하고 컴퓨터 노드에 명령을 내리는 리더 노드와 SQL 병렬처리하는 컴퓨터 노드가 분리되어 있다.
- 컴퓨터 노드는 S3 데이터를 읽어서 쿼리를 하며, 각 슬라이스로 구성되어 있어 슬라이스에서 실질적인 쿼리가 진행된다.
- 그리고 슬라이스별로 EVEN, KEY, ALL 스타일 방식이 있고, 데이터를 어떤 방식으로 저장하느냐에 따라 성능에 영향이 암ㄴㅎ다.
Redshift에 대해서 이해한 내용은 이것이 전부이다. 이때 개인적인 업무도 같이 진행하느라 교육에 집중하지도 못했고 한번 놓치니깐 따라가기도 어려웠다.
3일차
3일차에는 OpenSearch와 해커톤 주제 선정을 하였다.
OpenSearch
대규모의 실시간 검색을 위한 사용자 요구사항이 있고, 이를 AWS 관리형 서비스로 제공하기 위해 탄생된 서비스이다.
OpenSearch는 로그 분석, 실시간 데이터 분석에 최적화 되어 있는 서비스이다. 특히 인덱싱 기반의 전문 검색으로 매우 큰 데이터도 매우 빠른 속도로 검색이 가능하다는 장점이 있다.
3일차 반나절과 4일차, 5일차는 해커톤 주제 선정과 해커톤 진행 그리고 결과 발표가 메인이기 때문에 이는 다음 게시물에서 알아보도록 하자!
'일상 이모저모' 카테고리의 다른 글
[AWS][DNA] DNA 5기 참여 그 이후 (0) | 2023.10.15 |
---|---|
[AWS][DNA] AWS DNA 5기 회고록 [2/2] - 해커톤 (2) | 2023.09.18 |
[Seminar] AWS Summit 2023 Seoul 2일차 (0) | 2023.05.06 |
[Seminar] AWS Summit 2023 Seoul 1일차 [2/2] (0) | 2023.05.06 |
[Seminar] AWS Summit 2023 Seoul 1일차 [1/2] (0) | 2023.05.06 |