Amazon Quicksight & AWS CloudTrail
AWS에는 CloudTrail이란 AWS 계정에서의 활동을 기록해주는 서비스가 있습니다.
- AWS CloudTrail 이란? : https://aws.amazon.com/ko/cloudtrail/
API 로그 - 표준화된 보안 로깅 서비스 - AWS CloudTrail - AWS
aws.amazon.com
해당 서비스를 활용해 AWS 계정 내의 운영 및 위험 감사, 거버넌스 및 규정 준수 등에 도움을 받는 사용자도 많지만, CloudTrail 내에서 json 형태로 기록되는 점, 사용자 입장에서 불필요 하다 느껴질 정보도 남는다는 점, 한 눈에 보기 어렵다는 점 등의 불편함을 느끼는 사용자도 많습니다.
이번 시간에는 AWS에서 제공하는 BI (Business intelligence) 서비스인 Amazon QuickSight를 사용해 CloudTrail 이벤트를 대시보드 형태로 원하는 지표만 모니터링 해보도록 하겠습니다.
먼저, Amazon QuickSight란 클라우드 규모의 BI 서비스로, 조직 내 모든 직원이 언제든 어느 디바이스에서나 자신의 데이터를 사용해 손쉽게 시각화를 구축하고, 임시 분석을 수행하며, 신속하게 비즈니스 통찰력을 확보할 수 있는 서비스 입니다. 서비스에 대한 보다 자세한 내용은 아래 링크를 통해 확인 할 수 있습니다.
- Amazon Quicksight란? : https://aws.amazon.com/ko/quicksight/
Amazon QuickSight - 비즈니스 인텔리전스 서비스 - Amazon Web Services
개발자는 강력한 AWS API를 사용한 앱에서 수십만 명의 사용자에게 임베디드 분석을 배포하고 그 크기를 조정할 수 있습니다. 웹, 모바일, 이메일 또는 임베디드 애플리케이션에서 데이터 시각화
aws.amazon.com
실습 아키텍처 및 동작 과정
실습 아키텍처는 아래와 같습니다.
① : CloudTrail 추적 생성을 통해 이벤트를 S3 로 저장
② : 저장된 데이터를 Glue Data Catalog를 통해 Athena에서 분석 가능하도록 테이블 및 뷰 생성
③ : Athena에서 쿼리를 실행해 정상 작동 확인
④ : QuickSight에서 Athena를 데이터 소스로 하는 데이터 분석 및 대시보드 생성
위 아키텍처 를 바탕으로 실습을 진행해 보도록 하겠습니다. (실습은 서울 리전에서 진행)
실습 진행
1. CloudTrail 추적 생성
1.1 CloudTrail 콘솔 접속 후 추적 생성 버튼 클릭합니다. (CloudTrail 자체는 기본적으로 활성화 돼있습니다.)
1.2 원하는 추적 이름 입력 후 추적 생성 버튼 클릭합니다.
- CloudTrail 은 기본적으로 최대 90일 간의 활동에 대한 기록만 보관됩니다.
추적 생성을 통해 그 이상의 활동 기록을 S3에 보관할 수 있습니다.
1.3 생성된 추적은 CloudTrial - 추적 탭에서 확인 및 설정 편집이 가능합니다.
2. Athena 테이블 생성
2.1 CloudTrail - 이벤트 기록 탭에서 Athena 테이블 생성 버튼을 클릭합니다.
2.2 스토리지 위치에 1번 단계에서 생성된 S3 버킷을 선택 후 테이블 생성 버튼을 클릭합니다.
2.3 생성된 테이블은 Athena 콘솔 및 Glue Data Catalog에서 확인 가능합니다.
3. Athena 에서 샘플 쿼리 실행 해보기
3.1 Athena 에서 아래와 같이 샘플 쿼리를 실행함으로써 정상적인 테이블 생성을 확인합니다.
4. QuickSight 가입
4.1 서비스 검색 에서 QuickSight를 검색 후 접속한 뒤 Sign up for QuickSight 버튼을 클릭합니다.
4.2 원하는 QuickSight Edition을 선택 후 다음 단계로 진행합니다.
- QuickSight는 크게 Standard 및 Enterprise Edition을 제공합니다.
- 이번 실습에선 Enterprise Edition 으로 진행하며, Editon별 지원 범위 차이는 아래 링크를 통해 확인하실 수 있습니다.
■ QuickSight Edition : https://docs.aws.amazon.com/ko_kr/quicksight/latest/user/editions.html
다양한 아마존 에디션QuickSight - 아마존 QuickSight
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
4.3 원하는 인증 방법, 리전, 계정 정보 입력 후 나머지는 기본 값으로 둔 후 완료 버튼 클릭합니다.
5. QuickSight 데이터 세트 및 분석 생성
5.1 QuickSight 콘솔 에서 새 데이터 세트 버튼 클릭합니다.
5.2 Athena를 데이터 세트로 선택 -> 데이터 원본 이름을 원하는 값으로 입력 후 데이터 원본 생성 버튼 클릭합니다.
5.3 아래와 같이 카탈로그와 데이터베이스, 테이블을 선택 후 선택 버튼 클릭합니다.
5.4 데이터 수집 방식 선택 후 Visualize 버튼 클릭합니다.
- SPICE 로 데이터를 가져오는 방식과 직접 쿼리를 통해 가져오는 방식의 차이는 아래와 같습니다.
■ SPICE
- 대규모 데이터 세트에서 고급 계산을 수행하는 데 사용되는 강력한 메모리 엔진입니다.
- 시각화하는 데이터는 메모리에 저장되므로 매번 원본 데이터 소스를 쿼리한 후 검색하는 것이 더 빠르고 쉽습니다.
- 결과적으로 대시보드 새로 고침이 더 빨라지고 데이터 소스에 대한 로드가 발생하지 않습니다.
- SPICE 용량은 각 AWS 지역에 별도로 할당됩니다.
- 전체 새로 고침 및 증분 데이터 새로 고침이 가능합니다.
■ 직접 쿼리
- 데이터 세트 또는 대시보드와 함께 사용하면 백엔드 소스에서 직접 가져옵니다.
- 직접 쿼리 모드에서는 사용자가 데이터를 볼 때마다 데이터 원본에서 모든 레코드를 자동으로 가져오므로
사용자는 데이터 새로 고침을 명시적으로 설정할 필요가 없습니다.
5.5 분석 원하는 지표를 클릭하여 데이터 분석을 진행합니다.
6. Athena View 를 통한 데이터 수정 및 대시보드 생성
위와 같이 분석을 진행 할 경우 몇가지 단점이 있습니다.
이벤트 발생 시간을 나타내는 eventtime 값이 String 형식이기에 날짜별 분류가 어려운 점과 불필요한 지표가 많다는 점인데요.
그러한 점들을 개선 하기 위해 Athena의 논리적 테이블인 View를 만들어 해당 View를 데이터세트로 하는 대시보드를 만들어 보도록 하겠습니다.
- Athena View : https://docs.aws.amazon.com/ko_kr/athena/latest/ug/views.html
뷰 작업 - Amazon Athena
id 및 name이라는 열 2개가 있는 employees 테이블과, id 및 salary라는 열 2개가 있는 salaries 테이블을 가정하겠습니다. 이 예에서는 테이블 employees 및 salaries에서 급여에 매핑된 ID 목록을 가져오는 SELECT
docs.aws.amazon.com
6.1 Athena 콘솔 접속 후 아래와 같이 View 생성 쿼리를 실행합니다.
- 쿼리 예시
■ 아래 쿼리 예시는 CloudTrail 의 컬럼 값 중 일부를 선택해 view를 생성하는 것으로, 원하는 컬럼을 선택하여 view를
생성하시면 됩니다.
CREATE VIEW "cloudtrail_logs_view" AS
SELECT eventname "Event Name"
, awsregion "AWS Region"
, sourceipaddress "SourceIP"
, date(from_iso8601_timestamp("eventtime")) AS "Event Time"
FROM
"Athena 테이블 명"
6.2 5번 단계의 데이터 세트 생성 과정 반복 진행합니다. (테이블 선택 시 6.1에서 생성한 view를 선택합니다.)
6.3 분석 원하는 지표를 클릭하여 데이터 분석을 진행합니다.
6.4 우측 상단의 대시보드 게시 클릭 후 원하는 대시보드 이름을 입력하여 대시보드를 생성합니다.
7. 대시보드 확인
7.1 생성한 대시보드는 QuickSight 메인 페이지의 대시보드 탭에서 확인 가능합니다.
이상으로 QuickSight를 사용해 CloudTrail 이벤트를 대시보드 형태로 모니터링 해봤습니다.
QuickSight는 이번 실습에서 데이터 소스로 사용된 Athena 뿐 아니라 RDS, Redshift, S3 등 다양한 데이터와 연결하여 사용할 수 있으니, 해당 게시물을 참고하여 한 번 쯤 사용해 보시면 좋을 듯 합니다.
감사합니다.
※ 이 글은 작성자의 회사 블로그에도 게재되었습니다.
'AWS' 카테고리의 다른 글
AWS 퍼블릭 IPv4 요금 부과에 따른 퍼블릭 IPv4 사용량 분석하기 (0) | 2024.02.20 |
---|---|
AWS User Notifications 로 AWS Management Console 로그인 알람 받기 (0) | 2023.12.19 |
AWS Elemental MediaConvert로 비디오 트랜스코딩 자동화 해보기 (0) | 2023.08.03 |
Amazon Personalize를 활용한 실시간 추천 사이트 만들기 (0) | 2023.07.05 |
AWS CodeSeries를 활용한 CI/CD 구축 (0) | 2023.07.03 |