QuickSightから別アカウントにあるプライベートRedshiftに接続する(PrivateLink編)

2021.11.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、岩城です。

以下の図のようなQuickSightから別アカウントにあるプライベートRedshiftに対する接続を試す機会があったので設定方法を共有します。

Redshiftクラスターに対するアクセス権の付与する

RedshiftでPrivateLinkを利用するには、ra3インスタンスであり、クラスターの再配置が有効化されていることが前提となります。

PrivateLink経由でRedshiftにアクセスさせたい別AWSアカウントのIDおよび別AWSアカウント上のVPCを指定し、Redshiftに対するアクセス権を付与します。

別AWSアカウントでVPCエンドポイントを作成する

アクセス権が付与されると、別AWSアカウントのRedshifコンソールにクラスターが表示されます。

VPCエンドポイントを作成する際、サブネットグループやセキュリティグループが必要になるため、予め作成しておきます。

セキュリティグループは後で設定し直すので、インバウンドルールなしで作成します。

VPCエンドポイントが起動するサブネットを指定するため、サブネットグループを作成します。

準備が整ったのでエンドポイントを作成します。なぜか日本語コンソールだと作成できなかったのですが、Englishコンソールにすると作成できました。

QuickSightのVPC接続を設定する

Redshiftクラスターと同じリージョンであることに注意しつつ、QuickSightの管理を開きます。本エントリの場合、東京リージョンです。

VPC接続の管理からVPC接続を追加します。

QuickSight用のセキュリティグループを指定する必要があるため、予め作成しておきます。インバウンドルールは空で構いません。

VPC、サブネット、セキュリティグループを選択してVPC接続を作成します。

VPC接続が作成されてから利用可能になるまで5分位かかるようです。5分経ったらQuickSightからRedshiftへ接続できるか試します。

待っている間にVPCエンドポイントのセキュリティグループを修正しておきます。

QuickSightからVPCエンドポイントへのアクセスを許可するため、QuickSight用セキュリティグループをソースとしたインバウンドルールを追加します。

QuickSightから別AWSアカウントのプライベートRedshiftに接続する

これまで設定してきたRedshiftを対象したデータセットを作成することで接続できることを確認してみます。

Redshiftの手動接続を選択します。

接続タイプで先に作成しておいたVPC接続を選択します。

データベースサーバーはVPCエンドポイントのDNS名を指定します。

ポート、データベース名、ユーザー名、パスワードはRedshiftクラスター作成時に設定した値をそれぞれ入力します。

接続を検証し検証済みとなれば、QuickSightからRedshiftへアクセス可能です。この状態でデータソースを作成します。

可視化するテーブルを選択、データセット作成して完了です。

おわりに

QuickSightから別AWSアカウントにあるプライベートRedshiftにアクセスするため、PrivateLinkを使う構成の紹介でした。

PrivateLinkはデータ転送量に応じて利用料金が掛かりますので注意してください。

次のエントリではVPCエンドポイントを利用した構成を紹介しようと思います。

VPCピアリングは同じアベイラビリティゾーンであればデータ転送料が掛からないので、工夫次第ではPrivateLinkに比べてデータ転送料を抑えられそうです。

VPCピアリングを採用できるなら、わざわざPrivateLinkの構成を取る必要がないと思いますが、PrivateLinkを試した後にVPCピアリング構成に行きついたので、供養の意味を込めて本エントリを書きました。

本エントリがどなたかのお役に立てれば幸いです。