AWS

회사에 입사하고 나서 처음으로 프로덕션 환경에서 데이터 파이프 라인을 구축하고 배포한 경험을 정리해보고자 한다. 사실 프로젝트 끝난지는 한달정도가 되어가는데.. 내일 새로운 빅데이터 플랫폼 구축 프로젝트가 시작되기 전에 나의 첫 프로젝트를 먼저 회고해보기로 했다. 나는 6개월짜리 Databricks 기반의 빅데이터 플랫폼을 구축하는 프로젝트에서 데이터 엔지니어링을 담당했다.실제로는 4개월 정도 참여했으나, 프로젝트가 특이하게도 1차 배포 - 2차 배포 + 운영 의 프로세스로 진행되어 운좋게도 인프라 구축부터 파이프라인 개발, 운영 모니터링 과정의 ETL 파이프라인 개발의 한 cycle을 경험할 수 있었다. 총 4개월 - 길면 길고 짧다면 짧지만 - 동안 택시도 타고 주말도 반납하면서 실전에서 부딪히며 느..
참고 : Ubuntu 22.04 LTS 환경에서 작업했습니다. 사이드 프로젝트 서비스 배포 준비를 하며 Dockerfile 빌드를 하던 중, No space left on device 에러가 발생했다. 원래 EC2에 연결되어 있던 EBS 볼륨의 크기는 8GB였다. 도커 파일 빌드 시에 ML 관련 패키지들이 무거운 것들이 있어서인지 df -h 명령어로 파일시스템을 확인하면 빌드가 진행되면서 사용률이 늘어나는 것을 확인할 수 있었다. EC2 인스턴스 > 스토리지 > 블록 디바이스를 선택한다. 수정할 EBS 를 선택하고 볼륨 수정을 선택한다. 나의 경우 16GB로 늘려주었다. 아직 xvda 1 는 7.9G 가 할당된것을 볼 수 있다. 루트 파티션 xvda1 이 전체 공간을 사용할 수 있도록 확장하는 작업이 필..
airflow 를 t2.micro (가장 저렴한 프리티어 인스턴스) 로 deploy 하다가 서버가 계속 죽는 현상이 나서 메모리 사용량을 찍어봤더니 인스턴스가 버거워 하는 것을 확인했다..사용중인 인스턴스를 '중지' (절대 종료하면 안된다 인스턴스가 삭제됨) 한 후에, 인스턴스 설정 > 인스턴스 유형 변경을 선택한다. 원하는 인스턴스 유형을 선택하고 적용시킨다. 4GB 정도면 충분하겠지..! 적용이 성공되면 다음과 같다 재부팅 후 airflow 실행을 해보니 이제 인스턴스가 어는 것도 없고 task 가 잘 실행된다!
최근 다양한 이기종 Database에서 Cloud 환경의 Delta Lake 로의 데이터 마이그레이션 일을 spark 로 진행하고 있다. JDBC 연결로 Spark 에서 데이터 read & write 작업을 할 때 발생했던 data skew 현상과 이를 트러블 슈팅했던 경험을 공유하고자 한다. Spark JDBC 연결 spark 에서 jdbc 연결을 통해 Database 의 table 데이터를 read 하는 작업은 아래와 같다. 별다른 추가 옵션을 주지 않고 spark 가 알아서 분산 처리를 할 것을 기대하고 다음과 같은 코드로 데이터를 읽어오는 작업을 하였다. 사용한 인스턴스는 Databricks 에서 aws ec2 r5.large 인스턴스 (core 2, 16GB) 로 driver node, work..
현 회사에서 데이터 엔지니어링 프로젝트를 위해 Databricks 플랫폼을 구축하고 파이프라인을 개발하는 일을 담당하고 있다. Databricks의 기능에 대해 한국어로 잘 정리된 기술 블로그가 보이지 않아서, Databricks를 어떻게 하면 제대로 쓸 수 있을지 투고해보려고 한다. Databricks 플랫폼에서 데이터 카탈로그에 해당하는 Unity Catalog 에 대해 정리해보려고 한다. 데이터 카탈로그 , 그 이전에 데이터 가버넌스 우선 데이터 가버넌스라는 개념은 조직 내에 데이터 자산의 품질, 보안, 접근성, 일관성을 관리하고 제어하는 정책들을 말한다. 데이터 가버넌스에는 다음과 같은 활동들이 있다. 데이터 표준과 정책 설정 데이터 품질 관리 데이터 및 개인 정보 보호 데이터 관리에 대한 책임 ..
Lambda 함수를 trigger 거는 방법에는 여러가지가 있지만 그중에서도 AWS 외부에서 lambda 에 요청을 보내기 위해서 API Gateway 와 연동하게 되면, lambda 함수를 빠르게 서버리스로 배포할 수 있다. API Gateway 와 Lambda 서비스를 사용하여 Serverless HTTP API 를 배포하는 방법에 대해 알아보자 우선 AWS 에서 API Gateway > Create API 를 선택하고, HTTP API 타입을 선택한다. 생성하게 될 HTTP API 이름을 적는다. HTTP method 를 여기서도 정의할 수 있지만 우선 넘어가고, 나중에 한번에 정의하도록 한다. API 배포를 관리하기 위한 Stage 이름을 정한다. 구성 내용을 확인하고 Create 버튼을 눌러 A..
미루고 미루다가 SAA 시험을 드디어 봤다. 17만원짜리 시험 떨어지면 어떡하나 했는데 다행히 790점대로 무난히 합격하였다. 1. 준비기간 : 3 ~ 4개월 - 준비 기간의 경우 회사를 다니면서 준비하느라 집중적으로 하루에 N시간씩 쏟지는 못했다 - 시간을 많이 쓸 수 있는 상황이거나 AWS 경험이 많다면 좀 더 짧은 기간에 준비할 수 있을 것 같다. - Cloud Practitioner 는 따지 않았으며, 바로 SAA 준비를 시작했다. 2. 준비 방법 1) Udemy SAA-03 강의 저렴한 가격에 강의 퀄리티, ppt 퀄리티도 다 마음에 들었다. 다만 꼼꼼히 듣는데 시간이 꽤 걸린다. 영어자막으로 보긴했는데 한국어 자막도 지원하는 것으로 알고 있다. 강의를 찾는다면 추천 ! Udemy 는 캐싱을 해..
AWS 인스턴스 개인 작업할 때는 t2시리즈..(프리티어가 여기에 속한다) 만 주로 사용했었으나 실무를 하다보니 가격 정책과 인스턴스 유형을 좀 잘 알아야 겠다는 생각이 들어 정리해보게 되었다. 인스턴스 비용을 절약하자 가격 정책 AWS 가격 정책은 다음과같이 3가지가 있으며, 각각의 종류는 case에 따라 유리한 정책이 달라진다. 1. 온디맨드(on demand) 인스턴스 정기 약정 없이 초 단위, 혹은 시간당 비용을 지불하게 된다. 바로바로 배포가 가능하여 수요에 맞게 빠르게 사용할 수 있다. 12개월 이내의 기간동안 서버를 운영하는 경우 유리하다 2. 예약 인스턴스 온디맨드 인스턴스에 비해 최대 72%까지 할인 혜택을 받을 수 있다. 1년 이상의 기간 동안 서버를 운영할 계획이라면, 1 ~ 3 년 ..
minjiwoo
'AWS' 태그의 글 목록