こんにちはクレスコのキタガキです。

アプリケーション開発エンジニアですが、最近はできるだけプログラミングせずにシステムを構築していくローコードやノーコードサービスの魅力にハマり学んでいます。今回はSaaS-AWS間のデータ連携をノーコードで実現できるAmazon AppFlowについて、今後のシステム間連携に欠かせないサービスになるかと思いますのでその魅力についてご紹介します。

目次

  1. Amazon AppFlow の概要
  2. ユースケース
  3. 設定方法
  4. まとめ

1. Amazon AppFlow の概要

Amazon AppFlow は、SaaS アプリケーションと AWS サービス間の双方向のデータフローをノーコードで自動化できるフルマネージドサービスです。2020年にリリースされてから対象となるSaaSが続々と増えており、SalesforceやSlack、Snowflakeなど幅広いSaaSと連携することが可能です。
 

※データ連携可能なSaaSとAWSサービスについてはリンク先にまとまっています。
https://aws.amazon.com/jp/appflow/integrations/
 

以下、機能概要です。
左からソース(送信元) → AppFlow → ターゲット(送信先) となります。
 

従来のデータ連携では専用ツールやAPIを利用することが多いかと思います。コードを書き、インフラの管理も発生しました。ライセンス費用が掛かることもあります。
AppFlowは利用に応じた従量課金(低コスト)で、ノーコードセキュアスケーラブルに連携できます。フルマネージドのためインフラ管理も不要です。
 

2. ユースケース

AppFlowはSaaSと AWS サービス間の双方向のデータ連携ができるので、様々なシーンで活用できます。

  • AWS上のデータをSaaSに取り込み分析
  • SaaSデータをAWSに集約し分析・可視化
  • SaaSデータをAWSにバックアップ など
     

3. 設定方法

実際にデータ連携させてみた方がイメージ掴みやすいと思うので、AWS S3 ⇔ Salesforce 双方向のデータ連携を試してみます。

AWSマネジメントコンソールからAmazon AppFlowにいきます。

AWS S3 → Salesforce 


(1)    フロー名、暗号化の設定
フロー名に任意の名前を付けます。
AWSがデフォルトでデータ暗号化を行いますが、ご自身のKMSを利用する場合は「暗号化設定をカスタマイズする」にチェックを入れてください。
 

(2)    送信元の設定
S3 → Salesforce なので、S3を選択します。
 

送信対象データの配置先バケットとデータ形式(csv)を選択します。

(3)    送信先の設定
送信先のSalesforceを選択して「新規接続を作成」をクリック。
 

接続名は任意で、その他項目は接続するSalesforceの環境に従って選択します。

Salesforceのログイン画面が表示されるのでアカウント情報を入力します。

接続に成功すると、Salesforceオブジェクトが選択できるようになりますので、データ連携先のオブジェクトを選択します。今回は「取引先」を選択しました。

(4)    送信元と送信先データのマッピング設定
手動もしくはマッピングcsvアップロードが選択できます。
送信先レコードの更新方法は、InsertやUpdateなど4種類から選択します。
 

次に、実際に送信するcsvファイルを用意してマッピング設定を行っていきます。

Salesforceの取引先オブジェクトに投入するcsvを用意します。
 

※脱線しますが、こういったデータ用意は面倒なので生成系AI使っちゃいます。
クレスコでは、MS社「Azure OpenAI Service」を利用した生成系AIチャットサービス「CrePT(クレプト)」を自社用に構築してます。機密情報の取り扱いセキュリティ要件を満たした状態で利用できますので、ご興味あれば弊社まで問い合わせください。
https://www.cresco.co.jp/ja/corpinfo/news/news-1488119819858579960.html
 

出力されたデータをcsvファイルにしてS3バケットに配置します。

送信元と送信先のフィールド名(=カラム名)を選択できるようになりますので、
マッピング設定をしていきます。
 

マッピングができました。
AppFlow上で若干ですがデータ変換ができます。

  • カラムの連結
  • 値のマスキング
  • 値の切り捨て

システム間で文字数/日付や電話番号の形式/金額単位などが異なることは往々にしてありますので、この辺りのデータ変換の充実を今後のUpdateに期待したいですね。
 

今回は値の切り捨てだけ試してみます。

(5)    フィルター設定
S3 → Salesforce ではフィルター機能は利用できませんでした。
※Salesforce → S3ではフィルター利用できます。
 

以上でフローの作成完了です。
 

それでは実行してみましょう。
作成したフローの「フローを実行」をクリックします。
 

「処理されたレコード:10」と結果出力されています。
Salesforce側の取引先オブジェクトを確認してみます。
 

ちゃんとレコード入ってました!開始年の切捨て設定もされてました。
ご覧の通り、APIや専用ツール(Salesforceだとデータローダ)を利用せずノーコードで簡単に連携できるのは嬉しいですね。


Salesforce → AWS S3 
つづいて、逆のパターンです。出力はjsonで試してみます。
と言っても、先程の手順で送信元と送信先を入れ替える程度なので、詳細手順は省きます。
 

フローを実行してS3にJson形式でファイル出力できました。

4. まとめ

いかがでしたでしょうか?
様々なSaaS‐AWS間の連携がノーコードで簡単にスピーディに構築できる点はかなり魅力ですね。要件がAppflowで満たせるのであれば、ノーコード&低コストで利用できるので非常に良いサービスと思いました。一方でフィルタリングやデータの形式変換は簡単なものしかできず、まだまだ弱い印象を受けました。この辺はGlueなど別サービスを利用することで解決できますが、AppFlow自体で複雑なフィルタリングやデータの形式変換がさらに充実してくれば活用シーンが広がりますので、今後のUpdateに期待したいです。