AWS Glue セットアップ
このガイドでは、VeloDBをAWS Glue Icebergカタログに接続するために必要なAWSリソースのセットアップについて説明します。
前提条件
- S3バケット、Glueデータベース、IAMユーザーを作成する権限を持つAWSアカウント
- AWS CLIの設定(Lake Formation権限用、オプション)
ステップ1:S3バケットの作成
- AWS S3コンソール > バケットの作成 に移動
- バケット名を入力(例:
my-lakehouse-bucket) - VeloDBウェアハウスと同じリージョンを選択
- バージョニングを有効にする(推奨)
- バケットを作成をクリック
最適なパフォーマンスのため、バケットのリージョンはVeloDBウェアハウスのリージョンと一致している必要があります。

ステップ2:Glueデータベースの作成
-
AWSコンソールを開き、「Glue」を検索
-
AWS Glueコンソール > Data Catalog > データベースに移動

-
データベースを追加をクリック
-
以下を入力:
- 名前:小文字、数字、アンダースコアのみ使用(例:
lakehouse_iceberg_db) - 場所:
s3://my-lakehouse-bucket/iceberg/
- 名前:小文字、数字、アンダースコアのみ使用(例:
-
データベースを作成をクリック

データベース名にはハイフン(-)を含めることができません。代わりにアンダースコア(_)を使用してください。
ステップ3:IAMユーザーの作成
- IAMコンソール > ユーザー > ユーザーを作成に移動
- ユーザー名を入力(例:
velodb-glue-user)し、次へをクリック - ポリシーを直接アタッチを選択し、ポリシーを作成をクリック
- JSONタブを選択し、以下のポリシーを貼り付け:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"glue:GetDatabase", "glue:GetDatabases",
"glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase",
"glue:GetTable", "glue:GetTables",
"glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable",
"glue:GetPartition", "glue:GetPartitions",
"glue:CreatePartition", "glue:BatchCreatePartition",
"glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition"
],
"Resource": [
"arn:aws:glue:REGION:*:catalog",
"arn:aws:glue:REGION:*:database/lakehouse_*",
"arn:aws:glue:REGION:*:table/lakehouse_*/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject", "s3:PutObject", "s3:DeleteObject",
"s3:ListBucket", "s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::my-lakehouse-bucket",
"arn:aws:s3:::my-lakehouse-bucket/*"
]
},
{
"Effect": "Allow",
"Action": ["lakeformation:GetDataAccess"],
"Resource": "*"
}
]
}
REGIONをあなたのAWSリージョン(例:us-east-1)に、my-lakehouse-bucketを実際のバケット名に置き換えてください。
- Nextをクリックし、ポリシーに名前を付け(例:
VeloDBGlueAccess)、Create policyをクリックします - ユーザー作成画面に戻り、ポリシーリストを更新して新しいポリシーを選択し、Nextをクリックします
- Create userをクリックします
- 新しいユーザーを選択し、Security credentialsタブに移動します
- Create access key > Third-party service > Next > Create access keyをクリックします
- Access Key IDとSecret Access Keyを保存してください - これらはVeloDBで必要になります
ステップ4: Lake Formationの権限を付与する(必要な場合)
一部のリージョン(例:us-east-1)では、Lake Formationがデフォルトで有効になっており、Glueアクセスを制御しています。
AWS Account IDを確認する: AWSコンソールの右上にあるユーザー名をクリックして、Account ID(12桁の数字)を確認してください。
AWS CLIで権限を付与:
# Replace ACCOUNT_ID (12 digits), YOUR_USER, and YOUR_DATABASE with your values
aws lakeformation grant-permissions \
--principal DataLakePrincipalIdentifier=arn:aws:iam::123456789012:user/velodb-glue-user \
--resource '{"Database":{"Name":"lakehouse_iceberg_db"}}' \
--permissions CREATE_TABLE DESCRIBE ALTER DROP
VeloDBで「Lake Formation permission denied」エラーが表示される場合、このステップが必要です。
ステップ5: サンプルデータの書き込み(オプション)
PyIcebergを使用してテーブルを作成し、テスト用のサンプルデータを書き込みます:
pip install "pyiceberg[glue,s3]" pyarrow pandas
from pyiceberg.catalog import load_catalog
import pyarrow as pa
import pandas as pd
# Connect to Glue catalog (replace with your values)
catalog = load_catalog("glue", **{
"type": "glue",
"s3.access-key-id": "YOUR_ACCESS_KEY",
"s3.secret-access-key": "YOUR_SECRET_KEY",
"s3.region": "us-east-1",
"glue.access-key-id": "YOUR_ACCESS_KEY",
"glue.secret-access-key": "YOUR_SECRET_KEY",
"glue.region": "us-east-1",
"warehouse": "s3://my-lakehouse-bucket/iceberg",
})
# Create a sample table
schema = pa.schema([
("id", pa.int64()),
("name", pa.string()),
("value", pa.float64()),
])
table = catalog.create_table(
"lakehouse_iceberg_db.sample_table",
schema=schema
)
# Write sample data
df = pd.DataFrame({
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"value": [100.5, 200.3, 150.8]
})
table.append(pa.Table.from_pandas(df))
print("Sample data written successfully!")
リージョナルエンドポイントリファレンス
| Region | Glue Endpoint | S3 Endpoint |
|---|---|---|
| us-east-1 | https://glue.us-east-1.amazonaws.com | https://s3.us-east-1.amazonaws.com |
| us-west-2 | https://glue.us-west-2.amazonaws.com | https://s3.us-west-2.amazonaws.com |
| eu-west-1 | https://glue.eu-west-1.amazonaws.com | https://s3.eu-west-1.amazonaws.com |
| ap-southeast-1 | https://glue.ap-southeast-1.amazonaws.com | https://s3.ap-southeast-1.amazonaws.com |
| ap-northeast-1 | https://glue.ap-northeast-1.amazonaws.com | https://s3.ap-northeast-1.amazonaws.com |
VeloDBに必要な値
セットアップ完了後、VeloDBに接続するために以下の値が必要になります:
| 値 | 説明 |
|---|---|
| S3 Bucket Path | s3://my-lakehouse-bucket/iceberg |
| Glue Region | AWSリージョン(例:us-east-1) |
| Glue Endpoint | https://glue.{region}.amazonaws.com |
| Access Key ID | IAMユーザー作成時に取得 |
| Secret Access Key | IAMユーザー作成時に取得 |
セットアップの確認
テーブルを作成した後、AWS Glue ConsoleのData Catalog > Tablesでテーブルを確認できます:

S3内のIcebergデータファイルも確認できます:

次のステップ
AWSインフラストラクチャの準備が完了したら、AWS Glue Connection Guideに進んで、ビジュアルインターフェースを使用してVeloDBをGlueカタログに接続してください。