AWS Glue カタログ
AWS Glueは、AWSが提供する完全マネージド型のサーバーレスメタデータストレージサービスです。AWS Glue Catalogを作成することで、VeloDB CloudでAWS Glueによって管理されたメタデータを持つAmazon S3に保存されたデータレークテーブルを直接クエリできます。
VeloDB CloudはAWS Glue経由で以下の2つのテーブル形式へのアクセスをサポートします:
- Iceberg: ACIDトランザクション、Schema Evolution、Time Travelをサポートする現代的なオープンテーブル形式。
- Hive: Hadoopエコシステムとの幅広い互換性を持つ従来のHiveテーブル形式。
前提条件
AWS Glue Catalogを作成する前に、以下の条件が満たされていることを確認してください:
AWS準備
- AWSアカウントを持っている。
- Amazon S3バケットを準備する(IcebergまたはHiveテーブルデータの保存用)。
- アクセス認証情報(Access KeyまたはIAM Role)を準備し、対応するGlueおよびS3権限を設定する。
- Lake Formation権限を設定する(Lake Formation権限制御が有効になっている場合)。
AWS権限設定
1. IAM権限ポリシー
VeloDBを使用してAWS Glue Catalog経由でS3に保存されたIcebergまたはHiveテーブルにアクセスするには、以下のIAM権限ポリシーを設定する必要があります:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GlueCatalogAccess",
"Effect": "Allow",
"Action": [
"glue:GetDatabase",
"glue:GetDatabases",
"glue:CreateDatabase",
"glue:UpdateDatabase",
"glue:DeleteDatabase",
"glue:GetTable",
"glue:GetTables",
"glue:GetTableVersion",
"glue:GetTableVersions",
"glue:CreateTable",
"glue:UpdateTable",
"glue:DeleteTable",
"glue:GetPartition",
"glue:GetPartitions",
"glue:BatchGetPartition",
"glue:CreatePartition",
"glue:UpdatePartition",
"glue:DeletePartition",
"glue:BatchCreatePartition",
"glue:BatchUpdatePartition",
"glue:BatchDeletePartition",
"glue:GetUserDefinedFunction",
"glue:GetUserDefinedFunctions",
"glue:DeleteUserDefinedFunction"
],
"Resource": [
"arn:aws:glue:<region>:<account-id>:catalog",
"arn:aws:glue:<region>:<account-id>:database/*",
"arn:aws:glue:<region>:<account-id>:table/*/*",
"arn:aws:glue:<region>:<account-id>:userDefinedFunction/*/*"
]
},
{
"Sid": "S3DataAccess",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::<bucket-name>",
"arn:aws:s3:::<bucket-name>/*"
]
}
]
}
設定手順
<region>を実際のAWSリージョン(例:us-east-1)に置き換えてください。
<account-id>をお客様のAWSアカウントIDに置き換えてください。
<bucket-name>をIcebergまたはHiveテーブルデータが保存されている実際のS3バケット名に置き換えてください。より細かい権限制御を行う場合は、
*を特定のデータベース名およびテーブル名に置き換えてください。
2. Lake Formation権限設定
お客様のAWSアカウントでLake Formation権限制御が有効になっている場合、IAMポリシーの設定だけではGlue Data Catalogにアクセスできず、Lake Formationで対応する権限を付与する必要があります。
有効になっているかどうかの確認方法
Insufficient Lake Formation permission(s)のようなエラーが発生した場合、Lake Formation権限の設定が必要であることを示しています。
-
AWS Lake Formationコンソールにサインインします。
-
左側のナビゲーションバーでData permissionsを選択します。
-
Grantをクリックします。
-
以下のオプションを設定します:
- Principals:IAM users and rolesを選択し、お客様のIAMユーザーまたはロールを選択します。
- LF-Tags or catalog resources:Named Data Catalog resourcesを選択します。
- Catalog:お客様のCatalogを選択します。
- Databases:対象のデータベースまたはAll databasesを選択します。
- Tables:対象のテーブルまたはAll tablesを選択します。
-
必要な権限をチェックします:
- Database permissions:Create database、Alter、Drop、Describe。
- Table permissions:Select、Insert、Delete、Describe、Alter、Drop。
-
Grantをクリックします。
ネットワーク要件
- VeloDB CloudがAWS Glueサービスエンドポイントにアクセスできる必要があります。
- VeloDB Cloudがデータストレージ(例:S3)にアクセスできる必要があります。
SaaS ModeのVeloDB Cloudについて
- Warehouseと同じリージョンのGlue EndpointsおよびS3 Bucketsにのみアクセス可能です。
BYOC ModeのVeloDB Cloudについて
- Glue EndpointおよびS3 Bucketサービスへのアクセスには、デプロイメント時のネットワークポリシーを参照する必要があります。create-vpc-network-resourcesを参照してください。
Catalogの作成
以下の手順に従って、VeloDB CloudでAWS Glue Catalogを作成します。
ステップ1:作成ページへのアクセス
- VeloDB Cloudコンソールにサインインします。
- 左側のナビゲーションバーでCatalogsをクリックします。
- Add External Catalogボタンをクリックします。
- Data Lakeカテゴリの下でAWS Glueを選択します。
ステップ2:基本情報の入力
Basic Informationセクションで、Catalogの基本識別情報を設定します。

| フィールド | 必須 | 説明 |
|---|---|---|
| Catalog Name | ✓ | Catalogの一意な名前で、SQLクエリでこのデータソースを識別するために使用されます。 |
| Comment | オプションの説明情報。 |
ステップ3:Metastoreの設定
Metastoreセクションで、AWS Glueメタデータサービスの接続情報を設定します。
Table Formatの選択
まず、アクセスしたいテーブル形式を選択します。異なるテーブル形式には異なるパラメータが必要です。
| Table Format | 説明 |
|---|---|
| Iceberg | Apache Icebergオープンテーブル形式。 |
| Hive | 従来のHiveテーブル形式。 |
Iceberg形式の設定
Iceberg形式を選択した場合、以下のパラメータを設定する必要があります:

| フィールド | 必須 | 説明 |
|---|---|---|
| Warehouse | ✓ | VeloDBがIcebergデータベースを作成する際のデフォルトのデータファイル保存場所。S3 URI形式、例:s3://my-bucket/iceberg-warehouse。 |
| AWS Glue Region | ✓ | AWS Glueサービスが配置されているリージョン。 |
| AWS Glue Endpoint | ✓ | AWS Glue APIエンドポイント、例:https://glue.us-east-1.amazonaws.com 。 |
Hive形式の設定
Hive形式を選択した場合、以下のパラメータを設定する必要があります:
注意:Hive形式は現在クエリのみをサポートしており、データベースやテーブルの作成はサポートしていません。

| フィールド | 必須 | 説明 |
|---|---|---|
| AWS Glue Region | ✓ | AWS Glueサービスが配置されているリージョン。 |
| AWS Glue Endpoint | ✓ | AWS Glue APIエンドポイント、例:https://glue.us-east-1.amazonaws.com 。 |
ステップ4:Metastore認証の設定
Authenticationセクションで、AWS Glueメタデータサービスにアクセスするための認証情報を設定します。
VeloDB Cloudは2つの認証方法をサポートしています:
方法1:Access Key
AWS IAMユーザーのアクセスキーを使用して認証します。これは最もシンプルな設定方法で、迅速なテストおよび開発環境に適しています。

| フィールド | 必須 | 説明 |
|---|---|---|
| AK | ✓ | AWS Access Key ID。 |
| SK | ✓ | AWS Secret Access Key。 |
セキュリティ推奨事項:
- AWSルートアカウントのアクセスキーは使用しないでください。
- VeloDB Cloud専用のIAMユーザーを作成してください。
- 最小権限の原則に従い、必要なGlueおよびS3権限のみを付与してください。
- アクセスキーを定期的にローテーションしてください。
方法2:Cross-account IAM
クロスアカウントIAMロールを使用して認証します。これはより安全な方法で、本番環境に推奨されます。

