quicksight_vpc_inbound_source pattern¶
概要¶
quicksight_vpc_inbound_source pattern
では、Amazon QuickSightがVPC内に構築されたデータソースと接続するためのセキュリティグループを作成します。
本ドキュメントでは、Amazon QuickSight(以降、QuickSight)の設定方法などは解説しません。 Amazon QuickSightの利用方法については、Amazon QuickSightを用いたBI指標可視化ガイドをご参照ください。
VPC内のリソースに接続するためには、QuickSightはEnterprise Edition
のサブスクリプションが必要となります。
QuickSightのサブスクリプションを確認の上、本patternを適用してください。
想定する適用対象環境¶
quicksight_vpc_inbound_source pattern
は、QuickSightが構築されるRuntime環境で使用されることを想定しています。
依存するpattern¶
quicksight_vpc_inbound_source pattern
は、QuickSightが接続するデータソース(RDSなど)を構築するpatternが先に適用されていることを想定しています。
想定するデータソースを構築するpatternは関連するpatternを確認してください。
本patternで構築されるセキュリティグループは、データソースを構築するそれぞれのpatternでも設定が必要となります。 そのため、patternの適用順序に制約が生まれます。 こちらについてはpatternの適用順序を参照してください。
連携可能なpattern¶
Eponaが提供するpatternで、quicksight_vpc_inbound_source pattern
と連携を想定しているものは、以下があります。
pattern名 | データソースとして連携するAWSリソース |
---|---|
database pattern | Amazon Relational Database Service(以降、RDS) |
QuickSightが連携できるデータソースの一覧については、以下のドキュメントを参照してください。
サポートされているデータソース - Amazon QuickSight
構築されるリソース¶
このpatternでは、以下のリソースが構築されます。
リソース名 | 説明 |
---|---|
Amazon EC2 セキュリティグループ | 指定されたセキュリティグループからのインバウンドを許可する、QuickSight用のセキュリティグループを作成します |
モジュールの理解に向けて¶
DevOpsにおいて、サービスの現状を知り、どのように発展/課題解決をするのかを検討することは重要な要素です。
Eponaではビジネスモニタリングを行うための方法として、QuickSightの利用を想定しています。
QuickSightからRDSのように通常インターネットに公開されないAWSリソースと接続する場合、セキュリティグループの設定が必要になります。 本patternを適用することで、QuickSightからVPC内のAWSリソースに接続するためのセキュリティグループを構築します。
patternの適用順序¶
本patternでは、QuickSightとVPC内に構築されたデータソースとの連携を前提としています。 この連携のためには、以下の順でpatternを適用する必要がある点にご注意ください。
- VPC内のデータソースを構築するpattern(例として、
database pattern
)の適用 quicksight_vpc_inbound_source pattern
の適用- 2.で作成したセキュリティグループをデータソースを構築するpatternのパラメータに設定し、再度VPC内のデータソースを構築するpatternを適用
このような手順をとる理由を以下に説明します。
QuickSightからVPC内のデータソースを参照するには、以下の双方向のアクセスを許可する必要があります。
- QuickSight -> データソースの接続の許可(行き)
- データソース -> QuickSightの接続の許可(戻り)
本モジュールで作成されるセキュリティグループは、QuickSightが接続するデータソースからの戻りの通信に対する受信ルールに利用されます。
通常、セキュリティグループはStatefulフィルタリングを行うため、応答のための設定は不要です。 しかし、QuickSightで生成されるElastic Network Interfaceに設定されたセキュリティグループはStatefulではありません。 このため、接続先となるデータソースからの戻りの通信を受信するためのセキュリティグループルールが必要となります。
別途セキュリティグループが必要になる詳細な理由は、以下のドキュメントを参照してください。
Amazon QuickSightのプライベートVPC内のデータアクセスの設定方法について
利用者が作成したセキュリティグループをデータソースを構築するpatternで利用する場合、本patternで作成されたセキュリティグループをインバウンドに設定してください。
サンプルコード¶
quicksight_vpc_inbound_source pattern
を使用したサンプルコードを、以下に記載します。
module "quicksight_vpc_inbound_source" {
source = "git::https://gitlab.com/eponas/epona.git//modules/aws/patterns/quicksight_vpc_inbound_source?ref=v0.2.6"
name = "RDS-QuickSight-Integration"
tags = {
Owner = "epona"
Environment = "runtime"
RuntimeEnvironment = "production"
ManagedBy = "epona"
}
# QuickSightと接続を行うリソースのセキュリティグループと、セキュリティルールの説明を設定する
integration_security_groups = [{
description = "Enable access postgresql from QuickSight"
security_group_id = data.terraform_remote_state.production_database.outputs.database.instance_security_group_id
}]
# 接続対象となるVPCを指定
vpc_id = data.terraform_remote_state.production_network.outputs.network.vpc_id
}
接続先となるAWSリソースのサンプルコードは関連するpatternの各patternのドキュメントを参照してください。
本patternは1つのVPC内のデータソースへアクセスするためのセキュリティグループを構築します。 VPCが異なるデータソースへのアクセスが必要な場合は、VPCの数に応じて本patternを適用してください。
関連するpattern¶
quicksight_vpc_inbound_source pattern
は、その他のVPC内にリソースを構築するpatternと組み合わせて利用されます。
Eponaが提供するpatternの内、本patternと組み合わせて利用することが想定されている一覧は、連携可能なpatternを参照してください。
入出力リファレンス¶
Requirements¶
Name | Version |
---|---|
terraform | ~> 0.14.10 |
aws | >= 3.37.0, < 4.0.0 |
Inputs¶
Name | Description | Type | Default | Required |
---|---|---|---|---|
integration_security_groups | QuickSightが参照するAWSリソースに設定されているセキュリティグループ設定のリスト VPC内にあるリソースをQuickSightから参照する際に必要になる設定 integration_security_groups = [ |
list(map(string)) |
n/a | yes |
security_group_name | このモジュールで作成されるSecurityGroupの名前 | string |
n/a | yes |
vpc_id | QuickSightが参照するリソースが配置されているVPCのID | string |
n/a | yes |
tags | このモジュールで作成されるリソースに付与するタグ | map(string) |
{} |
no |
Outputs¶
Name | Description |
---|---|
security_group_id | 作成されたQuickSight用のSecurityGroupのID |
※ このドキュメントはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。
※ このドキュメントに記載されている会社名、製品名は、各社の登録商標または商標です。
© 2021 TIS Inc.