본문 바로가기
AWS

[AWS] QuickSight로 S3 데이터 시각화하기

by z00h 2025. 4. 9.

 

이번에는 S3에 저장된데이터(member 테이블)를 QuickSight로 시각화하여 그래프 및 지도로 나타내 보려고 한다.

QuickSight가 무엇인지 알아보고 계정 생성 후 실습 진행과정을 정리하였다.

 

🔍 QuickSight란?

Amazon QuickSight는 AWS에서 제공하는 서버리스 비즈니스 인텔리전스(BI) 서비스로,

데이터를 시각화하고 대시보드를 통해 공유할 수 있는 클라우드 기반 도구이다.

 

✅ 주요 특징

서버리스 인프라 관리 필요 없이 사용 가능 (자동 확장)
SPICE 엔진 대용량 데이터를 메모리에 로딩해 빠른 분석 가능
다양한 데이터 소스 S3, Athena, RDS, Redshift, Aurora, Salesforce, Excel 등 연동
시각화 지원 표, 막대/선형/원형 차트, 지도 시각화 등 다양한 시각화 옵션
공유 기능 실시간으로 대시보드를 팀원들과 공유, 퍼블릭 링크도 생성 가능
ML 통합 이상 탐지(Anomaly Detection), 예측(Prediction) 등 머신러닝 기반 분석 제공

 

1. QuickSight 계정 생성

  1. AWS 콘솔 > QuickSight 검색 및 실행
  2. QuickSight 계정 생성

이메일 : AWS 이메일로 입력

리전 : 아시아 태평양(서울)

QuickSight 계정명 : 고유한 이름 으로 생성

 

 

S3, Athena로 실습을 진행하기에 두개만 활성화 해줬다.

 

 

**개인 학습용으로 진행하기에 반드시 하단 보고서 추가 옵션은 해제하도록 한다.

 

 

계정생성을 하면 QuickSight 콘솔페이지가 로드된다.

이제 QuickSight + Athena로 실습을 하기위해 S3 버킷에 CSV파일이 업로드 된 상태여야 한다.

아직 이 과정을 마치지 않았다면 해당포스팅을 참고(https://z00h.tistory.com/136)

 

 

 

2. QuickSight에서 Athena 연동하기

왼쪽 'Datasets' 탭으로 들어가서 우측 상단의 'New DataSet'을 클릭한다.

 

 

 

데이터 소스 선택

  • Athena 선택 → 이름 지정 (예: athena-member)
  • Athena Workgroup: 기본 값 사용 (또는 primary)
  • 연결하면 데이터베이스 목록이 자동으로 로드된다.

 

 

 

 

 

SPICE

Super-fast, Parallel, In-memory Calculation Engine
의 약자로, QuickSight에서 데이터를 메모리에 캐시해서 빠르게 시각화와 분석을 가능하게 해주는 엔진이다.

 

"Direct query" 는 쿼리할 때마다 Athena 요금 발생 가능성 있기때문에 SPICE로 실습해보도록 하겠다.

 

 

 

 

 

 

member테이블에서 지역별 회원 분포에 적합하게 시각화 해보도록 한다.

좌측 area 필드를 선택하니 지역별 회원분포를 바로 확인이 가능하다!

 

1. 막대그래프 시각화

 

 

 

 

 

2. 지도로 시각화

지도로 시각화 하기위해 S3에 저장된 'area'필드 값을 영문으로 update 해주었다. 

ex) 서울 -> Seoul, 부산 -> Busan

 

지도로 시각화하기 위해 기존 'area'필드의 String 타입을 "City타입으로 변환해주어야한다.

DataSet 설정으로 들어와 우측 상단 'Edit DataSet'를 클릭

 

 

 

String 타입 -> City 타입 변환

 

 

타입 변경후 우측 상단 'Save & Publish" 버튼 클릭

 

 

 

 

 

다시 시각화 화면으로 돌아와 "Points on map" 에서 "area"필드를 우측으로 드래그앤 드랍

 

 

 

하지만 현재 국가가 US로 지정되어있어 아무것도 뜨지 않았다.

City만으로 국가 매핑이 안되는듯 하여 CSV 파일에 "Country" 컬럼을 추가하고 타입을 "Country"로 바꾼 후 시도해 보도록 하겠다.

 

 

 

 

필드 추가 후 데이터 타입 변경 (String -> Country)

 

 

 

 

이때 "country"필드 값에 "Republic of Korea"로 저장했음에도 불구하고 시각화시 데이터 랜딩이 되지않아 

country필드 값을 변경하였다. (Republic of Korea -> South Korea)

 

 

CSV파일을 변경하지않고

Athena에서 기존 데이터셋인 memeber_v4 테이블에서 country 값만 바꿔주고 member_v4_updated 테이블을 생성해 DataSet에 연결해주었다.

CREATE TABLE member_v4_updated AS
SELECT 
  mid,
  fullname,
  email,
  password,
  nickname,
  area,
  phonenumber,
  CASE 
    WHEN country = 'Republic of Korea' THEN 'South Korea'
    ELSE country
  END AS country
FROM member_v4;

 

 

 

 

 

GEOSPATIAL : area

COLOR : country

위와 같이 설정을 하면 지도에서 한국의 Member 분포도를 확인 할 수있다!

 

 

 

데이터의 모수가 다소 적어 정교한 인사이트를 도출하긴 어렵지만 혼자 실습을 통해 QuickSight의 핵심 기능을 체험하고 전반적인 데이터 파이프라인과 대시보드 제작 과정을 경험해 볼 수 있는 좋은 기회였다.