LoginSignup
2
3

More than 1 year has passed since last update.

QuickSightでVPC内のAuroraに接続する環境をCDKで構築する手順

Last updated at Posted at 2023-03-26

関連する投稿を行いました。


QuickSightでRDSやRedshiftなどのVPC内のリソースに接続するには、ネットワーク疎通のための設定が必要です。参考ドキュメント

ネットワーク設定をCDKを使ってやってみました。

手順

1. VPCを作成

まずはVPCを作成します。

image.png

cdk
const vpc = new ec2.Vpc(this, 'vpc')

2. Auroraを作成

次にAuroraを作成します。
クエリエディタを使用したかったので、Aurora Serverless V1を選択しています。
認証情報はSecrets Managerに保存されます。

image.png

cdk
const aurora = new rds.ServerlessCluster(this, 'aurora', {
  engine: rds.DatabaseClusterEngine.auroraPostgres({
    version: rds.AuroraPostgresEngineVersion.VER_11_18,
  }),
  defaultDatabaseName: defaultDatabaseName,
  vpc: vpc,
  enableDataApi: true
})

3. セキュリティグループの設定

Aurora用のセキュリティグループにルールを追加し、QuickSightが作成するENI用のセキュリティグループを新規作成します。

  • Auroraのセキュリティグループ

    • インバウンドルール
    タイプ プロトコル ポート範囲 ソース
    PostgreSQL TCP 5432 QuickSight ENI用のセキュリティグループ
    • アウトバウンドルール
    タイプ プロトコル ポート範囲 ソース
    すべてのトラフィック すべて すべて 0.0.0.0/0
  • QuickSight ENI用のセキュリティグループ

    • インバウンドルール
    タイプ プロトコル ポート範囲 ソース
    すべての TCP TCP 0 - 65535 Auroraのセキュリティグループ
    • アウトバウンドルール
    タイプ プロトコル ポート範囲 ソース
    すべてのトラフィック すべて すべて 0.0.0.0/0

image.png

cdk
const auroraSgs = aurora.connections.securityGroups

const quichsightSg = new ec2.SecurityGroup(this, 'quicksight-sg', {
  vpc: vpc,
})

auroraSgs.forEach((auroraSg) => {
  quichsightSg.addIngressRule(auroraSg, ec2.Port.allTcp())
  quichsightSg.addEgressRule(auroraSg, aurora.connections.defaultPort!)
  
  auroraSg.addIngressRule(quichsightSg, aurora.connections.defaultPort!)
})

以上で、ネットワーク設定は完了です。

データの登録

QuickSightで可視化するためのデータを、Auroraに登録します。Aurora Serverless V1の場合は、マネジメントコンソールのクエリエディタから登録できます。

image.png

1. テーブル作成

CREATE TABLE quicksight_table (
    group_name VARCHAR,
    recorded_at TIMESTAMP,
    sensor_name VARCHAR,
    sensor_value DOUBLE PRECISION
)

2. データ登録

INSERT INTO quicksight_table (group_name, recorded_at, sensor_name, sensor_value)
VALUES
    ('group1', '2023-03-25 10:00:00', 'sensor1', 10.5),
    ('group1', '2023-03-25 10:01:00', 'sensor2', 10.7),
    ('group2', '2023-03-25 10:00:00', 'sensor1', 8.5),
    ('group2', '2023-03-25 10:01:00', 'sensor3', 8.7),
    ('group3', '2023-03-25 10:00:00', 'sensor1', 15.3),
    ('group1', '2023-03-25 10:02:00', 'sensor1', 11.2),
    ('group1', '2023-03-25 10:03:00', 'sensor4', 10.9),
    ('group2', '2023-03-25 10:02:00', 'sensor1', 9.1),
    ('group2', '2023-03-25 10:03:00', 'sensor1', 8.9),
    ('group3', '2023-03-25 10:01:00', 'sensor5', 14.9),
    ('group1', '2023-03-25 10:04:00', 'sensor1', 10.3),
    ('group1', '2023-03-25 10:05:00', 'sensor1', 11.1),
    ('group2', '2023-03-25 10:04:00', 'sensor3', 9.3),
    ('group2', '2023-03-25 10:05:00', 'sensor1', 8.6),
    ('group3', '2023-03-25 10:02:00', 'sensor1', 15.6),
    ('group1', '2023-03-25 10:06:00', 'sensor2', 10.8),
    ('group1', '2023-03-25 10:07:00', 'sensor1', 11.2),
    ('group2', '2023-03-25 10:06:00', 'sensor2', 9.4),
    ('group2', '2023-03-25 10:07:00', 'sensor1', 8.8),
    ('group3', '2023-03-25 10:03:00', 'sensor1', 15.1)

上位5件だけ表示

group_name recorded_at sensor_name sensor_value
group1 2023-03-25 10:00:00 sensor1 10.5
group1 2023-03-25 10:01:00 sensor1 10.7
group2 2023-03-25 10:00:00 sensor1 8.5
group2 2023-03-25 10:01:00 sensor1 8.7
group3 2023-03-25 10:00:00 sensor1 15.3

QuickSightの作成と設定

1. QuickSightを作成

QuickSightはCDKでは作成できないのでマネジメントコンソールで作成します。

2. QuickSightのVPC接続設定

先程作成したVPCの情報を入力します。ENIが作成されます。

  • 管理画面
    image.png

  • VPC接続を追加
    image.png

3. QuickSightのデータセットを追加

  • 新しいデータセットを追加します。
    image.png

  • Auroraを選択します。
    image.png

  • 接続情報を入力します。接続情報はSecrets Managerで確認します。入力後、左下のボタンをクリックすると、接続可能かどうかの検証を実行できます。
    image.png

  • テーブルを選択します。
    image.png

  • データセットの作成が完了します。モーダルのVisualiseボタンをクリックし、可視化します。
    image.png

  • 表形式で表示するとこんな感じです。正しくデータを確認できました。
    image.png

最終構成図

最終的にはこのような構成となります。QuickSightはCDKやCloudFormationで作成できないので手動での作成です。

image.png

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3