
FivetranでAurora PostgreSQLからSnowflakeへの全経路をAWS PrivateLinkで接続してみた
かわばたです。
Fivetran を使って Aurora PostgreSQL から Snowflake へデータを連携する際、通常はパブリックインターネット経由で接続しますが、セキュリティ要件が厳しい環境では全経路をプライベートネットワーク内に閉じたいケースがあります。
今回、Source 側(Aurora PostgreSQL → Fivetran)と Destination 側(Fivetran → Snowflake)の両方で AWS PrivateLink を使い、パブリックインターネットを経由しない閉域構成を試してみたので、手順と確認結果をまとめます。
機能概要
今回構築する全体構成は以下のとおりです。
Aurora PostgreSQL → NLB → VPC Endpoint Service ←[PrivateLink]← Fivetran →[PrivateLink]→ Snowflake
Source 側と Destination 側で PrivateLink の仕組みが異なります。
Source 側(Aurora PostgreSQL → Fivetran)
ユーザーが Aurora PostgreSQL の前段に internal NLB と VPC Endpoint Service を構築します。Fivetran は自社 VPC に Interface VPC Endpoint を作成して接続します。ユーザーが構築する範囲は Host VPC 側のみです。
Destination 側(Fivetran → Snowflake)
Snowflake サポートに PrivateLink の有効化を申請し、Fivetran のサポートと連携して接続を設定します。ユーザーは Snowflake 側のネットワークポリシー設定と Fivetran の Destination 設定を行います。

