brunch

You can make anything
by writing

C.S.Lewis

by Su Feb 25. 2024

AWS ETL 파이프라인 만들기

나의 첫 프랑스 스타트업




회사에서 AWS 기반 데이터 엔지니어링을 하는데 기본기를 다시 다지기 위해 Udacity 의 Data Engineering 나노디그리를 수강하고 있다. 지난주에는 2번째 프로젝트인 ETL 파이프라인 구성하기를 하였다. Udacity가 조금 비싸긴 해도 온라인 MOOC 플랫폼 중에서는 가히 최고라고 말할 수 있다. 이유는, 실제 현업과 매우 유사하게 프로젝트를 할 수 있도록 환경도 구성해주고, 테크 멘토가 Udacity Knowledge 포럼에 남긴 모든 질문들에 즉각즉각 구체적인 답변도 주기 때문이다.




이런 식으로 구체적인 피드백이 온다



토이 프로젝트는 가상의 음악 스트리밍 서비스 회사(Sparkify)의 유저 및 노래 데이터베이스를 AWS 클라우드로 옮겨 클라우드 데이터 웨어하우스를 구축하는 것이었다. 유저 활동 및 음악 데이터는 S3에 여러 개의 JSON 로그들로 저장되어 있었고, 앱 노래 JSON 메타 데이터 파일도 함께 있었다. 즉, S3에 있는 데이터를 추출해서 Redshift에 staging 하고, 최종 사용자들이 적재적소에 활용할 수 있도록 데이터 모델링을 거쳐 최종 dimensional table 들을 Redshift 에 적재하는 ETL 파이프라인을 구성하는 과제였다. 스파크나 에어플로우를 정도로 복잡한 과제는 아니었으나, 데이터 엔지니어 초보자로서는 S3, IAM, VPC, EC2, RDS 를 AWS 상에 셋업하는 과정 자체도 어려웠다. 처음에 환경 설정할 때 버벅거려서 몇 시간동안 한 거 싹 지우고 다시 했다. 다음날 다시 셋업하고, Redshift 데이터 웨어하우스 클러스터도 빌드하고, Boto3 라이브러리를 이용해서 저 과정을 IaC (Infrastructure As Code) 로 구성하는 것도 했는데 - 여기서부터 요금 폭탄... 




오마이갓



일일이 EC2, S3, Redshift cluster 설정한 뒤에 지웠을 때는 리전이 us-east-1 이었는데, boto3 라이브러리 이용해서 코드로 EC2, S3, IAM, Redshift 클러스터를 생성했을 때는 us-west-2 였다. 즉, AWS 계정에서 활성화된 리전이 4개가 있었는데, us-east-1 의 redshift 노드들만 수동으로 싹 지웠지, 정작 이 모든 user, song 데이터를 저장해놓은 us-west-2 리전의 redshift 클러스터, 노드들은 그대로 놓은 채 로그아웃을 하고 이틀동안 확인을 하지 않은 것이었다. Cost Explorer 를 보니 활성화된 노드 수가 4개이고, 총 200시간 정도 dc2.large 노드 타입을 사용했고, 이게 대부분의 요금을 차지하고 있었다. 매 시간마다 돈이 줄줄 새는데 어디에서 빠져나가는지 알 수가 없으니 미칠 노릇이었다. 구글링을 열심히 해서 결국 제대로 싹 지웠고, 요금 폭탄은 54달러에서 멈췄다.





그래도 이렇게 작은 모듈 여러개로 코드를 구성해서 큰 codebase 로 작업을 처리하는 방식, 데코레이터 쓰는 거, 객체지향 프로그래밍에 조금은 더 익숙해진 거, command line 을 이용해서 시스템 안에서 파이썬을 바라보는 거, 이런 것들을 전에는 잘 몰랐었는데 이번 기회를 통해 배울 수 있었다. 2022년 초, 파리 인턴십 회사 송별회때 데이터 엔지니어링 팀 시니어 분이 같이 술마시면서 해주셨던 조언이 와닿았다. '툴은 6개월마다 빠르게 변한다. 중요한 건 큰 맥락에서 시스템 디자인을 논리적으로 할 수 있느냐의 여부야. 그리고 나도 주니어 시절에는 굉장히 Goal-Oriented 였는데, 이제는 아내, 딸들과 보내는 시간도 소중해. 비즈니스와 테크 분야를 넘나들 수 있는 사람은 그리 많지 않아. 너의 장점은 그거야. 그런데 엔지니어라 할지라도 위로 올라갈수록 결국에는 비즈니스를 알아야 해.'








다음날 테크 멘토분의 답변



다음 날, Udacity 테크 멘토의 답변을 읽는데, 웃음이 나왔다. 300달러 넘게  본인 돈으로 충당했으면, 나같았으면 '당장 때려쳐! 안해! 딴 길 찾아!' 했을텐데. 다들 이렇게 고군분투 하면서 저 자리까지 갔구나. 실력 뛰어난 멘토들도 다 비슷한 과정을 거쳤구나.  








이전 05화 또 다른 시작, 도전
brunch book
$magazine.title

현재 글은 이 브런치북에
소속되어 있습니다.

작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari