前提条件
Aurora PostgreSQL DB クラスターは、お客様に代わって Amazon S3、Amazon S3 Tables、および AWS Glue Data Catalog から Iceberg と Parquet データを読み取ることができます。これらのデータをクエリする前に、クラスターには次の 3 つが必要です。対象サービスへの認証方法、拡張機能 aurora_analytics を含むエンジンバージョン、および VPC から対象サービスにアクセスするためのネットワークパスです。以下のセクションでは、クエリ対象の特定のデータへの読み取りアクセスを許可する IAM ポリシーとロールの作成、作成したロールの DB クラスターへのアタッチ、DB クラスターパラメータグループでの拡張機能の有効化、クラスターから Amazon S3 と AWS Glue に到達するために使用するネットワークパスの設定について説明します。バージョン要件を満たす既存の Aurora PostgreSQL DB クラスターであれば、いずれのクラスターでもこれらのステップを実行できます。
トピック
セットアップステップの概要
セットアップの大まかな手順は次のとおりです。
-
データへの読み取りアクセスを許可する IAM ポリシーを作成します。
-
IAM ロールを作成して、そのポリシーをアタッチします。
-
IAM ロールを Aurora DB クラスターにアタッチします。
-
クラスターがプライベートサブネットにある場合は、ネットワーク (VPC エンドポイント) を設定します。
-
DB クラスターパラメータグループで
aurora_analytics拡張機能を有効にします。
IAM ポリシーの作成
データの形式と保存場所に応じて、拡張機能に Amazon S3、オプションで AWS Glue Data Catalog または Amazon S3 Tables への読み取りアクセスを許可する IAM ポリシーを作成します。
最小権限は、データ参照方法、データ形式 (Parquet または Iceberg)、ソース (Amazon S3、AWS Glue Data Catalog、または Amazon S3 Tables)、および単一のファイルとディレクトリのどちらを指すかによって異なります。次の表に、一般的な同一アカウントシナリオの最小 IAM ロール権限を示します。
| ソース | 最小権限 |
|---|---|
Amazon S3、単一ファイル (s3://bucket/path/data.parquet) |
s3:GetObject |
Amazon S3、 ディレクトリまたは glob (s3://bucket/path/) |
s3:GetObject, s3:ListBucket |
AWS Glue Data Catalog (arn:aws:glue:us-east-1:123456789012:table/mydb/mytable) |
glue:GetTable + 上記の Amazon S3 権限 |
Amazon S3 Tables、直接 ARN (arn:aws:s3tables:us-east-1:123456789012:bucket/mybucket/table/table_id) |
s3tables:GetTable, s3tables:GetTableBucket, s3tables:GetTableData, s3tables:GetNamespace |
Amazon S3 Tables、AWS Glue カタログの ARN 経由 (arn:aws:glue:us-east-1:123456789012:table/s3tablescatalog/mybucket/myns/mytable) |
glue:GetTable + 上記の s3tables 権限 |
注記
s3:ListBucket は、拡張機能が Amazon S3 プレフィックスをリストしてファイル (Parquet ディレクトリや glob アクセスなど) を検出する場合にのみ必要です。Iceberg はマニフェストから正確なファイルパスを解決するため、s3:ListBucket は必要ありません。
注記
データが SSE-KMS で暗号化されている場合は、KMS キーに対する kms:Decrypt を追加します。
注記
IMPORT FOREIGN SCHEMA (glue:GetTables または s3tables:ListTables)、クロスアカウントアクセス、リソースポリシーに基づくアクセス、Lake Formation が管理するテーブルには、追加の権限が必要です。
ポリシーの詳細な例については、「IAM ポリシーのリファレンス」を参照してください。IAM ポリシーを作成するための詳細については、「IAM ユーザーガイド」の「IAM ポリシーの作成」を参照してください。
IAM ロールの作成
Aurora が拡張機能に代わって Amazon S3 データにアクセスするために引き受けることができる、IAM ロールを作成します。
AWS マネジメントコンソールを使用して IAM ロールを作成するには
-
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[ロール]、[ロールの作成] の順に選択します。
-
[信頼できるエンティティタイプ] で、[AWS サービス] を選択してください。
-
[ユースケース] で、サービスのリストから [RDS] を選択します。
-
ユースケースオプションから、[RDS - ロールをデータベースに追加する] を選択します。
-
[次へ] を選択します。
-
IAM ポリシーの作成で作成したポリシーを選択します。[AmazonS3ReadOnlyAccess] や [AWSGlueConsoleFullAccess] などの構築済みのアクセス許可ポリシーを選択することもできます。
-
[次へ] を選択します。
-
[ロール名] に、ロールの名前を入力します (
AuroraAnalyticsRoleなど)。 -
[ロールの作成] を選択してください。
AWS CLI を使用して IAM ロールを作成するには
-
AuroraAnalyticsRoleという名前のロールを作成します。aws iam create-role \ --role-name AuroraAnalyticsRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }' -
ロールにポリシーをアタッチします。
aws iam attach-role-policy \ --role-name AuroraAnalyticsRole \ --policy-arn arn:aws:iam::123456789012:policy/AuroraAnalyticsReadAccess
ロールの ARN を書き留めておきます。これは、ロールを Aurora DB クラスターにアタッチするときに必要です。詳細については、「IAM ユーザーガイド」の「IAM ロールの作成」を参照してください。
Aurora DB クラスターに IAM ロールをアタッチする
DB クラスターを作成したら、拡張機能のために作成した IAM ロールを関連付けます。
AWS マネジメントコンソールを使用して IAM ロールをアタッチするには
-
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択して、Aurora PostgreSQL DB クラスターの名前を選択します。
-
[接続とセキュリティ] タブの [IAM ロールの管理] セクションで、[このクラスターに IAM ロールを追加] で追加するロールを選択します。
-
[機能] で、[AuroraAnalytics] を選択します。
-
[Add role] を選択します。
AWS CLI を使用して IAM ロールをアタッチするには
-
aws rds add-role-to-db-cluster \ --region us-east-1 \ --db-cluster-identifier my-analytics-cluster \ --feature-name AuroraAnalytics \ --role-arn arn:aws:iam::123456789012:role/AuroraAnalyticsRole
IAM ロールのステータスは、正常にアタッチされると [アクティブ] と表示されます。詳細については、「AWS CLI コマンドリファレンス」の「add-role-to-db-cluster」を参照してください。
ネットワークを設定する
Aurora DB クラスターをプライベートサブネットにデプロイする場合、Amazon S3 および (オプションで) AWS Glue に到達するためのネットワークパスが必要です。これは、VPC エンドポイント (推奨) または NAT ゲートウェイを介して提供できます。
VPC エンドポイントは、パブリックインターネットを経由せずにトラフィックを AWS ネットワーク上に保持し、Amazon S3 ゲートウェイエンドポイントには追加の時間料金が発生しないため、推奨されるアプローチとなっています。NAT ゲートウェイは、VPC がすで NAT ゲートウェイ経由でアウトバウンドトラフィックをルーティングしている場合でも機能しますが、トラフィックはパブリックパス経由で送信され、NAT のデータ処理料金が発生します。このセクションの残りの部分では、VPC エンドポイントの設定について説明します。NAT ゲートウェイの詳細については、「NAT ゲートウェイ」を参照してください。
| サービス | エンドポイントタイプ | 必要な用途 |
|---|---|---|
Amazon S3 (com.amazonaws.region.s3) |
ゲートウェイ | Amazon S3 および Amazon S3 Tables のデータアクセス |
AWS Glue (com.amazonaws.region.glue) |
インターフェイス | AWS Glue Data Catalog アクセス |
Amazon S3 ゲートウェイエンドポイントの作成
Amazon S3 ゲートウェイエンドポイントを作成し、Aurora DB クラスターのサブネットで使用されるルートテーブルに関連付けます。
詳細については、「AWS PrivateLink ガイド」の「Amazon S3 のゲートウェイエンドポイントの作成」についてのページを参照してください。
AWS Glue インターフェイスエンドポイントの作成
AWS Glue Data Catalog を使用している場合は、以下の設定で AWS Glue VPC インターフェイスエンドポイントを作成します。
-
Aurora DB クラスターと同じサブネットにデプロイします。
-
[プライベート DNS] を有効にします。
-
VPC CIDR ブロックから、または Aurora PostgreSQL DB クラスターで使用されるのと同じセキュリティグループから、TCP ポート 443 でのインバウンドトラフィックを許可するセキュリティグループをアタッチします。
詳細については、「AWS PrivateLink ユーザーガイド」の「インターフェイスエンドポイントの作成」についてのページを参照してください。
パラメータグループで機能を有効にする
aurora_analytics.enabled パラメータは、デフォルトで false に設定されています。DB クラスターを作成した後、DB クラスターパラメータグループでこのパラメータを true に設定し、機能を有効にします。
AWS CLI を使用して機能を有効にするには
-
aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name my-analytics-params \ --parameters "ParameterName=aurora_analytics.enabled,ParameterValue=true,ApplyMethod=immediate"
動的パラメータである aurora_analytics.enabled は、再起動なしですぐに適用されます。
注記
これは、DB クラスターがカスタム DB クラスターパラメータグループを使用している場合に適用されます。デフォルトのパラメータグループを変更することはできません。クラスターが引き続きデフォルトを使用している場合は、まずカスタム DB クラスターパラメータグループを作成し、クラスターに関連付けます。別のパラメータグループを関連付けるには、aurora_analytics.enabled 自体が動的であっても、新しいグループを有効にするために DB インスタンスを再起動する必要があります。詳細については、「Aurora ユーザーガイド」の「DB クラスターパラメータグループを使用する」を参照してください。
AWS マネジメントコンソールを使用してこの機能を有効にするには
-
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[Parameter groups] (パラメータグループ) を選択します。
-
Aurora DB クラスターに関連付けられたパラメータグループを選択します。
-
aurora_analytics.enabledを検索します。 -
値を
trueに設定します。 -
[Save changes] (変更の保存) をクリックします。
次のステップ
これらの手順を完了すれば、使用を開始する準備が整います。詳細については、「はじめに」を参照してください。
ワークロードに適した DB インスタンスクラスの選択とサイズ設定に関するガイダンスについては、「ベストプラクティス」を参照してください。