Amazon AppFlow × SaaS データ統合設計パターン5選|SAA-C03 頻出 AppFlow vs Glue vs DataSync 選択基準を完全攻略
AWS SAA-C03 で頻出の Amazon AppFlow を完全整理。Salesforce/ServiceNow などの SaaS データを AWS に取り込む5つの設計パターン(S3連携・Redshift DWH統合・EventBridge イベント駆動・Lake Formation ガバナンス・AppFlow vs Glue vs DataSync 選択基準)を体系化。試験シナリオを即断できる粒度まで分解する。
「AppFlow は “SaaS データを AWS に取り込むための専用ゲートウェイ” だ。Glue や DataSync と混同して失点するパターンが SAA-C03 で頻発する。AppFlow を選ぶのは『コード不要で SaaS API と接続し、スケジュール/イベント駆動でデータを転送したい』というシナリオだけ。ETL 変換が複雑なら Glue、オンプレファイルの移行なら DataSync、DB 移行なら DMS。この4サービスの使い分けを即答できるかどうかが合否を分ける」 — 本記事では SAA-C03 頻出の Amazon AppFlow 設計パターン5選を体系化し、SaaS データ統合の選択軸から試験シナリオを即断できる粒度まで分解する。
※ 本記事はアフィリエイト広告(Amazon アソシエイト等)を含みます
📑 目次
- 結論:AppFlow を選ぶ判定軸
- AppFlow の基本構造(フロー・コネクタ・トリガー・変換)
- パターン1:Salesforce → S3 → Athena 分析(バッチ取り込み)
- パターン2:EventBridge トリガーによるイベント駆動 SaaS 連携
- パターン3:AppFlow → Redshift(DWH/BI 統合)
- パターン4:AppFlow + Lake Formation データガバナンス統合
- パターン5:AppFlow vs Glue vs DataSync vs DMS 4サービス選択ガイド
- 試験頻出シナリオ → 解法パターン早見表
- 次のアクション チェックリスト
- 関連記事
- 関連サイト
1. 結論:AppFlow を選ぶ判定軸
Amazon AppFlow は「SaaS アプリケーションと AWS サービスの間でデータを安全に転送するフルマネージド統合サービス」だ。SAA-C03 が問うのは「どのサービスで SaaS データを取り込むか」という選択力であり、AppFlow・Glue・DataSync・DMS の誤選択が失点の主因となる。
AppFlow が最適なシナリオ:
| シナリオ | 理由 |
|---|---|
| Salesforce/ServiceNow/Marketo 等の SaaS API からデータを取り込みたい | 50+ のビルトインコネクタで API 接続をコード不要で設定できる |
| スケジュール実行またはイベント発生時に自動転送したい | トリガー設定で on-demand/scheduled/event-driven を選択可能 |
| データマスキング・フィルタリング・フォーマット変換が必要 | 組み込み変換機能(フィールドマッピング・マスク・フィルタ・数値演算)を UI で設定できる |
| ネットワークを公衆インターネットに出したくない | AWS PrivateLink によるプライベートフロー対応 |
2. AppFlow の基本構造
AppFlow の動作を理解するには「フロー・コネクタ・トリガー・変換」の4要素を押さえる。
フロー(Flow)
AppFlow の実行単位。1つのフローが「送信元 → 変換 → 送信先」の1本のパイプラインを定義する。フローは独立して管理・モニタリングができ、CloudWatch Metrics でフロー実行状況を監視できる。
コネクタ(Connector)
送信元・送信先の接続先を定義するモジュール。AWS が提供するビルトインコネクタと、カスタム Connector SDK で自作したプライベートコネクタの2種がある。
主要な SaaS ソース(送信元)コネクタ:
| カテゴリ | 代表サービス |
|---|---|
| CRM | Salesforce, HubSpot, Zoho CRM |
| サービス管理 | ServiceNow, Zendesk, Freshdesk |
| マーケティング | Marketo, Pardot, Mailchimp |
| コラボレーション | Slack, Google Analytics |
| ERP/財務 | SAP OData, Infor Nexus |
送信先(AWS 側)コネクタ:
| 送信先 | 主な用途 |
|---|---|
| Amazon S3 | データレイク蓄積・Athena 分析 |
| Amazon Redshift | DWH/BI 統合 |
| Amazon EventBridge | イベント駆動ワークフローの起点 |
| Salesforce(双方向) | SaaS 間双方向同期 |
トリガー(Trigger)
| トリガー種別 | 説明 | ユースケース |
|---|---|---|
| On-Demand | 手動実行またはAPIから起動 | 初回データ投入・スポット実行 |
| Scheduled | cronベースの定期実行 | 日次バッチ・時間集計 |
| Event(SaaSイベント) | SaaS 側のデータ変更を検知して起動 | Salesforce の商談ステータス変更をリアルタイム連携 |
変換(Transformation)
AppFlow は ETL の “T(Transform)” として、以下の組み込み変換をコード不要で設定できる:
- フィールドマッピング:送信元のカラム名を送信先のスキーマにマッピング
- フィルタリング:条件式でレコードを絞り込み(例:
Amount > 10000) - マスキング:クレジットカード番号・電話番号等の PII を部分マスク
- 数値演算:フィールドの加算・減算・文字列連結
3. パターン1:Salesforce → S3 → Athena 分析
課題:営業チームが使う Salesforce の商談データを毎日 AWS に取り込み、Athena で SQL 分析したい。EC2 ベースのカスタムスクリプトを廃止してサーバーレス化したい。
アーキテクチャ:
Salesforce(CRM)
↓ [AppFlow Scheduled Flow - 毎日 02:00]
↓ フィールドマッピング + 金額フィルタ(Amount > 0)
Amazon S3(データレイク)/ Parquet 形式
↓ [AWS Glue Crawler - スキーマ自動検出]
AWS Glue Data Catalog(テーブル定義)
↓
Amazon Athena(SQL クエリ)→ QuickSight(可視化)
設計のポイント:
| 選択 | 理由 |
|---|---|
| AppFlow で Salesforce 接続 | Salesforce API 認証(OAuth 2.0)を AppFlow が管理。カスタムコード不要 |
| 出力を Parquet 形式に変換 | AppFlow は CSV/JSON/Parquet を選択可能。Athena 向けは Parquet が最適(コスト・速度) |
| Glue Crawler でカタログ化 | AppFlow が S3 に書いたファイルのスキーマを Glue Crawler が自動登録 |
| Athena で直接クエリ | S3 上の Parquet をサーバーレスで SQL 分析。EC2 ゼロ |
4. パターン2:EventBridge トリガーによるイベント駆動 SaaS 連携
課題:ServiceNow でインシデントが「Critical」に変化した瞬間に、Slack 通知・S3 ログ保存・Lambda による自動エスカレーション処理を同時に実行したい。
アーキテクチャ:
ServiceNow(インシデント管理)
↓ [AppFlow Event-triggered Flow]
↓ フィルタ:Severity = 'Critical'
Amazon EventBridge(イベントバス)
↓
├─ Rule 1 → AWS Lambda(自動エスカレーション処理)
├─ Rule 2 → Amazon SNS → Slack 通知
└─ Rule 3 → Amazon S3(インシデントログ永続化)
設計のポイント:
| 選択 | 理由 |
|---|---|
| AppFlow → EventBridge を送信先 | SaaS イベントを AWS イベントバスに変換し、ファンアウト配信を実現 |
| EventBridge ルールでフィルタリング | Severity = Critical など詳細条件でターゲットを絞れる |
| Lambda + SNS + S3 の同時起動 | EventBridge の複数ルールにより1イベントで並列実行 |
| AppFlow でデータ整形 | EventBridge に送る前に不要フィールドを除外し、イベントサイズを最小化 |
5. パターン3:AppFlow → Redshift(DWH/BI 統合)
課題:Marketo(マーケティングオートメーション)のキャンペーンデータと Salesforce の商談データを Redshift に集約し、マーケティング ROI を QuickSight で可視化したい。
アーキテクチャ:
Salesforce ──[AppFlow Flow A]──→
↘
Amazon Redshift(DWH)
↗ ↓
Marketo ──[AppFlow Flow B]──→ Amazon QuickSight(BI)
Redshift 直接ロードの特徴:
| 機能 | 詳細 |
|---|---|
| COPY コマンド経由の高速ロード | AppFlow は S3 を中継して Redshift COPY でバルクロード。単行 INSERT より数十倍高速 |
| Redshift Serverless 対応 | プロビジョニング型・Serverless 型の両方に対応 |
| スキーマ自動作成 | テーブルが存在しない場合、AppFlow が自動作成するオプションあり |
| 既存テーブルへの INSERT/UPSERT | Upsert(主キーマッチで更新、なければ挿入)をサポート |
6. パターン4:AppFlow + Lake Formation データガバナンス統合
課題:Salesforce の顧客データ(PII 含む)を S3 データレイクに取り込む際、列レベルのアクセス制御で「マーケティング部門は Email 列を見られない」というガバナンスを実装したい。
アーキテクチャ:
Salesforce(顧客データ)
↓ [AppFlow - PII フィールドをマスキング変換して S3 に格納]
Amazon S3(データレイク Raw/Curated ゾーン)
↓
AWS Glue Crawler(スキーマ検出 → Data Catalog 登録)
↓
AWS Lake Formation(列レベル・行レベルアクセス制御)
├─ マーケティングロール → Email 列除外
├─ 営業ロール → 全列アクセス可
└─ データエンジニアリングロール → 全列 + S3 直接アクセス可
↓
Amazon Athena / Amazon Redshift Spectrum(クエリ)
Lake Formation による細粒度アクセス制御:
| 制御種別 | 設定方法 |
|---|---|
| 列レベルセキュリティ(Column-level) | Lake Formation のデータフィルタで特定列を除外する権限設定 |
| 行レベルセキュリティ(Row-level) | データフィルタの WHERE 句条件でロールごとに参照行を絞る |
| セルレベルセキュリティ(Cell-level) | 列と行の両条件を組み合わせたフィルタ |
| LF タグベースアクセス制御(TBAC) | テーブルに LF タグを付与し、ロールとタグをマッピングして権限を一括管理 |
7. パターン5:AppFlow vs Glue vs DataSync vs DMS 4サービス選択ガイド
SAA-C03 最頻出の「どのデータ統合サービスを選ぶか」問題。4サービスの使い分けを3軸で整理する。
| 評価項目 | Amazon AppFlow | AWS Glue | AWS DataSync | AWS DMS |
|---|---|---|---|---|
| 接続元の種類 | SaaS アプリ(Salesforce/ServiceNow 等) | S3/RDS/DynamoDB 等・JDBC | オンプレミスのファイルサーバー(NFS/SMB/HDFS) | RDB(Oracle/MySQL/PostgreSQL 等) |
| 主な用途 | SaaS→AWS のデータ取り込み | ETL処理・データカタログ・ML特徴量生成 | ファイルデータの大量転送・移行 | データベース移行・継続的レプリケーション |
| コード記述 | コード不要(UI/API) | PySpark/Scala スクリプト記述 | コード不要(設定のみ) | コード不要(SCT でスキーマ変換) |
| 変換能力 | 単純なフィルタ・マッピング・マスキング | 複雑な ETL(JOIN・集計・ML 前処理) | データ変換なし(転送のみ) | 最小限の型変換・スキーマ変換 |
| 実行モデル | サーバーレス(フローごと) | サーバーレス(Glue Job) | マネージドエージェント | マネージドレプリケーションインスタンス |
| リアルタイム性 | 準リアルタイム(イベント駆動) | バッチ(スケジュール実行) | スケジュール転送 | 継続的 CDC(変更データキャプチャ) |
| SAA 試験での典型シナリオ | Salesforce の商談データを毎日 S3 へ | 複数テーブルを JOIN して Redshift にロード | NFS サーバー 100TB を S3 へ移行 | Oracle DB を Aurora PostgreSQL へ移行 |
判定フローチャート:
データ統合サービスを選ぶ
↓
接続元は SaaS アプリ(Salesforce/ServiceNow/Marketo 等)?
YES → Amazon AppFlow
NO ↓
接続元はオンプレミスのファイルサーバー(NFS/SMB/HDFS)?
YES → AWS DataSync
NO ↓
接続元はリレーショナルDB(Oracle/MySQL 等)で移行/レプリケーションが目的?
YES → AWS DMS
NO ↓
複雑な ETL(JOIN・集計・ML 前処理)またはデータカタログ管理が必要?
YES → AWS Glue
8. 試験頻出シナリオ → 解法パターン早見表
| シナリオ | 正解 | 不正解 |
|---|---|---|
| Salesforce の商談データを毎日 S3 に取り込む | AppFlow(Scheduled Flow) | EC2 カスタムスクリプト / Glue |
| ServiceNow のインシデント変更をリアルタイムに Lambda へ連携 | AppFlow Event Flow → EventBridge → Lambda | Kinesis(SaaS コネクタなし) |
| 10TB の NFS ファイルサーバーを S3 に移行 | DataSync | AppFlow / Glue |
| オンプレ Oracle を Aurora PostgreSQL へ移行 | DMS | DataSync / AppFlow |
| Salesforce データの Email 列を営業部門にのみ公開 | AppFlow + Lake Formation 列レベル制御 | S3 バケットポリシーのみ |
| Salesforce + Redshift の JOIN で月次レポート生成 | AppFlow(Salesforce→S3)→ Glue(S3→Redshift ETL) | AppFlow だけで JOIN は不可 |
| PII フィールドをマスキングして S3 へ格納 | AppFlow(組み込みマスキング変換) | Lambda でカスタム処理 |
| 複数 SaaS データを Redshift に集約して BI | AppFlow(複数フロー)→ Redshift(直接ロード) | EC2 + JDBC スクリプト |
9. 次のアクション チェックリスト
- AppFlow・Glue・DataSync・DMS の使い分けを「接続元の種類」で即答できるか確認する
- 「SaaS データ → S3 → Athena」と「SaaS データ → Redshift」の使い分けを説明できるか確認する
- AppFlow → EventBridge のイベント駆動パターンを図で説明できるか確認する
- Lake Formation の列レベルセキュリティが IAM バケットポリシーでは実現できない理由を説明できるか確認する
- 模擬試験でデータ統合サービス選択問題を5問解き、90% 正解を目指す
10. 関連記事
- SAA データレイク設計パターン
- SAA Kinesis リアルタイムストリーミング設計パターン
- SAA S3 アクセス制御設計パターン
- SAA MSK(Kafka)設計パターン
- SAA Step Functions 設計パターン