制限事項
共通
- Fivetran の Business Critical プランが必要です
Source 側(Aurora PostgreSQL)
- 2026年4月15日時点では、PostgreSQL コネクタの AWS PrivateLink セルフサービス設定は Beta です
- NLB に Security Group を利用する場合は、作成時に少なくとも 1 つ関連付けておく必要があります。
作成時に Security Group を関連付けなかった NLB には、後から追加できません。 - Aurora PostgreSQL では TLS を有効化しておく必要があります
Destination 側(Snowflake)
- Snowflake アカウントが Business Critical 以上のエディションである必要があります
- 2026年3月30日時点では、対応リージョンに制限があります
- PrivateLink 接続の場合、以下の Snowflake パラメータの設定が必要です(Fivetran公式ドキュメント記載のパラメータ名に従う)
PREVENT_LOAD_FROM_INLINE_URL=FALSEREQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION=FALSE
QUOTED_IDENTIFIERS_IGNORE_CASE=FALSEである必要があります(ソース名の大文字小文字を保持するため)- Snowflake はパスワード認証を廃止予定のため、キーペア認証が推奨されています
コスト
- AWS PrivateLink(VPC Endpoint Service)の利用料金が発生します(エンドポイント時間 + データ処理量)
- NLB の利用料金が発生します
- Snowflake / Fivetran 側の PrivateLink 利用に伴う追加費用が発生する可能性があります
- Fivetran の利用料金(Monthly Active Rows 等に基づく)および Snowflake のコンピュート・ストレージ料金は別途発生します
前提条件
| 項目 | 値 |
|---|---|
| Fivetran プラン | Business Critical |
| Aurora PostgreSQL | 作成済み(VPC 内の private subnet に配置) |
| Snowflake | AWS、Business Critical エディション |
| AWS リージョン | ap-northeast-1 |
| Source 側 PrivateLink 設定方式 | セルフサービス(2026年4月15日時点では Beta) |
| Destination 側 PrivateLink | Snowflake サポートおよび Fivetran サポートとの連携が必要 |
事前準備
Snowflake 側の準備
セットアップスクリプトの実行
Fivetran の公式ドキュメントに記載されているセットアップスクリプトを Snowflake のワークシートで実行します。このスクリプトで Fivetran 用のロール・ユーザー・ウェアハウス・データベースを作成します。
USE ROLE SECURITYADMIN;
-- Fivetran 用ロールの作成
CREATE ROLE IF NOT EXISTS FIVETRAN_ROLE;
-- Fivetran 用ユーザーの作成
CREATE USER IF NOT EXISTS FIVETRAN_USER
DEFAULT_ROLE = FIVETRAN_ROLE;
-- ロールをユーザーに割り当て
GRANT ROLE FIVETRAN_ROLE TO USER FIVETRAN_USER;
USE ROLE SYSADMIN;
-- Fivetran 用ウェアハウスの作成
CREATE WAREHOUSE IF NOT EXISTS FIVETRAN_WAREHOUSE
WAREHOUSE_SIZE = 'XSMALL'
AUTO_SUSPEND = 60
AUTO_RESUME = TRUE;
-- Fivetran 用データベースの作成
CREATE DATABASE IF NOT EXISTS FIVETRAN_DATABASE;
USE ROLE SECURITYADMIN;
-- ウェアハウスとデータベースの権限を Fivetran ロールに付与
GRANT USAGE ON WAREHOUSE FIVETRAN_WAREHOUSE TO ROLE FIVETRAN_ROLE;
GRANT CREATE SCHEMA ON DATABASE FIVETRAN_DATABASE TO ROLE FIVETRAN_ROLE;
GRANT USAGE ON DATABASE FIVETRAN_DATABASE TO ROLE FIVETRAN_ROLE;
USE ROLE ACCOUNTADMIN;
-- デフォルトウェアハウスの設定
ALTER USER FIVETRAN_USER SET DEFAULT_WAREHOUSE = FIVETRAN_WAREHOUSE;
-- Snowflakeの設定パラメータ
ALTER ACCOUNT SET PREVENT_LOAD_FROM_INLINE_URL = FALSE;
ALTER ACCOUNT SET REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION = FALSE;
各 SQL が正常に実行されれば OK です。
キーペア認証の設定
Snowflake のパスワード認証は廃止予定のため、キーペア認証を設定します。ローカル環境で OpenSSL を使って RSA 鍵ペアを生成します。
秘密鍵を生成します。
openssl genrsa -out rsa_key.pem 2048
秘密鍵から公開鍵を生成します。
openssl rsa -in rsa_key.pem -pubout -out rsa_key.pub
生成した公開鍵を Snowflake ユーザーに割り当てます。公開鍵ファイルの中身から -----BEGIN PUBLIC KEY----- と -----END PUBLIC KEY----- のヘッダー・フッターおよび改行を除いた部分を使用します。
USE ROLE SECURITYADMIN;
ALTER USER FIVETRAN_USER SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...(公開鍵の内容)';
設定が反映されたことを確認します。
DESC USER FIVETRAN_USER;
RSA_PUBLIC_KEY_FP にフィンガープリントが表示されていれば OK です。

Aurora PostgreSQL 側の準備
Aurora PostgreSQL の作成
Aurora PostgreSQL の作成手順については割愛しますが、以下の点を確認しておきます。
- エンジンは Aurora PostgreSQL
- ホスト側 VPC のサブネットを選ぶ形でサブネットグループを作成する
- 検証では Aurora PostgreSQL を使用しました
- 「開発用」を選びシングルノードにする
Fivetran ユーザーの作成と権限付与
Aurora PostgreSQL に Fivetran 用のユーザーを作成し、必要な権限を付与します。
-- Fivetran 用ユーザーの作成
CREATE USER fivetran_user WITH PASSWORD 'your_password';
同期対象のスキーマに対して SELECT 権限を付与します。
GRANT USAGE ON SCHEMA public TO fivetran_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO fivetran_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO fivetran_user;
クラスターエンドポイントのIPアドレスを確認する
NLB のターゲットグループに登録するため、Aurora のクラスターエンドポイントを名前解決して IP アドレスを取得します。
dig +short <Aurora writer endpoint>
返された IP アドレスを控えておきます。
試してみた
Destination 側: Snowflake PrivateLink の設定
Snowflake PrivateLink の有効化申請
AWS PrivateLink を使用するには、SnowflakeサポートとFivetranサポートの双方に連絡が必要です。
まず、Snowflake サポートに以下の情報を送付して PrivateLink の有効化を依頼します。
- Fivetran の AWS VPC アカウント ID:
arn:aws:iam::834469178297:root - Snowflake アカウント URL:
https://<account>.snowflakecomputing.com - Snowflake アカウント名
- Snowflake アカウントロケーター
- クラウドプラットフォーム: AWS

