QuickSightのデータソースにプライベートサブネットにあるRDS(MySQL) リードレプリカを設定してみた
こんにちは、洲崎です。
QuickSightのデータソースにRDS(MySQL)のリードレプリカを設定する機会があったので紹介します。
VPC接続はQuickSightのEnterprise Editionで利用可能です。
構成
今回の構成はこちらです。
プライベートサブネットにあるRDS リードレプリカに対して、新規でセキュリティグループと各AZにENI(QuickSight側で自動作成)を作成し、QuickSightと接続します。
やってみる
RDS(準備)
RDSはプライマリ(マルチAZ)とリードレプリカで構築しました。
プライベートサブネットは各AZ(今回はap-northeast-1a
とap-northeast-1c
)で用意します。
セキュリティグループはリードレプリカにアタッチしているもの(read-replica-20231101
)を利用します。
QuickSight側のセキュリティグループ作成
QuickSight用のセキュリティグループを作成します。(名前はquicksight-sg-20231101
で作成しました)
作成したセキュリティグループに対して、RDS リードレプリカにアタッチしているセキュリティグループ(read-replica-20231101
)をソースで指定して、インバウンドルールをすべてのトラフィックで許可します。
RDS リードレプリカ側のセキュリティグループ
QuickSight用のENIにアタッチされているセキュリティグループの通信はステートフルではなくなるという仕様があるため、リードレプリカ側のセキュリティグループ(read-replica-20231101
)にも、quicksight-sg-20231101
からのインバウンド通信を許可します。
IAMポリシーの作成
QuickSightがVPC接続を行うにあたってのIAMポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" } ] }
(こちらの記事を参考にしました)
作成したIAMポリシーをQuickSightのVPC接続で利用する際のIAMロールにアタッチします。
(今回は検証のため、すでにあるQuickSightのaws-quicksight-service-role-v0
にアタッチして利用しましたが、本来であれば別で用意するのが好ましいです)
QuickSight VPC接続
QuickSightの管理画面にいき、「VPC接続の管理」をクリックします。
以下の情報を入力します。
- VPC接続名:任意の名前
- VPC ID:RDSがあるVPC ID
- 実行ロール:作成したIAMポリシーをアタッチしているIAMロール
- サブネット:RDSが置かれているプライベートサブネット(2つ以上の異なるAZのサブネットが必要)
- セキュリティグループID:QuickSight用に新規で作成したセキュリティグループ ID
実行したら、設定したセキュリティグループで、各AZにENIが作成されます。
ステータスがCREATINGからAVAILABLEになることを確認します。
QuickSightのデータセットから、「データセットの作成」でRDSを選択します。
以下の情報を入力し、左下の「接続を検証」ボタンをクリックし、「検証済み」になることを確認します。
- データソース名:任意の名前
- インスタンスID:RDS リードレプリカのインスタンスIDをプルダウンで指定
- 接続タイプ:QuickSight VPC接続で作成した名前を指定
- データベース名:RDSのデータベース名(接続タイプを入れたら自動で保管される)
- ユーザー名:RDSのユーザー名
- パスワード:RDSのパスワード
以上で、QuickSightとRDS リードレプリカとの接続は完了です。
最後に
QuickSightとRDS(MySQL)リードレプリカを接続してみました。
セキュリティグループ(ENI)を別途作成すれば、プライベートサブネットにあるRDSも問題なくQuickSightのデータソースとして利用可能です。
RDSのデータをQuickSightで可視化してみたい方がいましたら参考にしてみてください。
ではまた!コンサルティング部の洲崎でした。