데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      Amazon QuickSight 로 데이터 시각화 하기 1편

      jounim1 24.06.18
      9,312 6 1
      DEVOTEE 요약
      AWS는 데이터 수집, 처리, 저장 및 분석을 위한 다양한 서비스를 제공합니다. QuickSight는 BI 툴로 데이터를 시각화해 분석을 돕는 역할을 합니다. QuickSight를 사용해 VPC 연결을 설정하고 Data Source를 만들며, 이를 통해 데이터를 분석하고 시각화한 뒤 대시보드를 생성하고 공유하는 절차를 설명합니다.
      DEVOTEE 추천 블로그

      들어가면서_AWS Data analysis 서비스들

      AWS 에서는 데이터를 수집하고 처리하고 저장하고 이를 분석하는 단계에 걸친 AWS 서비스들을 다양하게 제공하고 있습니다.

      AWS에서 제공해 주는 분석 서비스들을 구분해보면 다음과 같습니다.[1]

      AWS 데이터 분석 서비스

      데이터는 구조화 되어 있을 수 있고 아닐 수도 있습니다. 다른 말로 Schema가 잡혀 있는지 아닌지로도 표현할 수 있습니다.

      CSV, JSON같은 파일로 제공되는 데이터는 구조화 되기 좋은 전 단계정도로 구분됩니다.

      이렇게 여러 데이터의 형태가 있는데, Raw데이터 부터 완전히 구조화 된 데이터까지 목적에 맞게 가공하고 저장할 수 있습니다.

      Raw데이터 수집하는 Streaming, MSK 서비스, 데이터를 가공하는 ETL 서비스, 구조화 되지 않은 데이터를 저장하는 Data Lake같은 저장소,

      데이터를 구조화해주는 Glue Catalog 등 다양한 서비스가 있습니다. 이 과정을 흔히 ETL Process라고도 합니다.[2]

      image.png

      여기서 Quicksight는 BI 툴로 앞서 처리된 데이터를 기반으로 Business Insigint를 제공해 줄 수 있게 도와주는 도구입니다.

      전처리된 원하는 형태의 데이터를 가져와서 사용자에게 data visualization을 제공해 주는 QuickSight로 데이터를 시각화하는 Hands-on해보겠습니다.


      사전지식_QuickSight 소개

      QuickSight가 Managed 서비스이긴 하지만 개념적으로 알아야 할 구성요소에 대해서 소개정도 하고 Hands-on을 진행하도록 하겠습니다.

      각 구성요소와 구성요소간의 처리관계를 이해하는데 목표를 두겠습니다. 구성요소로는 Dataset, Analysis, Visual and Insight, Dashboard가 있습니다.

      Dataset

      data source에서 가져온 subset 개념의 데이터 입니다.

      dataset을 만들기 위해서는 data source가 필요하고 이 data source에서 필요한 데이터를 추출해서 dataset을 만들 수 있습니다.

      참고로 가져올 수 있는 data source로는 S3, Redshift, RDS, Athena, 직접 파일 업로드 등 다양한 Data Source를 연결할 수 있습니다.

      Analysis

      BI 시각화를 구성하고 편집하는 부분입니다. 여러 Dataset을 통해서 만들어질 수 있습니다.

      Visual and Insight

      Visual 과 Insight는 Analysis 화면을 구성하는 요소입니다.

      Visual 유형으로는 Plot, Chart, Table, 지리공간 시각화 등이 해당됩니다.

      Insight는 자연어 결과로 나타납니다.

      자연어를 Custom할수도 있고 ML기능도 적용이 가능합니다.

      Dashboard

      단순히 얘기해서 Analysis의 read-only version입니다.

      다른 사용자에게 공유하기 위한 목적으로 활용됩니다.

      여기에 사용자와 interact하게 활용하기 위해 control/대화형 기능 등을 추가할 수 있습니다.

      사용자들이 대쉬보드를 조작할 수 있는 컨트롤러입니다. 이는 hands-on에서 나옵니다.


      QuickSight의 주요 구성요소과 상호 관계

      QuickSight 네트워킹

      구성요소는 QuickSight에 이해를 도왔다면, 네트워킹은 실제 구성할 때 필요한 개념입니다.

      왜냐하면 QuickSight에서 데이터를 연결하고 가져올 때 이 구성을 직접 연동해야 하기 때문입니다.

      QuickSight는 AWS에서 제공하는 Managed 서비스이기 때문에 인터넷망에서 접근이 가능합니다.

      하지만 일반적으로 연결하고자 하는 데이터는 이를 운영하는 조직의 워크로드 안에 외부 연동을 차단하는 구성으로 되어 있는 경우가 많습니다.

      AWS에서는 VPC(Virtual Private Cloud)라는 논리적으로 격리된 가상의 네트워크를 고객에게 제공을 합니다.

      기본적으로 VPC는 외부 연결이 차단되게 구성되어 있기 때문에 QuickSight는 VPC 연결을 하기 위한 구성이 먼저 필요합니다. Hands-on에서 구성해 보겠습니다.

      image.png

      Amazon QuickSight와의 VPC 연결[3]


      Step 1_Data Source, Dataset 만들기

      이 과정에서는 저희 시스템에 있는 통신 데이터 처리 데이터를 바탕으로 일일 단위 데이터 처리가 성능(처리 지연시간), 개수(처리량)가 어떻게 되었고

      이를 바탕으로 운영자에게 Insight를 주는 대쉬보드를 만드는 걸 목표로 해보겠습니다.

      각자의 데이터는 다르기 때문에 필요한 영역을 취사 선택해서 사용하시면 되겠습니다.

      QuickSight에서 분석을 하기 위해 저의 경우에는 통계 데이터가 쌓이고 있는 RDS를 Data Source로 선택해 보겠습니다.

      Step1-1_VPC Connection 생성

      Data source를 선택하기 위해서는 앞서 언급한 네트워크 구성이 되어 있어야 합니다.

      QuickSight에서 VPC Connection 생성이고, 이는 외부에 있는 QuickSight가 Datasource가 위치한 VPC에 연결할 수 있는 ENI를 생성하고 이를 QuickSight에 할당해 주는 방식입니다.

      QuickSight > 오른쪽 상단 사람 아이콘 모양 클릭 > Manage QuickSight > Manage VPC Connections > ADD VPC CONNECTION 선택

      image.png

      다음 항목을 입력합니다.

      • 논리 vpc name

      • VPC ID 선택

      • Execution role 에서는 Quicksight ServiceRole 선택

        • QuickSight SecretMangerRole managed role이 제공되고 여기서는 QuickSight가 VPC connnection을 생성/연결/업데이트하는 권한이 필요하여 SerivceRole 할당

        • SecretManagerRole은 VPC connection과는 직접적인 관계는 없지만, RDS를 접속시 비밀번호등 SecretManager를 통할때 사용되는 Role

        • 해당 role에는 아래 권한 추가 필요[4]

        • Subnet은 최소 2개를 선택해야 하고, a/c zone에 RDS와 통신할 수 있는 subnet 선택

        • 사전에 생성한 quicksight conn sg 선택

          • inbound는 source는 RDS sg id, All TCP 허용

          • outbound는 dest는 RDS sg id, 3306포트 허용

      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "ec2:CreateNetworkInterface",
              "ec2:ModifyNetworkInterfaceAttribute",
              "ec2:DeleteNetworkInterface",
              "ec2:DescribeSubnets",
              "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
          }
        ]
      }

      VPC connection 생성시 필요 Role(전체 아님)


      image.png

      VPC connection 생성 시 사용하는 SG rule

      Step1-2_data source 만들기

      data source는 datasets 메뉴에서 만들 수 있습니다.

      Datasets > New dataset 선택

      기존의 Data source를 사용하거나 신규 data source를 만들 수 있습니다.

      여기서 저는 RDS를 연결하기 위해 RDS를 선택합니다. 다른 서비스를 연결하기 위해서는 그에 맞게 SG를 추가해 줘야 합니다.

      예컨대, Redshift를 Datasource로 연결하기 위해서는 Redshift에서 사용하는 Security Group에 QuickSight를 허용하거나

      해당 Redshift가 외부와 바로연결이 안되는 구간이라면 앞서 구성한 VPC Connection에 Redshift SG를 구성해야 합니다.

      인터넷에서 바로 연결 시 허용해야 하는 QuickSight IP는 AWS QuickSight User Guide에 AWS Regions, websites, IP address ranges, and endpoints[5]를 참고하면 됩니다.

      image.png

      QuickSight의 다양한 Data sources


      RDS를 선택하면, 다음과 같이 나오고 필요한 subset 데이터를 가져올 수 있습니다.

      image.png

      • VPC 구성이 제대로 되어 있으면, instanceID에 자신이 갖고 있는 RDS 리스트 확인 가능

      • connection type : 앞서 만든 vpc 이름 선택

      • database name : 사용할 database in RDS 이름 입력

      • username : DB id

      • password : DB password

      • validate connection 클릭시 위 정보를 바탕으로 연동 테스트 후 정상이라면 Validated 라고 확인

      많은 데이터를 가져오는 건 비용과 연결되니, 필요한 데이터베이스와 필요한 데이터만을 쿼리문을 통해서 가져오는 게 좋습니다.

      위 데이터 중 특정 table만 가져올 수도 있고, 쿼리문을 수행한 결과만 가져와서 data를 만들 수도 있도 있습니다.

      image.png

      Step 2_Analysis 구성

      이제 Dataset이 확보가 되었으니, 이를 가지고 BI, 분석 화면을 구성해 봅니다.

      QuickSight > Analyses > New analysis > Dataset 선택 > USE IN ANALYSIS

      USE IN DATASET을 선택하면 먼저 데이터를 살펴보고 필요하다면 편집 후 Analysis로 이동할 수 있습니다.

      기본선택인 Interactive sheet를 선택합니다.(Paginated Report는 추가 비용 발생, 선택적으로 구독 가능)


      선택한 dataset는 custom query를 적용해서 필요한 데이터만 가져온 상태이며, 왼쪽 data panel에서 데이터와 column들을 확인할 수 있습니다.

      가운데 패널은 Analysis에서 생성할 수 있는 Visuals와 Insights를 확인할 수 있습니다.

      사실상 모두 Visuals이고 빨간색 사각형으로 칠해진 녀석만 Insight입니다.

      하지만 Insight를 생성하고 customize하면 하나의 Insight 내에서도 ML 기능을 포함한 다양한 기능을 제공합니다. 이 부분은 향후 업데이트 예정입니다.

      아래는 Insight Customized 초기 화면과 insight computation type 리스트 입니다.

      image.png

      Insight Customized 초기 화면


      image.png

      Insight computation type 리스트


      지원되는 Visuals 유형을 보면 아래와 같습니다.

      • KPI, Gauge chart : 목표 대비 얼마나 진행되었는지 판단

      • Pie charts, Donut charts : 카테고리별로 데이터 분석

      • Vertical bar chart, Line chart : 특정 기준을 갖고 비교, Line chart에는 연속적인 시간 기준 비교

      • Table, Pivot table : 특정 기준으로 Raw data를 표현

      • Points on map, Filled map : 지도 기반의 데이터 표현

      • Sankey Diagram : source와 destination 간의 관계 표현

      제가 활용하는 데이터는 통신 감시 데이터 처리 결과 데이터이고 이는 Private한 데이터이니 실습을 직접 따라하시는 경우에는 각자 데이터에 맞는 Visual을 선택해서 구성하기 바랍니다.

      통신 처리 데이터를 얼마나 잘 처리하는지 토픽, 대상장비별로 모니터링하고자 했고, 이를 위해 Bar chart, Line chart, Pivot table을 활용해서 Analysis를 아래와 같이 구성했습니다.

      그리고 아래 데이터는 직관적인 메시지를 전달해 주기 보다는 분석하는데 활용되는 차트로 판단하여 Insight를 활용하여 상위에 메시지를 작성하였습니다.

      (사내 시스템에서 나오는 정보라서 blur처리 일부 했습니다.)




      각각 Analysus Visual/Insight 만드는 방법들은 직관적이어서 데이터만 있다면 Drag/Drop으로 쉽게 구성할 수 있습니다.

      기본적인 방법은 Visual을 선택 후 필요한 데이터를 Drag/Drop으로 가져다 놓으면 Visual이 바로 변경/반영됩니다.

      Insight 경우 함수, 간단한 code가 필요한데 이 블로그 2편을 작성한다면 그 때 추가 작성하도록 하겠습니다.


      Step 3_Dashboard 발행

      Dashboard는 앞서 언급했듯이 Analysis의 read-only 버전이라고 했습니다.

      Dashboard를 접속할 때, Dataset을 불러서 UI를 구성합니다.

      이 때 Dataset이 어떻게 구성되어 있는지에 따라 데이터의 차이가 아래와 같이 있습니다.

      구분

      SPICE

      Direct Query

      의미

      직접 SQL 쿼리를 사용하지 않고 dataset로 데이터를 가져오는 경우 저장 방식 SPICE (Super-fast, Parallel, In-memory Calculation Engine) 약어로 QuickSight 사용하는 강력한 인메모리 엔진

      Dataset에 조회 시, 실제 data source로 query를 수행하여 데이터를 가져오는 방식

      장점

      cache된 데이터를 활용하기 때문에 대쉬보드 새로고침이 빠르고 원본 Data source에 부담을 주지 않음

      User가 접속할 때 실시간으로 데이터를 기반 대쉬보드 제공

      단점

      실시간 데이터가 아님, refresh schedule에 의거 분/시간/일일단위 스케줄 관리

      대쉬보드 등 리프레쉬가 오래 걸릴 수 있고 실제 운용하고 있는 Data source에 부담

      Analysis를 Dashboard로 만드는 건 간단합니다.

      Analysis 화면 우측 상단에 PUBLISH 선택 후 dashboard 이름을 지정만 해주면 됩니다.

      추가적인 옵션이 있지만 필요 시 고려하면 되는 옵션입니다.(다운로드, 마우스오버, 출력, 드릴다운 등 기능 가능 여부)


      Step 4_보고서 구성 및 발송

      지금까지 구성을 한 부분은 데이터를 연결하고 이를 가공해서 가져오고 Visualization 후 대쉬보드를 만들었습니다.

      다음 편에 정리하고자 하는 Advance한 기능으로는 다음과 같습니다.

      • 기존 Data field 활용하여 Calculated FIELD 신규 Data Field 구성

      • Interactive dashboard 만들기(feat. Filter와 Parameter)

      • Insight Custom하기, ML(Forecasting, Anomaly detection) 기능 활용

      • QuickSight API 활용으로 템플릿 적용, 대쉬보드 자동 새로고침

      • QuickSight와 Amazon Lake Formation통합

      • 알람/보고서 생성 및 발송

      이 중에서 이번 편 마무리로 생성된 Dashboard를 일일 단위로 이메일 전송하는 구성을 해보겠습니다.

      이메일 보고서 구성은 Dashboard에서 수행합니다. 이를 수행하기 위해서는 해당 dashboard의 owner 권한을 갖고 있어야 합니다.

      Manage QuickSight > Manage assets > Daahboards > 해당 dashboard 선택 > SHARE > 사용자 검색 > SHARE 선택하여 owner 권한 부여


      권한이 확보되었다면, Dashboard로 이동하여 보고서 메일 구성을 진행합니다.

      Dashboards > 원하는 dashboard 선택 > 오른쪽 상단에 시계 모양의 Schedule 아이콘 선택 > ADD SCHEDULE 선택 > 다음 이미지처럼 구성

      image.png

      수신자에는 해당 대쉬보드에 뷰 권한이 있는 사용자만 선택할 수 있게 되어 있습니다.

      외부 사용자에게까지 구성을 하는 방법은 없어 보이지만, 한번 더 확인하고 있습니다.


      정리

      지금까지, Amazon QuickSight에 대한 기본적인 개념을 바탕으로 datasource, dataset 구성과 이를 가지고 analysis, dashboard를 만들고 공유하는 방법을 기술했습니다.

      Cloud 서비스는 Managed로 제공되는 만큼 기술적인 허들이 크게 없지만 그만큼 활용 가능성은 더 증대했다고 봅니다.

      후속으로는 위에서 언급한 Advance한 기능을 추가로 구성해 보고 다루도록 하겠습니다. 감사합니다.


      참고

      [1] Actionable Insights with Amazon QuickSight, Chapter 1, Figure 1.1 - AWS analytics services

      [2] Comprehensive Guide to ETL: Extract, Transform, Load Processes and Best Practices in 2023, ETL Process, https://pub.aimind.so/comprehensive-guide-to-etl-extract-transform-load-processes-and-best-practices-in-2023-91d97bd67b21

      [3] Actionable Insights with Amazon QuickSight, Chapter 2, Figure 2.3 - VPC connectivity with Amazon QuickSight

      [4] Amazon QuickSight User Guide, Configuring the VPC connection in the QuickSight console, https://docs.aws.amazon.com/quicksight/latest/user/vpc-creating-a-connection-in-quicksight-console.html

      [5] Amazon QuickSight User Guide, AWS Regions, websites, IP address ranges, and endpoints, https://docs.aws.amazon.com/quicksight/latest/user/regions.html

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      jounim1 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기