Amazon Athena
- S3에 저장된 객체에 대해 분석을 수행하는 서버리스 쿼리 서비스로 SQL 언어로 파일들을 쿼리하지만 로드할 필요가 없으며
파일들은 S3에 있고 Athena가 알아서 해 줌 - 파일의 포맷은 CSV, JSON, ORC, Avro, Parquet 등으로 다양하며 Athena는 Presto 엔진 기반
- 사용자들이 데이터들을 S3에 로드하면 Athena는 데이터를 쿼리하고 분석
- 원한다면 Athena와 더불러 QuickSight와 같은 보고도 받아볼 수 있음
- Athena의 가격은 스캔된 데이터 TB 당 5달러이며 압축되거나 컬럼형으로 저장된 데이터를 사용하면 스캔양이 줄어 비용 절감
- 비즈니스 인텔리전스 분석, 보고, VPC나 ELB 로그의 Flow Logs 분석, CloudTrail 로그, 플랫폼 로드 등에 사용
- 또한 S3의 데이터를 쿼리해 서버 설정과 데이터의 변형 없이도 적절한 데이터 포맷을 설정함으로써
복잡한 쿼리를 직접 실행해 데이터를 특정할 수 있음
<Athena 실습>
- SQL 쿼리 언어를 사용해 S3에서 데이터 쿼리
Athena는 에디터이기 때문에 첫 번째 쿼리를 실행하기 전에 S3 내에 쿼리 결과 위치를 설정해야 하므로
S3에서 stephane-demo-athena-eu-central-1 버킷을 생성한 후 view setting에서 manage를 누르고 쿼리 결과 위치 지정
이 후 새로고침을 하고 사용 가능한 데이터베이스에 나만의 데이터베이스를 생성해야 함
이를 위해 S3에 S3 액세스 로그를 포함하고 있는 demo-s3-access-logs-stephane-2020이라는 버킷을 생성
그 후 athena-s3-access-logs.sql의 코드를 사용해 데이터베이스인 s3_access_logs_db 생성
다음으로는 버킷 로그를 나타낼 외부 테이블을 생성하는데 즉 이것은 적절한 액세스 로그를 생성하기 위핸 쿼리 유닛
이후 다시 새로고침을 하면 s3_access_logs_db에 mybuckets_logs라는 표가 생성되었고 여러 개의 컬럼이 나오게 됨
그런 후 select로 표를 보게 되면 열 개의 행이 반환되고 이 열 개의 행은 액세스 로그에 해당됨
- Athena를 통한 더욱 흥미로운 유형의 쿼리 실행
아무 작업도 하지 않으므로 데이터베이스를 설정하지도 프로비저닝을 한 것도 아니고 전부 서버리스 상태
이 모든 쿼리들은 Athena service를 통해 S3 버킷 내의 데이터에 직접 실행되므로 아주 강력함
이번 쿼리는 httpstatis 개수를 세기 위한 count와 표에서 GROUP BY를 하는 고급 SQL
이를 통해 상태 코드에 대한 보고 로그를 보여주고 발생 횟수도 보여주므로 GET 404는 49번 발생했음을 알 수 있음
즉 표를 이용해 쿼리 유형을 비저닝하거나 어떤 요청이 발생하지 않았는지, 어떤 버킷에서 성공하지 못했는지를 알 수 있어 유용
마지막으로 몇몇 403 에러의 경우 허가되지 않은 접근이므로 권한이 없는 사람이 접근해 수상하다고 보고하기 위해 알기 원해
쿼리를 수행하면 403 에러를 일으킨 쿼리들을 보여주게 됨
- 최근 쿼리와 저장된 쿼리 확인 가능 또한 쿼리 결과를 대상 버킷에 암호화하기 위해 설정 편집 가능
'Cloud > AWS' 카테고리의 다른 글
[SAA] CloudFront 개요 (0) | 2022.03.29 |
---|---|
[SAA] S3 잠금 정책 및 Glacier 볼트 잠금 (0) | 2022.03.28 |
[SAA] S3 요청자 지불 (0) | 2022.03.28 |
[SAA] S3 이벤트 알림 (0) | 2022.03.28 |
[SAA] S3 셀렉트 & Glacier Select (0) | 2022.03.28 |