| フィールド | 必須 | 説明 |
|---|---|---|
| Cross-Account Role ARN | ✓ | お客様のAWSアカウントで作成したIAMロールのARN。形式はarn:aws:iam::<your-account-id>:role/<role-name>。 |
設定手順:
ページのAuthorization Guidelines Helpリンクをクリックして、詳細な設定手順を確認してください。
ステップ5:ストレージアクセスの設定
Storageセクションで、S3のデータファイルにアクセスするための認証情報を設定します。
VeloDB CloudはS3に保存されている実際のデータファイルにアクセスする必要があります。Metastoreの認証情報を再利用するか、ストレージアクセス認証情報を別途設定することができます。
Metastore認証の再利用
Use the authentication details configured for Metastore accessスイッチをオンにして、Metastoreと同じ認証情報を使用してS3にアクセスします。

適用シナリオ:
- GlueメタデータとS3データが同じAWSアカウントにある。
- 同じIAMユーザー/ロールを使用してGlueとS3にアクセスする。
- 設定を簡素化したい。
ストレージ認証の個別設定
Use the authentication details configured for Metastore accessスイッチをオフにして、S3アクセス用の認証情報を別途設定します。

| フィールド | 必須 | 説明 |
|---|---|---|
| Region | ✓ | S3バケットが配置されているリージョン。Glueと同じリージョンである必要があります。 |
| Authentication | ✓ | Access KeyまたはCross-account IAMを選択;設定方法はMetastore認証と同様です。 |
認証方法1:Access Key
AWS IAMユーザーのアクセスキーを使用して認証します。

| フィールド | 必須 | 説明 |
|---|---|---|
| AK | ✓ | AWS Access Key ID。 |
| SK | ✓ | AWS Secret Access Key。 |
認証方法2:Cross-account IAM
クロスアカウントIAMロールを使用して認証します。これはより安全で、本番環境に推奨されます。

| フィールド | 必須 | 説明 |
|---|---|---|
| Cross-Account Role ARN | ✓ | お客様のAWSアカウントで作成したIAMロールのARN。形式はarn:aws:iam::<your-account-id>:role/<role-name>。 |
設定手順:
Authorization Guidelines Helpリンクをクリックして、詳細な設定手順を確認してください。
適用シナリオ:
- GlueとS3データが異なるAWSアカウントにある。
- メタデータアクセスとデータアクセスで異なる権限制御を使用する必要がある。
ステップ6:詳細設定(オプション)
Advanced Settingsをクリックして、より多くの設定オプションを展開します。

詳細設定には通常以下が含まれます:
- メタデータキャッシュ設定。
- 接続タイムアウト設定。
ヒント:ほとんどのシナリオでは、デフォルト値で十分です。
ステップ7:作成の確認
- すべての設定情報が正しいかどうかを確認します。
- ConfirmボタンをクリックしてCatalogを作成します。
- 接続検証の完了を待ちます。
作成が成功すると、Catalogリストで新しく作成されたAWS Glue Catalogを確認できます。
Catalogの使用
作成が成功した後、SQL EditorでCatalogを使用してデータをクエリできます。
データベースおよびテーブルの表示
-- View all databases under the Catalog
SHOW DATABASES FROM my_glue_catalog;
-- View all tables under a database
SHOW TABLES FROM my_glue_catalog.my_database;
-- View table schema
DESCRIBE my_glue_catalog.my_database.my_table;
クエリデータ
-- Query data
SELECT * FROM my_glue_catalog.my_database.my_table LIMIT 100;
-- Query with conditions
SELECT column1, column2
FROM my_glue_catalog.my_database.my_table
WHERE date_column >= '2024-01-01';