[AWS Service] S3에 저장된 log Athena로 분석

2025. 1. 21. 16:49·AWS Service

이번 글에서는 S3에 저장된 로그를 Athena로 분석해보겠습니다. 시작하기 전에 Athena가 어떤 역할을 하는지 이해하는 것이 중요합니다. Athena는 Amazon S3에 저장된 데이터를 SQL로 바로 분석할 수 있는 서버리스 서비스입니다. 이 서비스를 활용하여 S3에 저장된 로그 데이터를 분석할 수 있습니다. 참고로 저는 KDA(Kinesis Data Analytics)를 사용하여 저장된 Access 로그를 분석할 예정입니다.

1. Athena 기본 설정

바로 SQL 문을 작성하기 전에 Athena에 기본적인 설정을 해야 합니다. Amazon Athena에 접속하여 setting에서 log가 저장되어 있는 S3를 선택합니다.

선택하였다면 먼저 DataBase를 생성하여야 합니다. 아래 SQL문을 사용하여 자신이 원하는 이름으로 DataBase를 생성합니다.

CREATE DATABASE logdb;

DataBase를 생성하였다면 이제 table을 생성해야 합니다. 아래 SQL문을 참고하여 생성하며 생성한 DataBase로 잘 선택하시고 실행합니다.

CREATE EXTERNAL TABLE IF NOT EXISTS access_logs (
    log string
)
PARTITIONED BY (year string, month string, day string)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES ('serialization.format' = '1')
LOCATION 's3://s3-origin-lee0410/';

실행 후 Access Log를 날짜별로 구분하기 위해 수동으로 파티션을 추가해야 합니다. 아래 명령어를 참고하여 파티션을 추가합니다.

ALTER TABLE access_logs ADD PARTITION (year='2025', month='01', day='21') LOCATION 's3://s3-origin-lee0410/2025/01/21/06/';

 

2. Access Log 분석

기본 설정이 끝났다면 SQL문을 작성하여 Accesss Log를 분석할 수 있습니다. 먼저 테스트를 위해 아래 SQL문을 사용하여 모든 값을 불러옵니다. 

SELECT * FROM access_logs;

정상적으로 값을 가져온다면 아래 SQL문을 사용하여 2025년 1월 21일 log만 가져올 수도 있습니다.

SELECT * 
FROM access_logs
WHERE year='2025' AND month='01' AND day='21';

마무리

오늘은 S3에 저장된 log를 athena를 통해 분석해봤습니다. SQL를 더 복잡하게 사용할 수 있지만 이번 글의 목적과는 다르기 때문에 간단한 SQL문을 사용하여 분석하였습니다. 다음 글에서는 Macie를 사용하여 S3 버킷에 저장된 데이터를 분석해보겠습니다. 읽어주셔서 감사합니다.

저작자표시 비영리 변경금지 (새창열림)

'AWS Service' 카테고리의 다른 글

[AWS Service] Client VPN을 사용하여 Private API Gateway Access  (0) 2025.01.22
[AWS Service] Amazon Macie를 사용하여 S3 데이터 분석  (0) 2025.01.21
[AWS Service] Fluent-Bit로 Cloudwatch에 Log 전송  (0) 2025.01.21
[AWS Service] Openssl을 사용해서 Client VPN 연결  (0) 2025.01.03
[AWS Service] AWS App Runner로 Application 배포  (2) 2024.10.22
'AWS Service' 카테고리의 다른 글
  • [AWS Service] Client VPN을 사용하여 Private API Gateway Access
  • [AWS Service] Amazon Macie를 사용하여 S3 데이터 분석
  • [AWS Service] Fluent-Bit로 Cloudwatch에 Log 전송
  • [AWS Service] Openssl을 사용해서 Client VPN 연결
dml113
dml113
dml113의 AWS 이야기
  • dml113
    Cloud
    dml113
  • 전체
    오늘
    어제
    • 분류 전체보기 (34)
      • Project (0)
      • Kubernetes (17)
        • CNCF (12)
        • TroubleShooting (1)
      • AWS Service (9)
      • Linux (3)
      • Github (2)
      • Production Traffic (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dml113
[AWS Service] S3에 저장된 log Athena로 분석
상단으로

티스토리툴바