끄적이는 보송

[AWS] QuickSight 란 본문

STUDY/AWS

[AWS] QuickSight 란

끄적이는 보송 2022. 4. 10. 16:44
반응형

Amazon QuickSight에 대해서 공부하면서 기록 차원에 정리해 남겨본다. 내가 느끼기로는 AWS를 이용 중이고 싼 값에 BI 솔루션을 찾고 있다면 QuickSight도 좋은 솔루션이 될 수 있을 것 같다. Tableau 만큼의 퍼포먼스를 보여줄 수 있을지 아직 모르겠지만 가격적인 측면에서 확실히 이점이 있어 보이는 서비스다.

 

 

Amazon QuickSight 란

간단하게 말하면 aws의 서버리스 BI 솔루션이다. BI 솔루션이란 Business Intelligence의 약자로 수많은 데이터를 가공하여 현황 및 조사한 자료를 한눈에 볼 수 있도록 하여 기업의 더 나은 의사결정을 내릴 수 있도록 도와주는 서비스다. QuickSight는 서버리스인 만큼 서비스를 위한 별도의 서버도 필요 없고 운영/유지보수도 aws에서 관리해준다.

 

QuickSight의 Edition 종류

QuickSight는 Standard와 Enterprise로 두 가지 옵션으로 나뉘는데 Enterprise가 더 지원하는 기능도 많고 더 비싸다. 주의할 점은 'Standard > Enterprise'로 전환은 가능하지만 'Enterprise > Standard' 전환은 불가능하다. 이유는 Enterprise의 기능을 Standard에서 지원/호환이 안되기 때문이라고 한다.

 

 

QuickSight의 사용자 유형

Admin, Author, Reader 이렇게 총 3가지로 분류된다. 참고로 Stardard Edition은 Reader 사용자가 없다
Admin : QuickSight 전반적인 관리자 역할. (사용자는 몇 명으로 할지, 스파이스 엔진 메모리 양은 얼마나 할지 등...)
Author : QuickSight 대시보드에 자료를 출력할 dataset 관리하는 분석가 역할. (테이블 쿼리/조인 및 대시보드 생성 등...)
Reader : 준비된 QuickSight의 대시보드를 눈으로 보는 최종 사용자

 

 

QuickSight Enterprise Edition 만의 기능

QuickSight Q라는 ML 인사이트 기능을 통해 매출이 어떻게 증가하는 등 안내를 받을 수 있다.
보고서 형태의 대시보드를 만들어 담당자에게 이메일 보고서 스케줄링 가능하다.
Microsoft AD를 사용해 사용자를 관리할 수 있다.
row-level security (RLS) 기능으로 행 수준으로 권한을 나눠 사용자 별로 봐야 하는 데이터 수준을 분리할 수 있다 etc...

 

 

QuickSight 가 지원하는 데이터 소스

