이 프로젝트를 통해 실제 서비스에서 발생할 수 있는 데이터를 가정해보기 위해 DRF를 활용해서 프론트엔드의 구현 없이 Rest API형태의 백엔드를 구현해보고 API요청(글의 생성, 수정,삭제)으로 발생한 로그를 수집하여 Json형태로 해싱, 암호화, 압축을 적용해서 추출합니다.
추가적으로 Amazon EC2에 가상 컴퓨팅 서비스를 사용하여 웹서버(nginx)를 구축했고, gunicorn과 django 프로젝트를 올려서 배포하였습니다.
실제 이용자가 없기 때문에, 파이썬의 requests 라이브러리를 사용하여 Bot을 구현했습니다.
또한 웹서버로 사용되고있는 리눅스 서버에 크론탭을 활용하여 1시간마다 Bot을 활성화해서 로그 데이터를 수집하고, 이렇게 수집된 데이터를 변환하여 Amazon S3에 이용자가 적은시간은 오전 04:00 하루에 한 번 적재하는 흐름의 ETL 파이프라인을 구축하였습니다.
스케줄링은 Airflow로 대체될 수 있기 때문에, Airflow를 통해 워크플로우를 정의하여 효율적인 관리를 도입해볼 예정입니다.
![](https://velog.velcdn.com/images/ggydo59/post/21357bf5-b330-4e85-a146-843a42999060/image.png)
![](https://velog.velcdn.com/images/ggydo59/post/462bc09e-4eee-4215-a767-574db06589ed/image.png)
![](https://velog.velcdn.com/images/ggydo59/post/f6c9c933-1b6f-4605-aba5-f77400d231ec/image.png)