Zenovay は、日次のアナリティクス集計データをスケジュールに基づいて独自の AWS S3 バケットにプッシュできます。バケットと IAM 認証情報はお客様自身でご用意ください。Zenovay は AWS SigV4 で PUT リクエストに署名します。データはお客様のアカウントに保存され、保持ポリシーもお客様が管理します。Zenovay は書き込みを行うだけです。
エクスポートされるデータ
V1 では analytics_daily 集計データをエクスポートします。ダッシュボードで確認できる数値と同じ、ウェブサイトごと・日付ごとの 1 行のデータです。
| カラム | 説明 |
|---|---|
website_id | 行が属するウェブサイトの UUID |
date | 行が集計する日付(UTC) |
total_visitors | その日の総訪問者数 |
unique_visitors | その日のユニーク訪問者数 |
pageviews | その日のページビュー数 |
bounce_rate | 直帰率(0〜1) |
avg_session_duration | 平均セッション時間(秒) |
今後の拡張(BigQuery、Snowflake、カスタムイベントなどのリッチなデータセット)はロードマップに含まれています。この記事では S3 のみを扱います。
必要なもの
- AWS アカウント
- S3 バケット(任意のリージョン)
- 設定するプレフィックスへの
s3:PutObject権限を持つ IAM ユーザー(またはロール)— その他の権限は不要です - その IAM ユーザーのアクセスキー ID とシークレットアクセスキー
- Scale プラン以上の Zenovay チーム
ステップ 1 — IAM ポリシーを作成する
AWS IAM コンソールで、次の最小権限セットでポリシーを作成します。your-bucket と zenovay/ は使用するバケットとプレフィックスに置き換えてください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ZenovayWarehouseExportPut",
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::your-bucket/zenovay/*"
}
]
}
Zenovay はバケット内のオブジェクトの一覧取得、読み取り、削除は行いません。このポリシーは単一プレフィックスへの PutObject のみを許可します。
ステップ 2 — IAM ユーザーを作成する
ステップ 1 のポリシーを新しい IAM ユーザーに付与します。ユーザーのアクセスキーを生成し、アクセスキー ID とシークレットアクセスキーをコピーしてください。ステップ 4 で Zenovay に貼り付けます。
ステップ 3 —(任意)バケットへのライフサイクルポリシーを設定する
スケジュールされた実行ごとに、次のパスに書き込まれます:
s3://your-bucket/<prefix><team_id>/<date>/analytics_daily.csv
オブジェクトキーはべき等です。同じ日付で再実行すると、同じキーが上書きされます。S3 ライフサイクルポリシーを設定して次のことができます:
- 古いオブジェクトを S3 Glacier または Glacier Deep Archive に移行して長期保存コストを削減する
- 長期保存が不要な場合、N 日/年後にオブジェクトを期限切れにする
これはすべてお客様の管理下にあります。Zenovay はバケットのライフサイクルを管理しません。
ステップ 4 — Zenovay で送信先に接続する
- ウェブサイトの Settings → Data セクション → Warehouse タブに移動します
- Add S3 destination をクリックします
- フォームに入力します:
| フィールド | 値 |
|---|---|
| Bucket name | your-bucket |
| AWS region | バケットのあるリージョン(例:eu-central-1) |
| Access key ID | ステップ 2 で取得したもの |
| Secret access key | ステップ 2 で取得したもの |
| Object key prefix | zenovay/(または任意のプレフィックス。IAM ポリシーと一致している必要があります) |
| Schedule | 日次または時間次 |
Zenovay はシークレットアクセスキーを AES-GCM で暗号化して保存し、API レスポンスには絶対に含めません。
ステップ 5 — 送信先をテストする
保存後、送信先の行で Run now をクリックします。Zenovay は次の処理を行います:
- データから最新の
analytics_daily行を読み取ります - CSV としてフォーマットします
s3://your-bucket/<prefix><team_id>/<yesterday>/analytics_daily.csvに PUT します
結果は数秒で表示されます。失敗した場合、エラーメッセージに AWS が拒否した理由が表示されます。通常はバケット名のタイプミス、リージョンの不一致、または IAM 権限の不足です。
スケジュールの周期
- 日次:送信先ごとに 24 時間に 1 回実行されます
- 時間次:毎時 0 分に実行されます
Zenovay の時間次 cron は 1 ティックあたり最大 200 の送信先を処理します。チームに多くの送信先がある場合、実行が数分ずれる場合があります。
一時停止・再開・削除
- Pause はスケジュールされた実行を停止しますが、設定は保持されます。手動の「Run now」は引き続き機能します。
- Resume は同じ
next_run_atクロックでスケジュールされた実行を再開します。 - Delete は送信先の設定とその実行履歴を削除します。S3 バケット内の既存のファイルは削除されません。お客様の管理下に残ります。
プライバシーとアカウント削除
- エクスポートされるのは集計データのみです。個々の訪問者の IP や PII が Zenovay 外に出ることはありません
- 認証情報は AES-GCM で暗号化されて保存されます
- Zenovay アカウントを削除すると、標準の忘れられる権利カスケードの一部として、暗号化された認証情報と送信先の設定が消去されます
よくある質問
MinIO、R2、Wasabi などの非 AWS S3 互換ストアは使用できますか? はい。送信先フォームで Advanced (S3-compatible endpoints) を展開し、プロバイダーの S3 エンドポイント URL を貼り付けてください(例:https://abc123.r2.cloudflarestorage.com)。Cloudflare R2 およびその他の AWS 以外のターゲットについては、リージョンに Auto (Cloudflare R2 / S3-compatible) を選択してください。エンドポイントは公開アクセス可能である必要があります。ローカル MinIO インスタンスに対するテストでは、トンネル(cloudflared または ngrok)経由でエクスポーズし、公開 URL を使用してください。
BigQuery や Snowflake はどうですか? 今後のリリースで提供予定です。同じスケジューリング、プランゲーティング、認証情報ストレージが適用されます。コネクターのみが異なります。
別の AWS アカウントの独自バケットにエクスポートできますか? はい。それがサポートされているモデルです。お客様の IAM ユーザー、バケット、アカウントを使用します。Zenovay は PUT に署名するだけです。
S3 に保存されたデータはどのようにダウンロードしますか? 標準的な AWS ツール(aws s3 cp、AWS コンソール、または任意の S3 クライアント)を使用してください。そこからはお客様のデータです。Athena でクエリを実行したり、Glue/Redshift/BigQuery にロードしたり、独自のパイプラインに取り込んだりできます。
バケットのリージョンはどこを選べばよいですか? ダウンストリームツールがある場所を選択してください。Zenovay はデータ転送料を請求しません。それらは AWS との間で発生します。EU のお客様は通常、データ居住性の理由から eu-central-1 を選択します。