はじめに
こんにちは!
コロプラでHR Techの推進(HR部門の業務効率化支援)を担当している、バックエンドエンジニアのH.Iです。
私たちのチームは、従業員情報の一元管理を目指して、HR部門で利用している外部サービス(SaaS)と従業員情報のデータ連携に取り組んでいます。
当初は、従業員情報を保持する外部サービスから異なる外部サービスへの直接的な連携を試みましたが、連携されるデータ項目に不足があるという課題が生じました。
また、内製の社内システムに連携機能を組み込むことを検討しましたが、開発・保守コストが規模に見合うかについて懸念がありました。
これらの課題を解決し、柔軟で拡張性のあるデータ連携を最適なコストで実現するために、Google Cloud の Application Integration を採用しました。
今回は Application Integration の機能と特徴についてご紹介します。
Application Integration について
Google Cloud の Application Integration は、2023年6月13日に一般提供(Generally Available)された、Google Cloud や任意のアプリケーションの連携を可能にし、効率的に構築・管理するためのツールを備えた iPaaS(Integration Platform as a Service)です。
このプロダクトを利用することで、任意のアプリケーションの連携を行うワークフローを、ドラッグ&ドロップ方式のGUI(統合デザイナー)を使用してノーコードで構築できます。
さらに、より高度なユーザー向けに、コードを使用して複雑なデータ変換やワークフローの制御を行うことができます。
ユースケース
Application Integration を活用すると、以下のような機能をノーコードで実現できます。
- データ連携:異なるアプリケーション(外部サービス、社内で開発されたシステム、データベース、Googleスプレッドシートなど)間でのデータ連携が可能です。
- データ変換:アプリケーションやAPIのインタフェースに適したデータ形式やプロトコルへのデータを変換できます。
- ワークフローの自動化:API呼び出し、定期実行、イベント駆動により、データの連携や変換、メール送信、承認などの一連のビジネスプロセスを自動化できます。
これにより、利用中のアプリケーション間でのデータ連携や定常的な業務の自動化など、さまざまなユースケースに柔軟に対応できます。
例えば弊社では、外部サービスAとGoogleスプレッドシートの従業員情報を組み合わせ、そのデータを外部サービスBに登録する週次作業の自動化に活用しています。
特徴
Google Cloud には Application Integration と類似機能を有するワークフローツールを担うプロダクトとして Cloud Workflows が存在します。
Cloud Workflows に対して Application Integration の特徴は、認証、HTTP リクエスト通信、データ変換、ワークフローの流れの制御といった、アプリケーションの連携に必要な機能と、これらの機能を利用したワークフローをノーコードで構築できる統合デザイナーが用意されており、iPaaS に求められる機能が充実している点です。
ユーザーはアプリケーションを連携するためのワークフローの構築に集中でき、ノーコードでスモールスタートを始め、ローコードで規模や要件の拡大に対応できます。
対象ユーザー
小規模なユースケースであれば統合デザイナーを使用して構築が可能なため、エンジニアリングの経験がないユーザーでも利用できます。
ただし、データの反復や加工には関数やプログラミング用語が用いられることがあるため、エンジニアリングの知識を持っているとより効率的に利用できます。
プログラミング知識を持つユーザーは、コードを使用して複雑なデータ変換やワークフローの制御を行うことができます。
このため、Application Integration はユーザーのエンジニアリング・プログラミングの知識レベルに応じて構築方法を選択できるという利点を持ち、幅広いユースケースやユーザーに適しています。
機能
Application Integration のワークフローは、主に以下の3つの要素から構築されます。
トリガーは、API呼び出し、スケジューラによる定期実行、Cloud Pub/Sub・Salesforceなどのイベント駆動により、ワークフローを開始します。
タスクは、Google Cloudサービスとの連携、HTTP リクエスト通信による任意のアプリケーションのAPI呼び出し、データ反復・加工といったデータ処理を実行します。
フォークと結合・エッジは、進行条件を指定してワークフローの分岐や合流、タスクの実行方法などを制御します。
さらに、Salesforceなどのサポートされたアプリケーションとの連携を容易に行うためのコネクタ(Integration Connectors)が用意されています。
構築手順
例えば、異なる外部サービス間のデータ連携を以下の流れで考えてみます。
- API呼び出しによりワークフローを開始
- 外部サービスのAPIを使用してデータを取得
- 取得したデータをJavaScriptを用いて加工
- 外部サービスのAPIを使用して加工したデータを登録
統合デザイナーを使用して、APIトリガー、REST エンドポイントの呼び出しタスク、JavaScript タスクを組み合わせることで、以下のようなワークフローが構築できます。
RESTエンドポイントの呼び出しタスクを選択すると、サイドバーが表示されます。このサイドバーから、エンドポイントのURLやリクエストパラメータを変数や値で設定できます。
JavaScript タスクを選択すると、JavaScript エディタが表示されます。
以下のようなコードを使用して取得したデータを加工し、その結果を変数に保存できます。
// JavaScript タスクを実行したときに呼び出される関数 function executeScript(event) { // 取得したデータを変数に格納 const response = event.getParameter("`Task_1_response`"); // データを加工 *加工処理を省略 const parameter = response; // 加工した結果を変数に格納 event.setParameter("parameter", parameter); }
また、データ マッピングタスクを使用すれば、GUI(データ マッピング エディタ)でデータ加工が可能なため、複雑なデータの変換でなければJavaScriptタスクを使わずノーコードで構築可能です。
セキュリティ
Application Integrationでは、Google Cloudの IAM(Identity and Access Management) を使用してアクセス制御を管理できます。
IAMはGoogle Cloudプロジェクト内の、Application Integration で作成したワークフロー全体に適用されます。
Application Integration 用に事前定義されたIAMロールを、対象(ユーザー、グループ、サービス アカウント)に付与することで、IAMロールに基づいたワークフローの操作やトリガーの実行が可能になります。
Application Integration 用に事前定義されたIAMロール ※一部抜粋
IAMロール名 |
説明 |
Application Integration Admin (roles/integrations.integrationAdmin) |
全てのワークフローに対する完全なアクセス (CRUD) 権を持つ |
Application Integration Deployer |
ワークフローを公開/非公開できる |
Application Integration Editor |
ワークフローをリスト、表示、作成、更新できる |
Application Integration Invoker |
ワークフローを実行(開始)できる |
Application Integration Viewer |
ワークフローをリスト、表示できる |
Application Integration Approver |
ワークフローの承認タスクを承認できる |
機密情報の管理
任意のアプリケーションに接続するための認証情報をワークフローとは別に管理できる「認証プロファイル」という機能があります。
これを使用することで、ワークフローに機密情報を直接埋め込むことなく、情報がマスクされた状態で、複数のワークフローで認証情報を再利用できます。
また、認証プロファイルは、作成者のみが利用できるように公開設定をかけることができます。
認証プロファイルがサポートする認証タイプ
- 認証トークン
- Google OIDC ID トークン
- JSON ウェブトークン (JWT)
- OAuth 2.0 認証コード
- OAuth 2.0 クライアント認証情報
- OAuth 2.0 リソース所有者のパスワード認証情報
- SSL/TLSクライアント認証のみ
- サービスアカウント
さらに、Secret Manager で管理されている機密情報を取得できる Secret Manager アクセスタスク が用意されています。
利用にかかるコスト
Application Integration の費用は、主に実行数と処理されたデータ量に基づいて計算される従量課金制です。
詳細は公式ドキュメントをご参照ください。
例えば、アプリケーションの連携と簡易的なデータ変換を毎日定期実行する小規模なユースケースでは、従量課金が適用された場合の想定費用は $0.05/月 以内となり、無料利用枠の1〜2割程度に収まる試算結果となりました。
割り当てと上限
他のGoogle Cloudサービスと同様に、機能に対する割り当てと上限が存在します。
割り当てはGoogle Cloud プロジェクト単位で適用され、超過すると実行しているタスクは即座に終了(失敗)します。
小規模なユースケースでは超過する可能性は低いと想定されますが、規模の拡大時には下記の割り当てと上限に対して注意が必要です。
- 実行数(同時実行数)
- 実行時間(タイムアウト時間)
- 入出力データ量
- 反復処理の最大数
サポート状況
Application Integration には、新たに追加されたプレビュー段階の機能が一部存在します。
- Google Cloud サービスとの連携機能(Configure tasks for Google Cloud services)
- Jsonnetの関数を使用したデータマッピング機能(Data Transformer Script task)
エラーをハンドリングできるエラーキャッチャーを活用することで、より安全に新しい機能を利用することが可能です。
おわりに
今回は Application Integration の機能と特徴をご紹介させていただきました。
幅広いユースケースとユーザーに対応する、柔軟で拡張性の高い iPaaS であり、この記事では紹介しきれなかった機能が多く備えられています。
この記事では取り上げることができなかった弊社の具体的な採用理由や導入事例については、別の記事で詳しくご紹介する予定です。
機能を強化する更新や、ハンズオンの開催予定があり、活発なプロダクトである Application Integration に今後も注目していきたいと思います。
ColoplTechについて
コロプラでは、勉強会やブログを通じてエンジニアの方々に役立つ技術や取り組みを幅広く発信していきます。
connpassおよびX(Twitter)で情報発信していますので、是非メンバー登録とフォローをよろしくお願いいたします。
また、コロプラではゲームや基盤開発のバックエンド・インフラエンジニアを積極採用中です!
興味を持っていただいた方はぜひお気軽にご連絡ください。