본문 바로가기

🌿 Data Engineering64

Triton Inference Server 모델서빙1 - NVIDA Triton(트리톤)이란? 최근 사내에 GPU를 도입하면서 다양한 ML 모델을 개발하고 있다. 반면 ML 모델 서빙 측면에서는 단순히 FastAPI를 사용하고 있다.알다시피 FastAPI는 파이썬 웹 프레임워크이기 때문에 사실상 모델 서빙 프레임워크는. 그래서 이를 대체 할 수 있는 제대로된(?) 모델서빙 프레임 워크 중 하나인 Trition Infercence Server에 대해서 알아보려고 한다.  ML 모델 서빙이란?train 된 모델을 실 서비스에 사용할수 있도록, 모델 예측 결과를 전달하는 방식이다. 모델을 훈련하는 것에서 끝나는게 아니라 그걸 어떻게 서비스로 제공할 것 인가, 즉 추론(Inference)을 하는 것까지의 과정이며 DE의 영역에서 더 나아가 MLops의 최종과제라고 볼 수 있다.Serving pipelin.. 2024. 7. 19.
디지털 기술이 사람들의 행동에 미치는 10가지 심리학적 현상 디지털기술이 사람들의 행동에 미치는 10가지 현상.아래 article을 읽고 정리한 내용입니다.https://uxplanet.org/10-psychological-facts-about-about-human-behavior-8a23342ec5d2 10 Psychological Facts About Human BehaviorIn the era of digital technologyuxplanet.org   Attention economy 디지털 제품은 사용자의 주의를 끌게끔 설계되어 있다.사용자들이 의도한것보다 더 많은 시간을 앱 내에서 체류하도록 유도하고 있다.예를들면 자동재생, 무한스크롤, 푸쉬알림 Paradox of choice (선택의 역설)사용자에게 너무 많은 정보와 선택지를 제공한다. 오히려 선택.. 2024. 7. 14.
KubernetesPodOperator으로 로컬 k8s에서 airflow 배치작업 만들기 로컬에서 mwaa airflow를 띄워보고 >> https://pearlluck.tistory.com/791 AWS MWAA local runner로 로컬에서 airflow 2.2 사용해보기airflow DAG를 테스트해보는 환경이 없었다. 물론 DAG 코드가 간단해서 다행이지만 돌려보지도 않고 바로 staging에 반영을 해야하는 상황이였다. 심지어 나는 staging에 바로 머지할 권한도 없어서 매pearlluck.tistory.com로컬에서 쿠버네티스 환경을 구축해봤다.  >> https://pearlluck.tistory.com/794 로컬 환경에서 쿠버네티스 구축하기 (kind, docker-desktop)이전에 로컬에서 mwaa airflow를 띄워보았다. 직접 테스트해보고 구축해본 내용은 아.. 2024. 1. 21.
[로컬 환경에서] 쿠버네티스 구축하기 (kind, docker-desktop) 이전에 로컬에서 mwaa airflow를 띄워보았다.직접 테스트해보고 구축해본 내용은 아래의 글 참고^^ https://pearlluck.tistory.com/791  AWS MWAA local runner로 로컬에서 MWAA 사용해보기airflow DAG를 테스트해보는 환경이 없었다. 물론 DAG 코드가 간단해서 다행이지만 돌려보지도 않고 바로 staging에 반영을 해야하는 상황이였다. 심지어 나는 staging에 바로 머지할 권한도 없어서 매pearlluck.tistory.com 이번에는 로컬에서 쿠버네티스 환경을 구축해보려고 한다. 사실 가장 큰 목적은 이 로컬에서 띄운 mwaa airflow를 로컬 쿠버네티스 환경에서 사용해보는 것이다. 앞으로 아래와 같은 질문에 대한 답을 하나하나씩 찾아가보려.. 2024. 1. 15.
[로컬 환경에서] AWS MWAA (ariflow) 구축하기 airflow DAG를 테스트해보는 환경이 없었다. 물론 DAG 코드가 간단해서 다행이지만 돌려보지도 않고 바로 staging에 반영을 해야하는 상황이였다. 심지어 나는 staging에 바로 머지할 권한도 없어서 매번 PR을 드린다.그러다 단순한 오타나 따옴표 같은 에러라도 나는 날이면.....하하....^^;;  그래서 로컬에서 DAG 코드를 테스트해 볼 환경이 필요했다. 우리는 단순 ariflow가 아닌 aws의 mwaa를 사용한다. (오히려 좋아) 이와 같은 개발환경을 로컬에서 구축하고 DAG 코드를 테스트해 본 경험을 작성해보려고 한다.  사실 굉장히 간단한데 왜 지금까지 안해봤는지 모르겠다  ^0^  들어가기에 앞서 우리 서비스의 AWS mwaa는 이렇게 staging과 prod만 있다.   s.. 2024. 1. 7.
📖[Redshift][S3] 대용량 데이터 처리 고민: S3 Unload/Copy와 Redshift Specturm 외부테이블 대용량 데이터에 대한 고민 요즘들어 이런게 바로 데이터엔지니어링인가?싶은 부분이 있어서 기록해보려고 한다. 한창 개발중인 알고리즘은 최소 4주 이상의 사용자 행동로그를 기반으로 동작한다. 그런데 이때 이렇게 큰 대용량 데이터를 수집하고 처리하는데 아래와 같은 두가지 고민사항이 있었다. 1. 수집한 대용량 로그 데이터를 어디에 어떻게 저장할 것인가? 2. 분석하기 위해 대용량 데이터를 불러오는 가장 효율적인 방법은? 3. 최종 분석결과를 어디에 어떻게 저장할 것인가? 이러한 고민들을 엔지니어링 관점에서 어떻게 해결했는지 그리고 관련 기술에 대해 작성해보려고 한다. 1. 날짜기준으로 파티셔닝하여 s3에 unload한다 ( Redshift -> S3 ) 우리는 redshift에서 어찌저찌 수집 및 분석한 데이.. 2023. 4. 23.
[snowflake] Snowflake로 S3에 있는 데이터 COPY 해보기 우리는 redshift를 어떻게 쓰고 있는가? aws 데이터웨어하우스로 두가지 목적으로 사용하고 있다. 첫번째는 DS의 데이터 분석 작업용, product info나 event log 등 분석하기 위한 테이블들을 저장한다. 두번째는 배치작업용, 실제 서비스화하려는 알고리즘들을 개발하기 위해 대용량 데이터를 처리하는 목적으로 사용한다. redshift가 힘들어요 점점 데이터분석 작업 뿐만 아니라 배치작업들이 증가하고 있다. 특히나 대부분은 대용량 데이터를 처리하는 경우가 많다. 그런데 이걸 하나의 redshift에서 처리하다보니 redshift가 힘들어하는지 처리시간도 느려지고 물론 비용도 많이 나가고 있다. 그래서 일단은 최대한 여러가지 배치작업들을 동시에 처리하는걸 피하기 위해 배치 주기를 겹치지 않게.. 2023. 4. 9.
참고자료-DynamoDB 데이터 변경 이벤트 파이프라인 구축하기 https://medium.com/daangn/dynamodb-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%80%EA%B2%BD-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-feat-kinesis-1733db06066 DynamoDB 데이터 변경 이벤트 파이프라인 구축하기 (feat. Kinesis) DynamoDB 데이터 변경 이벤트를 기반으로 AWS-Native 데이터 파이프라인 구축하기 medium.com 2021. 12. 27.
[Elasticsearch] 동작원리, shard와 replica를 몇개로 설정해야하는가? 이전에 이해한 개념을 바탕으로 이젠 원래 주 목적이였던 성능튜닝에 대해서 정리해보려고한다. 그 전에 es검색원리를 이해해야했다.(쉽지않다..) 검색하는데 어떤 영향이 있는지 알아아야 몇개로 설정할지 감이 잡힐테니까! 검색하는데 shard와 replicar가 어떤 영향을 미치길래 성능튜닝을 하는거지? 그래서 결국 primary shard와 replica를 몇개로 설정해야하는가? 참고로, Replica는 나중에 변경 가능하지만, primary shard는 인덱스를 처음 생성할때만 설정할 수 있다. (변경하려면 reindex해야함) https://localhost:9200/index명/_setting API를 통해서 primary shard와 replica 개수를 확인할 수 있다. 검색원리 일단 기본적인 원리.. 2021. 12. 23.
[Elasticsearch] 내부구조, cluster/index/replica/shard 개념정리 최근에 회사에서 elasticsearch를 써먹어보면서 성능튜닝을 몇가지 진행했다. 파라미터들을 조절하면서 결론적으로 뭐 이렇다는걸 대략적으로 보긴했지만 이런 의문이 들었다. es 성능은 shard개수보다 replica개수에 영향을 준다 왜? why? 특히 es 성능은 shard개수보다 replica개수에 영향을 준다 라는 이야기를 들었는데, 사실 나는 아직 shard랑 replica개념도 안잡혀 있어서 그런데 왜 그런지, 도대체 내부에선 어떻게 동작하길래 그런 결론이 나왔는지 궁금증이 생겨서 조금더 깊게 알아보기로 했다! 내부구조 먼저 전체적인 es의 내부구조를 살펴보면 이렇다. es가 '클러스터'를 구성한다고 하면 여러개의 '노드'들이 묶여서 있는 모습을 볼 수 있다. 그리고 각 노드에 데이터를 저장.. 2021. 12. 23.