반응형

 

 

 

 

그리스 신화에 등장하는 아테나는 지혜와 전략, 전쟁, 기술, 예술을 관장하는 신으로 알려져 있으며, 지식과 분석 능력을 상징한다.

이름에서 유래되었듯  Amazone Athena는 S3, DynamoDB 등의 데이터 소스에 대해서 SQL Query를 실행하여 데이터를 질의하고 분석할 수 있는 서비스이다.

 

 

 

 


Amazone Athena

 

  • Amazon Athena는 S3 등에 저장된 데이터 소스를 SQL을 사용해 간편하게 분석할 수 있는 대화식 쿼리 서비스이다.
  • 서버리스 서비스로 인프라를 관리할 필요가 없으며, 실행한 쿼리에 대해서만 비용이 청구된다.
  • Athena는 Glue에서 생성한 스키마를 사용하여 데이터를 효율적으로 조회할 수 있다.
  • 주요 사용 사례로 로그 필터링, 이벤트 데이터 분석 및 정보 추출 등이 있다.

 

 

  1. AWS Glue : 데이터의 형태를 분석하여 스키마를 자동으로 생성하고, 데이터 스토어 및 스트림 데이터를 분류·저장하는 완전 관리형 서비스이다.
    • SQL을 실행하기 위해서는 데이터의 테이블, 컬럼 등의 스키마가 정의되어 있어야 할 것이다. 따라서 단순히 S3의 데이터에 질의를 하기에는 스키마가 없기 때문에 이를 생성해 줄 도구가 필요하다.
    • Glue는 SQL 실행을 위해서 데이터 소스의 Object를 분석하여 이것을 테이블 형태로 스키마를 생성해주는 도구이다.
    • 과금이 상대적으로 많이 나오는 서비스 중 하나이므로 유의하자.
  2. AWS Athena : Glue로부터 생성된 스키마를 활용하여 S3 데이터에 대한 질의를 수행한다
  3. 질의 결과 저장 및 시각화 : 원본 데이터(Raw Data)에 대한 질의의 결과를 또 다른 S3 Bucket에 저장하거나, Grafana와 같은 시각화 서비스를 사용하여 분석 결과를 저장 및 제공할 수 있다.

 

 

 

 

 

 


Athena를 활용한 S3 로그 데이터 분석

 

지금부터 다음의 단계로 S3의 로그 데이터를 Athena로 분석하는 과정을 수행해 볼 예정이다.

 

1. S3 버킷 생성 및 로그 데이터 업로드

2. AWS Glue를 활용하여 로그 데이터에 대한 스키마 생성

3. AWS Athena를 활용하여 로그 데이터 질의 수행 및 또 다른 S3 버킷에 저장되도록 연동

 

 

 


1. S3 버킷 생성 및 로그 업로드

 

두 개의 버킷을 생성해준다.

  1. 로그 원본 데이터가 업로드 될 S3 버킷
  2. Athena의 쿼리 분석 결과가 업로드 될 S3 버킷

 

 

 

 

버킷에 로그 샘플을 업로드해주었다.

 

 

 

 


2. AWS Glue에서 스키마 생성

 

먼저 AWS Glue에서 Crawler를 생성해 줄 것이다. (Glue -> Cwalers -> Create Crawler)

 

AWS Glue의 크롤러(Crawler)는 스키마를 생성하기 위해서 S3에 저장된 데이터를 자동으로 스캔하여 스키마를 생성하는 도구이다.

 

  • S3, RDS, DynamoDB 등의 데이터 소스를 스캔하여 데이터를 분석
  • 데이터의 구조를 자동으로 분석하고 테이블을 생성

 

 

 


데이터 소스 지정

 

크롤러를 생성할 때 스키마를 생성할 대상 데이터 소스를 지정해주어야 한다.

 

우리는 S3를 사용할 것이기 때문에 유형으로 S3를 지정해주었으며, Path를 통해서 분석할 데이터소스의 경로를 지정해준다.

우리는 Source 버킷의 루트 경로를 지정해주어 버킷의 모든 데이터를 기반으로 스키마를 생성할 것이다.

 

 

 


IAM Role 생성 및 설정

 

Glue가 AWS S3를 비롯한 서비스들에 접근하기 위해서 IAM 역할을 설정해야 한다. 

Create new IAM Role을 통해서 자동으로 생성할 수 있다.

 

 

 


데이터베이스 생성 및 대상 DB 설정

 

원본 데이터를 분석하여 스키마를 생성한다는 것은 곧 데이터베이스를 생성하는 것과 마찬가지이다. 따라서 스키마를 생성할 대상 데이터베이스를 지정해주어야 한다.

 

Create Database를 사용하여 DB를 바로 생성 및 연동해주는 작업을 거쳤다.

 

대상 DB 설정
대상 DB로 설정할 데이터베이스 생성

 

 

 


크롤링 시작 및 테이블 생성

 

우측 상단에 Run Crawler를 통해서 크롤링을 시작한다. 해당 과정을 통해서 데이터를 분석하고, 데이터베이스에 분석된 스키마 테이블이 생성되게 된다.

 

 

Data Catalog -> Databases -> Tables에서 생성된 테이블을 확인할 수 있다.

 

 

 

 

 


3. AWS Athena에서 쿼리 수행

 

이제 S3의 스키마를 생성했기 때문에, 우리는 SQL을 통해서 질의를 수행할 수 있다.

"쿼리 편집기 탐색"을 통해서 쿼리를 수행해보자.

 

 


가장 먼저 쿼리 결과 위치를 지정해야 SQL을 수행할 수 있다.

우리는 또 다른 Analysis 전용 S3 버킷에 질의 결과를 저장하기로 했으므로 해당 버킷을 지정해주었다.

 

 

 


이제 쿼리를 수행하면 S3의 데이터에 대해서 질의 결과를 확인할 수 있다.

 

 

 

 

 

 


질의 결과는 지정한 S3 Analysis Bucket에 저장되는 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 


References

 

https://docs.aws.amazon.com/

 

https://docs.aws.amazon.com/

 

docs.aws.amazon.com

 

 

https://www.inflearn.com/course/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-aws-%EA%B8%B0%EC%B4%88

 

쉽게 설명하는 AWS 기초 강의 강의 | AWS 강의실 - 인프런

AWS 강의실 | , 안녕하세요. AWS 강의실입니다.AWS 공식 커뮤니티 빌더이자 2만명의 구독자를 보유한 AWS Only 강의 유튜브의 경험으로 AWS를 쉽게 알려드립니다.이 강의는AWS의 서비스 및 활용 지식을

www.inflearn.com

 

반응형

BELATED ARTICLES

more