PrivateLink 設定情報の取得
Snowflake サポートからの返信を受け取ったら、Snowflake で PrivateLink 設定情報を取得します。
USE ROLE ACCOUNTADMIN;
SELECT SYSTEM$GET_PRIVATELINK_CONFIG();
JSON 形式の結果が返却されれば OK です。

取得した VPC エンドポイントサービス名と SYSTEM$GET_PRIVATELINK_CONFIG() の出力結果を、Fivetran のサポートに送付します。

Fivetran のサポートより PrivateLink 接続のためのリソース ID(vpc_endpoint_id)が提供されます。これで PrivateLink の接続準備が完了です。

ネットワークポリシーの設定
Fivetran から Snowflake へ PrivateLink 経由でアクセスできるよう、ネットワークポリシーを設定します。Fivetran の VPC 内部 CIDR 10.0.0.0/8 を許可リストに追加します。
USE ROLE ACCOUNTADMIN;
use database FIVETRAN_DATABASE;
CREATE OR REPLACE NETWORK RULE all_ips
TYPE=IPV4 VALUE_LIST=('10.0.0.0/8')
MODE=INGRESS COMMENT='Fivetran VPC CIDR';
CREATE OR REPLACE NETWORK RULE aws_vpceid_access
MODE = INGRESS
TYPE = AWSVPCEID
VALUE_LIST = ('vpce-××××××'); -- これが vpc_endpoint_id です
CREATE OR REPLACE NETWORK POLICY fivetran_private_link_access
ALLOWED_NETWORK_RULE_LIST=('aws_vpceid_access', 'all_ips') ;
ALTER USER FIVETRAN_USER SET NETWORK_POLICY = fivetran_private_link_access;
ネットワークポリシーが正常に作成されたことを確認します。
SHOW NETWORK POLICIES;
作成したポリシーが一覧に表示されれば OK です。

Fivetran で Snowflake Destination を作成
Fivetran のダッシュボードにログインし、Snowflake Destination を作成します。
Fivetran の画面左側のメニューから Destinations → Add destination を選択します。
Destination type で Snowflake を選択し、以下の項目を設定します。
| 設定項目 | 設定値 |
|---|---|
| Destination Name | 任意の名前 |
| Deployment Model | SaaS |
| Connection Method | PrivateLink |
| Host | PrivateLink 用のホスト URL |
| User | FIVETRAN_USER |
| Database | FIVETRAN_DATABASE |
| Authentication | KEY-PAIR |
| Private Key | 秘密鍵の内容 |
| Is Private Key Encrypted | 暗号化鍵を使用した場合は ON + パスフレーズを入力 |
| Default Virtual Warehouse | FIVETRAN_WAREHOUSE |
| Data Processing Location | データ処理を行うリージョンを選択 |
| Timezone | タイムゾーンを選択 |


設定が完了したら Save & Test をクリックします。
Destination の接続テスト確認
Save & Test をクリックすると、Fivetran が自動的に以下のバリデーションテストを実行します。
- Host Connection: ホストへのアクセスと認証情報の検証
- Passphrase Validation: 秘密鍵とパスフレーズの検証(キーペア認証の場合)
- Default Warehouse: ウェアハウスの存在確認とデフォルト設定の検証
- Database Connection: 指定データベースへの接続確認
- Permission Test:
CREATE SCHEMAとCREATE TEMPORARY TABLES権限の検証

すべてのテストが Passed になれば OK です。
Source 側: Aurora PostgreSQL PrivateLink の設定
Security Group を作成する
NLB に Security Group を使う場合は作成時に関連付ける必要があるため、先に作成しておきます。
NLB 用 Security Group


Aurora 用 Security Group の確認
Aurora の Security Group に、NLB 用 Security Group からの TCP 5432 inbound が許可されていることを確認します。
Aurora の Security Group では、送信元として別の Security Group を指定できます。これにより、Aurora への到達を NLB 経由に限定できます。

