본문 바로가기

[Project] 프로젝트 삽질기53 (feat 검색 로그 구축 3)

어가며

저번 글에서 검색 로그 구축을 위한 AWS 환경 세팅 방식과 로그 적재 방식에 대해 알아봤습니다. 이번 글에서는 적재한 로그 데이터를 분석하기 위한 방식에 대해 정리해보려 합니다. 바로 시작하겠습니다. 

 

 

 

 

 

 


 

 

 

 

 

데이터 분석 아키텍처

데이터 분석 아키텍처 위처럼 구성했습니다. AWS Glue Crawler를 활용하여 데이터가 모여 있는 S3버킷에 저장된 로그의 스키마를 생성했습니다. 그 후 AWS Athena를 활용하여 Glue Crawler를 활용해서 카탈로그화 한 데이터를 SQL문을 활용하여 조회하는 과정을 구축했습니다. 

 

그럼 Glue를 활용하여 스키마를 생성하고, Athena를 활용하여 데이터를 조회하는 과정을 어떻게 구현할 수 있는지에 대해 알아보겠습니다. 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Glue

Glue AWS에 저장된 데이터를 자동 검색하고 분류하여 빠르게 분석이 가능하며, ETL 코드를 추천 및 생성해 주는 서비스입니다. 완전 관리형 ETL 서비스이며, 서버리스여서 관리할 인프라가 없다는 특징이 있습니다. Glue 서비스 안에는 여러 서비스들이 존재하지만, 여기서는 Crawlers를 활용하겠습니다. 

 

Glue Crawlers를 통해 자동으로 데이터를 검색하고 스키마를 카탈로그에 저장하는 프로세스를 구축하겠습니다. 카탈로그를 통해 Athena에서 즉시 쿼리를 할 수 있도록 환경을 구축하겠습니다.

 

 

 

 

먼저 AWS 검색 창에 Glue라고 입력해 준 다음, Data Catalog 토글 안에 있는 Crawlers를 클릭해 줍니다.

 

 

 

 

그 후 Create crawler 버튼을 클릭합니다.

 

 

S3에 저장된 검색 로그 데이터를 자동으로 분류하여 스키마를 생성하고, 이를 카탈로그에 저장하기 위해 이름은 Search-Log-Crawler로 설정했습니다. 

 

그리고 이 화면에서, 크롤링할 데이터 소스를 연결해줘야 합니다. 

 

 

검색 로그가 저장된 S3를 S3 path로 연결해 주시면 됩니다. 

 

 

다음은 crawler 실행을 위한 IAM role을 생성해줘야 합니다. 만약 별도 role이 존재하지 않는다면, create new IAM role 버튼을 클릭해 주시면 됩니다. 

 

그다음, 카탈로그화한 데이터를 저장할 데이터베이스를 선택하는 화면이 나옵니다. 아직 데이터베이스를 만들지 않았으니, Add database 버튼을 클릭해 줍니다.

 

 

 

저는 카탈로그화 할 데이터를 search-log 이름의 데이터베이스에 저장하기 위해 이름을 search-log로 설정했습니다. 이를 통해 S3에 저장된 데이터를 search-log 데이터베이스에 저장할 수 있습니다. 

 

 

데이터베이스를 생성했다면, Target database에 방금 생성한 search-log를 선택할 수 있습니다. Crawler schedule은 1시간마다 실행되도록 구성했습니다. 모두 다 완료됐다면 Next 버튼을 클릭합니다. 

 

모두 구성이 완료됐다면, 1시간마다 S3의 데이터를 카탈로그화 시키는 크롤러가 완성됐습니다. 그럼 카탈로그화한 데이터를 Athena를 활용해서 데이터를 조회할 수 있는 방법을 알아보고 이를 구현해 보겠습니다. 

 

 

 

 

 

 

 


 

 

 

 

 

Athena

Athena 표준 SQL을 사용해 S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스입니다. Athena도 Glue와 마찬가지로 서버리스 서비스이므로 관리할 인프라가 없고, 실행한 쿼리에 대해서만 비용을 지불한다는 특징이 있습니다. 그럼 Athena를 활용해서 카탈로그화한 데이터를 조회하는 쿼리를 실행해 보겠습니다.

 

 

AWS Athena로 들어가서, 쿼리 편집기 버튼을 클릭합니다.

 

 

그 후 Glue Crawler 설정 과정에서 생성한 데이터베이스를 선택합니다. 

 

 

 

 

 

그 후, SQL 쿼리문을 활용하여 조회하고 싶은 데이터를 찾습니다. 저는 언제 어떤 키워드가 검색됐는지를 알고 싶어 임시 쿼리를 작성하고 실행 버튼을 클릭했을 때, 쿼리 결과로 원하는 데이터를 출력할 수 있었습니다. 

 

이렇게 Athena를 활용해서 카탈로그화한 데이터를 조회하는 과정까지 함께 진행해 봤습니다. 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

마치며

지금까지 적재한 로그 데이터를 추출하는 과정에 대해 알아봤습니다. 다음 글에서는 AWS Athena를 통해 쿼리 한 데이터를 QuickSight를 활용해서 데이터 시각화를 하는 방법에 대해 알아보겠습니다. 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

출처

 

Workshop Studio

 

catalog.us-east-1.prod.workshops.aws