QuickSightから別アカウントにあるプライベートRedshiftに接続する(PrivateLink編)
こんにちは、岩城です。
以下の図のような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ピアリング構成に行きついたので、供養の意味を込めて本エントリを書きました。
本エントリがどなたかのお役に立てれば幸いです。