퀵 사이트는 다양한 데이터 소스를 지원한다. 위에 언급한 것처럼 AWS 리소스와 연동되는 것은 물론이거니와 On-Premise와 연동할 수도 있다. QuckSight와 On-Premise를 연결할 경우, site-to-site VPN 혹은 DX를 활용하는 것이 바람직하다. 일반적으로 DB는 인터넷 환경에 노출되어 있으면 안 되기 때문이다. QuickSight가 지원하는 DB는 다음 링크를 통해 확인할 수 있다. (https://docs.aws.amazon.com/quicksight/latest/user/supported-data-sources.html)

 

추가로 QuickSight가 지원하는 웹 브라우저는 다음 링크를 통해 확인할 수 있다.  (https://docs.aws.amazon.com/quicksight/latest/user/supported-browsers.html)

 

 

QuickSight  통신 환경 및 보안

QuickSight는 웹 어플리케이션으로 서비스를 제공하며, 우리가 사용하는 일반적인 VPC가 아닌 별도의 전용 호스트에서 호스팅 된다. 즉, Client(우리)의 호스트에서 배포하는 것이 아닌, 지역 공용 엔드포인트를 통해 서비스에 액세스 한다. Public 인터넷 통신이지만 보안 인터넷(SSL)을 통해 액세스 한다고 한다. QuickSight가 데이터 원본에 접속하려면 QuickSight 서비스가 사용하는 Public IP주소를 허용해야 하며 관련 정보는 다음 링크를 통해 확인할 수 있다. (https://docs.aws.amazon.com/quicksight/latest/user/regions.html)

 

하지만 QuickSight와 데이터 소스 간의 인터넷 통신이 보호되어 안전하다는 것이지, 인터넷 환경에 노출되어 있는 데이터 소스의 보안은 또 별개의 문제다. AWS 데이터 소스(resource on aws VPC)와 QuickSight가 같은 리전에 위치해 있다면, QuickSight용 전용 VPC Endpoint를 서로 간의 요청을 라우팅 할 수 있다. QuickSight와 VPC 간 연결을 위해 ENI를 하나 생성하여, 이 ENI가 VPC 안에 있는 데이터 소스와 QuickSight 간의 네트워크 트래픽을 라우팅 해주는 방식이다. 그렇게 해서 인터넷이 닿지 않는 사설망에 있는 데이터에 QuickSight는 액세스 하는 것이다.

 

나아가 위의 방식으로 On-Premise와 연결할 수 있다.  물론 이 방법은 VPC와 On-Premise 사이에 Site-to-Site VPN 혹은 DX 설정되어있어야 한다. 이 이외의 보안 요소는 아마존에서 관리하며, 여러 보안 컴플라이언스를 충족했다고 한다. (https://docs.aws.amazon.com/ko_kr/quicksight/latest/user/QS-compliance.html)

 

 

QuickSight  대시보드를 볼 수 있는 사용자

QuickSight의 어떤 Edition을 사용하고 있는지, 관리자가 어떻게 관리하는지에 따라 달라질 수 있다. IAM 유저로 관리할 수도 Microsoft AD로 사용자를 관리할 수도 있다. 그렇다면 QuickSight 또는 AWS와 전혀 관련 없는 쌩판 남도 볼 수 있을까? 결론은 가능하다.

 

Pre-Signed URL처럼 관리자가 공유하고 싶은 대시보드를 지정해 Unique URL을 생성하면, 누구든지 그 링크를 통해 대시보드를 볼 수 있다. 다만 조건이 있는데, 링크 생성 시점을 기준으로 만의 데이터를 볼 수 있으며(real time update가 아니다) 링크는 최대 3개월까지 유효하다는 점이다.

 

 

QuickSight 커스터마이징

QuickSight는 코드 베이스로 관리할 수 있다. 아마존은 JAVA SDK를 제공하며, 이를 활용해 호출하면 QuickSight 대시보드를 포탈에 임베딩 할 수 있다. 임베딩을 위한 별도의 서버는 필요하지 않다. 사용자가 자주 유입되는 포탈에 임베디드 하여 QuickSight를 볼 수 있도록 할 수 있다.

 

NFL은 QuickSight를 포탈에 임베딩 한 좋은 예다. NFL은 작성된 대시보드를 임베딩 한 것이 아니라 작성하는 페이지를 임베딩 했다. 임베딩을 위한 간략한 순서를 설명하자면, QuickSight 대시보드 생성 > AWS 권한 생성 > 애플리케이션 서버에서 AWS SDK를 이용해 권한을 받아와 Signed URL 생성 > 인가된 Client 접속... 정도가 되겠다. 다음 링크를 통해 직접 확인할 수 있다. (https://nextgenstats.nfl.com/stats/top-plays/fastest-ball-carriers)

 

NGS | NFL Next Gen Stats

 

nextgenstats.nfl.com

 

 

QuickSight  성능

QuickSight는 별도 인스턴스 타입이 없다. 사용자에 따른 부하에 자동으로 내부 확장되는 방식이다. 동시 사용자, 더 복잡한 대시보드, 지리적 배포, 고가용성 문제없이 하나의 대시보드를 위해 여러 지역에서 HA 구성으로 서비스가 운영된다.  모든 것은 aws에서 관리하며 데이터와 사용량이 많아도 일반적인 성능을 보여준다. QuickSight가 데이터를 가져와 대시보드를 구성하기까지 두 가지 있다. 

 

1. 데이터를 SPICE 엔진에 가져오고 SPICE 엔진에서 대시보드를 보여준다.

2. 데이터 소스에서 바로 대시보드로 보여준다.

 

먼저 SPICE에 대해서 설명하자면, SPICE란 QuickSight 클라우드 전용으로 개발된 컬럼 기반 스토리지이다. SPICE가 대략 어떻게 활용되는지 설명하자면 다음과 같다.

 

 

QuickSight는 데이터 소스가 어디건 SPICE라는 메모리 엔진에 올려놓을 수 있다 (물론 SPICE도 과금이 있다). 그리고 메모리에 적재되어 있는 상태에서 데이터를 대시보드로 보여주는 형태이며 대화형 메모리이므로 사용자가 어떤 항목에 대해서 대시보드를 구성해도 빠를게 대응이 가능하다. 일반적으로 SPICE를 활용한다면, 대시보드에 올라가는 데이터를 최종적으로 선별하여 파이프라인을 가져오고, 쿼리를 이용해 마지막으로 대시보드에 올릴 데이터를 걸러 스파이스에 올리게 된다. (참고로 SPICE도 AZ 개념으로 내부적으로 이중화되어있다)

 

어쨌거나 1번이 하고 싶다면, SPICE 엔진에서 얼마만큼의 주기로 데이터를 가져올 것인지 Refresh 관련 설정을 해줘야 한다. 변화된 데이터를 SPICE는 리얼타임으로 업데이트하지 않기 때문이다. 예를 들어 일일 매출용 보고서라면 하루에 한 번이면 되니, 대략적으로 12시간에 한 번씩 데이터를 갱신하겠다...라는 설정도 나쁘지 않을 듯하다. 정리하자면 SPICE는 실시간은 아니지만 빠르다

 

 

QuickSight의 과금

과금 관련하여 자세한 것은 공식 도큐먼트를 참고하자(2022.04.10 기준). https://aws.amazon.com/ko/quicksight/pricing/

 

Amazon QuickSight 요금 - 비즈니스 인텔리전스 서비스 - Amazon Web Services

작성자 작성자는 대시보드를 생성하고 계정 내 다른 사용자와 공유할 수 있습니다. Q를 통해 작성자는 단순한 질문을 던져 데이터를 간단하게 탐색하고, 인증된 답변을 설정하며, Q를 정교하게

aws.amazon.com

밑의 과금 체계를 보면 '리더 : 0.30 USD/세션 최대 5 USD 최대/월' 이라는데 무슨 소리인지 과금체계가 조금 헷갈리는 부분이 있어 추가 설명 남긴다. 

Reader의 세션당 $0.3이며 아무리 많이 사용해도 최대 $5를 넘어가지 않는다는 말이다. 그러니까 1 세션은 $0.3, 10 세션은 $3, 조금 과장해서 백, 천, 만... 세션은 여전히 $5라는 뜻이다. 1 세션은 사용자 로그인 후, 30분을 의미한다. 개인적으로 QuickSight의 요금 중, 가장 강점을 갖는 것은 바로 별도의 라이선스가 필요하지 않다는 점이라고 생각한다. 

 

 

정리하면서 든 생각은 AWS QuickSight 서비스 도입을 고려할 때, 어떤 데이터를 어디서 긁어와, 어떤 대시보드를 만들지 정리가 되어있어야 할 것 같다.

DB에 있는 모든 테이블을 주르륵 다 뽑아 올려, 일단 QuickSight에서 정리하겠다는 생각은 옳지 않을 것 같다. DB 쪽 역량과 DB 테이블에 저장되어 있는 데이터의 높은 이해도도 필요해 보인다.

 

반응형
Comments