Amazon Web Services ブログ
Amazon QuickSightのプライベートVPC内のデータアクセスの設定方法について
はじめに
今回の記事では、先日一般公開された「Amazon QuickSightのプライベートVPC内のデータアクセス」の設定方法をご紹介します。この設定を行うことによって、Amazon QuckSight(以下、QuickSight)からプライベートサブネット内のAmazon RDS(以下、RDS)のデータベース、Amazon EC2内のデータベースへのアクセス、また AWS Direct Connect(以下、Direct Connect)を経由したオンプレミスのデータベースにアクセスして分析ダッシュボード、レポートを作成することが可能です。
なお本稿の情報は、2018年6月22日時点の以下のAWS公式ドキュメントをベースにしておりますが、最新の情報は設定前にご確認ください。
Amazon QuickSight: Amazon VPCを操作する
接続構成イメージ
以下で説明する手順を実行すると以下のようなイメージで構成されます。VPC内にあるプライベートサブネットの中にQuickSightアクセス用のセキュリティグループを定義することで、アタッチされるENI(Elastic Network Interface)経由でQuickSightが同一VPC内のデータベース(本例ではRDS)のあるプライベートサブネットに接続することが可能です。
図1. 構成イメージ(プライベートVPC内接続)
また上記のように、QuickSightアクセス用のセキュリティグループを構成することで、オンプレミス環境にあるデータベースに対しても、Direct Connect経由でアクセス可能(オンプレミスデータベースへのルーティングが可能である前提)になります。
図2. 構成メージ(オンプレミスへの接続)
設定手順概要
1.QuickSight用のセキュリティグループ作成
AWSのマネージメントコンソールから「VPC → セキュリティグループ」を選択し、「セキュリティグループの作成」ボタンを押し、QuickSight用ENIのセキュリティグループを作成します。
図3. QuickSightアクセス用のセキュリティグループ作成
2.作成したQuickSightアクセス用のセキュリティグループのインバウンドルール設定
ここで前の手順で作成したQuickSightアクセス用のセキュリティグループの「インバウンドルール」を設定します。何故、インバウンドルールを設定するかというと以下のドキュメントの引用のように、QuickSight用のENI(ネットワークインターフェイス)にアタッチされているセキュリティグループの通信はステートフルではないため、本例のRDSからの戻りの通信に対する受信ルールを追加する必要があるのです。
引用:Amazon QuickSight: Amazon VPCを操作する
「ただし、Amazon QuickSight ネットワークインターフェイスにアタッチされているセキュリティグループはステートフルではありません。つまり、送信先ホストからの戻りトラフィックは自動的に許可されません。この場合、ネットワークインターフェイスセキュリティグループに Egress ルールを追加しても機能しません。したがって、明示的に承認するために、受信ルールをセキュリティグループに追加する必要があります。」
図4. QuickSightアクセス用のセキュリティグループ設定上のポイント
よって、以下の様にQuickSight用のセキュリティグループのインバウンドルールを以下の様に設定します。
図5. QuickSightアクセス用のセキュリティグループのインバウンドルールの設定例
3.RDSのセキュリティグループの設定
次にRDSのセキュリティグループにQuickSightのセキュリティグループ経由のアクセスを許可する設定を行います。
AWSのマネージメントコンソールから「RDS → インスタンス」を選択し、該当のインスタンス名のリンクをクリックして、インスタンス詳細画面を表示します。
対象のRDSインスタンスのセキュリティグループを確認し、再度、マネージメントコンソールの「VPC → セキュリティグループ」からセキュリティグループのリストを表示し、RDSに割り当たっているセキュリティグループを選択します。
次に以下の様にRDSのセキュリティグループのインバウンドルールを追加設定(または既存ルール修正)します。通信ポートは該当インスタンスのデータベースの通信ポート(本稿の例ではPostgreSQLのデフォルトポートで5432)を指定します。ソースは、QuickSightアクセス用に作成したセキュリティグループを指定します。
図6. RDS用のセキュリティグループのインバウンドルールの設定例
4.QuickSightアカウント設定メニューからVPC接続定義を作成
マネージメントコンソールのサービスメニューから「QuickSight」を起動し、以下の様にアカウント設定メニューの「Manage QuickSight」メニューを選択し、「Manage VPC Connection → Add VPC Connection」をクリックします。
図7. VPC接続定義画面の起動
次の画面で以下の様にVPC接続定義画面が表示されるので、該当する情報を入力します。
図8. VPC接続定義の入力項目
入力名 | 入力値 |
VPC Connection Name | (任意の名前) |
Subnet ID | QuickSightアクセス用のサブネットID |
Security Group ID | QuickSightアクセス用のセキュリティグループID |
5.QuickSightのデータソースの定義
次にQuickSightのトップ画面に戻り、「Manage Data」をクリックします。
図9. データ管理画面の起動
次の画面で「New data set」をクリックするとデータベースの種別を選択する画面が表示されるので、「RDS」を選択します。
図10. 新規データセット定義画面の起動
次の画面でRDSを選択します。
図11. データセットとしてRDSを選択
5.QuickSightのビジュアライズで利用するデータソースを定義する
次に表示される画面でVPC接続定義を指定することでプライベートVPC内のアクセスが可能になります。以下の図の様に赤枠の「Connection type」に前の手順で作成したVPC接続を指定します。残りの必要な情報を入力後、「Validate connection」ボタンを押して、接続検証が成功するとデータソースにアクセス可能なので「Create data source」ボタンを押してデータソースを作成します。
図12. データソースの定義でVPC接続定義を指定
以上のステップでプライベートVPC内のデータソースのオブジェクトに対するアクセスが可能になるので、通常のQuickSightの操作でダッシュボード、レポートを作成していきます。
最後に
最新のAmazon QuickSightにより、パブリックIPアドレスが無いデータソースへのアクセスや、オンプレミス環境への専用線経由のデータソースアクセスが実現可能です。
今回の新機能をぜひお試し頂き、クラウドのビッグデータ活用の幅を広げることをご検討ください。皆様のビジネス、業務のお役に立てれば幸いです。
本稿記事の作成はソリューションアーキテクトの丹羽が行いました。