internal NLB を作成する
以下の設定で NLB を作成します。
| 設定項目 | 値 |
|---|---|
| タイプ | Network Load Balancer |
| Scheme | internal |
| VPC | Aurora が配置された VPC |
| サブネット | 2 AZ 分の private subnet |
| Security Group | NLB 用 Security Group |

Target Group を作成して Aurora の IP を登録する
| 設定項目 | 値 |
|---|---|
| Target type | ip |
| Protocol | TCP |
| Port | 5432 |
| VPC | Aurora が配置された VPC |
| Health check | TCP |

ターゲットとして、事前準備で取得した Aurora クラスターエンドポイントのIPアドレスを登録します。
ヘルスチェックが Healthy になることを確認します。

Listener を設定する
NLB に TCP 5432 の Listener を追加し、作成した Target Group に転送する設定にします。
| 設定項目 | 値 |
|---|---|
| Protocol | TCP |
| Port | 5432 |
| Default action | 作成した Target Group に転送 |

VPC Endpoint Service を作成する
VPC コンソールの Endpoint services から作成します。
| 設定項目 | 値 |
|---|---|
| Load balancer type | Network |
| NLB | 作成した NLB |
| Acceptance required | 有効 |
作成後、サービス名(com.amazonaws.vpce.<region>.vpce-svc-xxxxxxxxx)を控えます。この値を Fivetran のコネクタ設定で使用します。

Fivetran の AWS アカウントを Allow principals に追加する
VPC Endpoint Service の Allow principals に、Fivetran の AWS アカウントを追加します。
arn:aws:iam::834469178297:root

Fivetran で Aurora PostgreSQL コネクタの接続設定を行う
Fivetran のダッシュボードで Aurora PostgreSQL コネクタを作成します。
Connectors → Add connector から Amazon Aurora PostgreSQL を選択します。
Destination には上述の Snowflake PrivateLink の Destination を選択します。
以下の設定を行います。
| 設定項目 | 値 |
|---|---|
| Connection Method | AWS PrivateLink |
| VPC Endpoint Service Name | 前手順で控えたサービス名 |
| AWS Region | VPC Endpoint Service のリージョン |
| Host | Aurora の writer endpoint |
| Port | 5432 |
| User | Fivetran 用ユーザー |
| Password | ユーザーのパスワード |
| Database | データベース名 |



Fivetran からの接続リクエストを Accept する
Fivetran 側で設定を保存すると、Fivetran が自社 VPC に Interface VPC Endpoint を作成し、VPC Endpoint Service への接続リクエストが送信されます。
AWS コンソールの VPC Endpoint Service の Endpoint connections タブで、Fivetran からの接続リクエストを確認し、Accept します。



ステータスが Available になれば問題ないです。
コネクタの接続テストを実行する
Fivetran のコネクタ設定画面で Save & Test を実行します。

すべてのテストが Passed になれば OK です。
End-to-End 確認
同期の実行と確認
接続テストが完了したら、Select Data to Sync で同期対象のスキーマ・テーブルを選択し、同期を実行します。

Snowflake 側でデータが連携されていることを確認します。

データが取得できれば、Aurora PostgreSQL → Fivetran → Snowflake の全経路が AWS PrivateLink 経由で接続された状態で同期が完了です。
最後に
Fivetran の公式ドキュメントに従って、Aurora PostgreSQL(Source)と Snowflake(Destination)の両方で AWS PrivateLink を使った閉域構成での接続を試してみました。
手順としては、Destination 側(Snowflake)は Snowflake サポートや Fivetranサポートとのやり取りが発生するため、PrivateLink の有効化までに時間がかかる点は留意が必要です。一方、Source 側(Aurora PostgreSQL)はセルフサービス(Beta)で完結するため、AWS リソースの構築を含めても比較的スムーズに進められました。
セキュリティ要件でパブリックインターネット経由の通信を全経路で避けたい場合には、Source・Destination 双方に PrivateLink を適用する構成は有効な選択肢です。この記事が何かの参考になれば幸いです!







