QuickSight를 시작하고 Private Subnet의 RDS 데이터 세트를 생성하기

2024.02.26

QuickSight을 시작하는 방법과 RDS 데이터 세트를 생성하는 방법에 대해 정리해 봤습니다.

안녕하세요, 클래스메소드의 서은우 입니다. QuickSight를 시작하고 Private Subnet에 배치되어 있는 RDS의 데이터 세트를 생성하는 방법에 대해 정리해보았습니다.

개요

아키텍처

요약

  • QuickSight Enterprise 에디션 구독
  • QuickSight가 사용할 적절한 권한을 가진 IAM Role 생성
  • RDS와 QuickSight가 사용할 보안 그룹 생성
  • VPC 연결 생성(QuickSight 대시보드)
  • 데이터 세트 생성(QuickSight 대시보드)

QuickSight 시작하기

QuickSight 구독하기

QuickSight를 이용하기 위해서는 QuickSight를 구독할 필요가 있습니다. 각 Standard 에디션과 Enterprise 에디션이 있으며, Enterprise 에디션에는 일반 Enterprise 에디션과 Enterprise + Q 에디션이 있습니다.

QuickSight가 Private Subanet에 배치되어 있는 RDS에 접속하기 위해서는 Enterprise 에디션을 선택해주세요.

Enterprise 에디션은 QuickSight와 Private VPC/온프레미스 간의 비공개 연결을 지원합니다.

페이지 분할 보고서의 추가 기능을 사용을 묻는 페이지 입니다. 필요에 따라 선택 후 다음으로 넘어 갑니다.

QuickSight 계정 생성하기

QuickSight를 이용하기 위한 계정을 생성하는 단계입니다. QuickSight를 사용할 인증방법, 리전, 계정 정보를 설정할 수 있습니다.

본 블로그에서는 IAM 페더레이티드 ID 및 QuickSight로 관리되는 사용자 사용한 인증 방법을 이용합니다. AD와 같은 인증 방법 설정에 대해서는 추후 다뤄 보고 싶습니다.

RDS 데이터 세트를 생성하기 위해 대상 RDS와 같은 리전을 선택해주세요.

그리고 QuickSight 계정 이름과 알림을 받을 메일 주소를 입력합니다.

엑세스 권한에 관한 내용을 설정하는 화면입니다. 액세스 관련 설정들은 이후 QuickSight 관리페이지에서 수정이 가능합니다.

필요에 따라 사용할 IAM Role 과 엑세스를 허용할 AWS 리소스를 선택해주시면 됩니다.

관련 설정이 끝나면 QuickSight 대시보드로 이동할 수 있습니다.

RDS 데이터 세트 생성하기

Private Subnet에 위치한 RDS의 데이터 세트를 생성하기 위해서는 아래와 같은 설정이 필요합니다.

  • QuickSight와 RDS의 보안그룹 설정
  • 적절한 권한을 가진 IAM Role
  • VPC 연결 설정

QuickSight와 RDS의 보안그룹 설정

QuickSight는 ENI를 통해 Private RDS와 연결합니다. 때문에 QuickSight와 RDS의 보안 그룹에서 이와 같은 트래픽을 허가해주어야 서로간에 통신이 가능합니다.

QuickSight가 사용하는 보안 그룹은 상태비저장(Stateless)입니다. 때문에 RDS로 부터 반환되는 트래픽을 허가하는 설정을 해줄 필요가 있습니다.

QuickSight용 보안그룹

타입 프로토콜 포트 소스/목적지
In Bound All traffic All All RDS의 보안그룹
Out Bound 해당 DB엔진 TCP 해당 DB엔진의 포트 RDS의 보안그룹

RDS용 보안그룹

타입 프로토콜 포트 소스/목적지
In Bound All traffic All All QuickSight의 보안그룹

QuickSight가 사용할 IAM Role 생성

QuickSight가 RDS에 엑세스 하기 위해서는 VPC 연결 설정과 적절한 권한이 부여되어 있는 IAM Role이 필요합니다.

필요한 권한

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

신뢰 정책

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "quicksight.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

VPC 연결 생성

QuickSight 관리화면으로 이동하여 VPC 연결을 생성해줍니다.

  • VPC 연결 이름: 생성할 VPC 연결의 이름
  • VPC ID: 연결할 RDS가 있는 VPC
  • 실행 역할: Quick Sisght가 사용할 IAM Role
  • 서브넷: 결할 RDS가 있는 서브넷
  • 보안 그룹 ID: Quick Sisght가 사용할 보안그룹의 ID

데이터 세트 생성

VPC 연결 생성이 완료 되면, 데이터 세트를 작성합니다.

QuickSight 대시보드의 데이터 세트 페이지에서 RDS의 새 데이터 세트를 생성합니다.

새 RDS 데이터 원본 생성을 위해 다음과 같은 값을 입력합니다.

  • 데이터 원본 이름: 대시보드에 표시 될 데이터 원본 이름
  • 인스턴스 ID: 데이터 소스로 사용할 RDS 인스턴스 ID
  • 연결 유형: 생성한 VPC 연결
  • 데이터베이스 이름: RDS의 DB 이름
  • 사용자 이름: DB에 접속시 QuickSight가 사용할 유저 이름
  • 암호: DB에 접속시 QuickSight가 사용할 비밀번호

"연결 확인" 버튼을 눌러 QuickSight와 RDS 간의 연결이 성공함을 확인한 후 데이터 원본을 생성하여줍니다.

그 후, 다시 데이터 세트 대시보드로 돌아가면 데이터 세트가 생성되었음을 확인할 수 있습니다.

끝으로

QuickSight를 구독하고 Private 서브넷에 위치한 RDS의 데이터 세트를 만드는 방법에 대해서 알아보았습니다.

RDS와 QuickSight가 Private 하게 통신하기 위해서는 Enterprise 에디션의 구독과, IAM Role, 보안 그룹, VPC 연결과 같은 리소스들의 생성이 필요하다는 점을 주의하시면 좋을 것 같습니다.