AWS App Studio からRedshift に接続する方法:CData Connect Cloud

App Studio が提供している外部連携のためのコネクターの一つ「OpenAPI コネクター」を使ってRedshift と連携してみたいと思います。

赤塚誠二
パートナーサクセスエンジニア

最終更新日:2024-12-20

この記事で実現できるRedshift 連携のシナリオ

こんにちは!パートナーサクセス担当の赤塚です。

みなさんこんにちは!今回のブログではAWS App Studio(以下App Studio)が提供している外部連携のためのコネクターの一つ「OpenAPI コネクター」を使ってRedshift と連携、してみたいと思います。

App Studio は、生成AI を利用したアプリケーション開発が可能なAWS の新しいサービスです。App Studio の利用料金は基本的に公開されたアプリケーションにのみ発生し、開発環境は無料で使用できるためじっくり検証も可能です。

App Studio の基本的な利用方法については公式ページにわかりやすくまとまっていますのでこちらもぜひご参照ください。

CData Connect Cloud とは?

CData Connect Cloud は、以下のような特徴を持ったクラウド型のリアルタイムデータ連携製品です。

  • SaaS やクラウドデータベースを中心とする150種類以上のデータソース
  • BI、アナリティクス、ETL、ローコードツールなど30種類以上のツールやアプリケーションから利用可能
  • リアルタイムのデータ接続に対応。データの複製を作る必要はありません
  • ノーコードでシンプルな設定

詳しくは、こちらの製品資料をご確認ください。

Connect Cloud アカウントの取得

以下のステップを実行するには、CData Connect Cloud のアカウントが必要になります。こちらから製品の詳しい情報とアカウント作成、30日間無償トライアルのご利用を開始できますので、ぜひご利用ください。


CData Connect Cloud 側の設定

CData Connect Cloud では、直感的なクリック操作ベースのインターフェースを使ってデータソースに接続できます。

  1. Connect Cloud にログインし、 Add Connection をクリックします。 コネクションの追加
  2. 「Add Connection」パネルから「Redshift」を選択します。 データソースの選択
  3. 必要な認証プロパティを入力し、Redshift に接続します。

    Redshift への接続には次を設定します:

    • Server: 接続するデータベースをホストしているクラスタのホスト名およびIP アドレス。
    • Port: クラスタのポート。
    • Database: データベース名、ブランクの場合ユーザーのデフォルトデータベースになります。
    • User: ユーザー名。
    • Password: ユーザーのパスワード。

    Server およびPort の値はAWS の管理コンソールで取得可能です:

    1. Amazon Redshift console (http://console.aws.amazon.com/redshift) を開く。
    2. Clusters ページで、クラスタ名をクリック。
    3. クラスタのConfiguration タブで、表示された接続文字列からクラスタのURL をコピーします。 コネクションを設定
    4. Create & Tast をクリックします。
    5. 「Add Redshift Connection」ページの「Permissions」タブに移動し、ユーザーベースのアクセス許可を更新します。 権限を更新

    コネクションの設定が完了したら、 からRedshift のデータへの接続準備は完了です。

    データソースとなるRedshift との接続を追加し、Virtual Dataset を作成すると、AWS App Studio から接続するためのインターフェースが自動で生成されます。

    Virtual Datasets の作成

    つぎにVirtual Datasets を作成します。

    CData Connect Cloud の左側のメニューから「Virtual Datasets」を選択後、「Add」ボタンにてWorkspace (今回は AppStudioDemo) を追加

    connectcloud-appstudio2spreadsheet

    作成したWorkspace に移動後、「Add」ボタンをクリックして表示される「Add Asset」内の「Tables & Views」を選択

    connectcloud-appstudio2spreadsheet

    先ほど作成したRedshift の接続を選択

    connectcloud-appstudio2spreadsheet

    Workspace に追加したRedshift の接続をクリックし、「Preview」タブでRedshift のデータが表示されていることを確認

    connectcloud-appstudio2spreadsheet

    Workspace のページに戻り、View Endpoints をクリック

    connectcloud-appstudio2spreadsheet

    OpenAPIのSpecification ファイルをVersion 3.0 形式でダウンロード

    connectcloud-appstudio2spreadsheet

    以上でCData Connect Cloud 側の準備ができました。

    App Studio 側の設定

    OpenAPI Connector の作成

    OpenAPI Connector を作成するためにあらかじめ管理者権限でログインしておきましょう。

    App Studio が外部のリソースと接続するためのコネクター には、Amazon Aurora、Amazon DynamoDB などのDB と連携するためのデータコネクターと、API などデータベース以外と連携するオートメーションコネクターの二種類が用意されています。

    connectcloud-appstudio2spreadsheet
    今回は後者のオートメーションコネクターのうち、API コネクターに分類される「OpenAPI Connector」を使用します。
    API コネクターとして現在提供されているのは以下の三種類です。

    connectcloud-appstudio2spreadsheet

    App Studio のAdnin hub ダッシュボードにて、「Create Connector」をクリック

    connectcloud-appstudio2spreadsheet

    「Select a connector」ページにて「OpenAPI Connector」を選択

    connectcloud-appstudio2spreadsheet

    「OpenAPI Connector Configuration」ページにて必要な項目を設定して保存

    • General
      • Name : 任意の名前 (今回はAkatsuka_AppStudio_Demo)
      • Deslription : 説明 (今回は空白)
    • Credentials
      • Base URL : OpenAPIのSpecificationファイルにて確認
      • Authentication method : Basic
    • HTTP basic credentials
      • Username : CData Connect Cloud へのログインユーザー名 (メールアドレス)
      • Password : 事前準備で作成したCData Connect Cloud のアクセストークン
    • OpenAPI Spec File
      • CData Connect Cloud のダウンロードしたOpenAPIのSpecificationファイルをドラッグ&ドロップで追加

    以上でコネクターの作成は完了です。

    アプリケーションの新規作成

    つぎにアプリケーションを新規します。

    Builder hub にて「Create app」をクリック

    connectcloud-appstudio2spreadsheet

    「App name」 を設定し、今回はCRAD のフル機能ではなくシンプルな一覧ページのみ作成するため「Start from scratch」を選択

    コネクタの選択画面スキップしてアプリケーションを作成します。

    connectcloud-appstudio2spreadsheet

    「Your app has been created」が表示されたら「Edit app」をクリック

    それではさっそくアプリケーションの設定に進みましょう。

    connectcloud-appstudio2spreadsheet

    Automation の設定

    データコネクターはDB とApp Studio 側のオプジェクトを自動でマッピングしてくれますが、オートメーションコネクターは手動で行う必要があるため、Automation でAPI リクエストの実行処理を設定し、表示を行うフロントエンド側でマッピングを行います。

    アプリケーションの設定ページにある「Autonation」タブを開いたら、「Add automation」をクリック

    connectcloud-appstudio2spreadsheet

    右側メニューの「Actions」タブの中にある「Invoke API」をドラッグ&ドロップして処理のフローに追加

    connectcloud-appstudio2spreadsheet

    右側メニューの「Properties」タブを開き、「Connector」の項目で先に作成しておいたコネクター (今回は Akatsuka_AppStudio_Demo) を選択

    connectcloud-appstudio2spreadsheet

    「Operation」の項目でGet メソッドなど呼び出したい処理が表示されないケースがあるようなので、次の「Configure API request」の設定で対応します。
    確認したところ今回の設定ではコネクターの設定時点でOpenAPIのSpecification ファイルの内容が保存されていなかったため、原因が分かりましたらこちらに追記いたします。

    参考までに、「Operation」の項目が表示される場合は以下のようになります。

    connectcloud-appstudio2spreadsheet

    Configure API request の設定

    「Operation」の項目が選択可能な場合はあらかじめこちらの項目が設定済みになっていますが、今回は手動で入力しました。

    connectcloud-appstudio2spreadsheet

    OpenAPIのSpecificationファイルの内容を確認し、Redshift の内容を一覧で取得するためのリクエストを設定します。

    • Method : Get
    • Path : Get に対応したパス (今回は/Akatsuka_AppStudio_Demo_Sheet1)

    OpenAPIのSpecification ファイルの内容の例

    connectcloud-appstudio2spreadsheet

    プレビューで使用するモックデータを登録

    connectcloud-appstudio2spreadsheet

    プレビューでは実際のAPI リクエストは行われないため、モックデータを使って表示の確認を行います。
    今回はMocked output に表示れているスケルトンに合わせてbody 要素配下にvalue 要素としてプレビュー用のデータを追加しています。

    モックデータのサンプル

        {
    "body":
    {
      "value": [
            {
                "id": 2,
                "month": 1,
                "amount": 500000
            },
            {
                "id": 3,
                "month": 2,
                "amount": 500000
            },
            {
                "id": 4,
                "month": 3,
                "amount": 500000
            }
        ],
       },
      /*
       * Checkout the HTTP RFC for more info:
       * https://www.rfc-editor.org/rfc/rfc9110#name-status-codes
       */
      statusCode: 200,
    }

    Output の設定

    右側メニューで「Automation」の設定に移動し、API リクエストで取得したデータを出力するための設定を追加します。

    connectcloud-appstudio2spreadsheet

    今回はbody 要素配下のvalue に格納されたデータを取得したいので、以下のように設定しています。

    • フォーマット:{{results.API アクションの名前.body 要素?value 配下のデータ一式}}
    • 今回の設定:{{results.InvokeAPI1.body?.value}}

    どのような構造でデータが取得できるかはPostman などで実際にリクエストしてみて確認するのが良さそうです。

    以上でAPI リクエスト関連の設定が完了しました。

    Pages の設定

    最後にフロントエンド側の実装として、一覧表示を行うテーブルに対して列ごとの項目を設定していきます。

    Pages タブを表示し、右側の「Conponents」から「Table」を選択

    connectcloud-appstudio2spreadsheet

    右側の「Properties」タブにて「Navigation label」を任意の名前で設定 (今回はgoogle sheets)

    connectcloud-appstudio2spreadsheet

    左側のメニューで「table1」を表示し、右側の「Content」の内容を設定

    connectcloud-appstudio2spreadsheet

    • Content
      • Source : Automation
      • Automation : Automation1(先ほど作成したもの)
      • Clumns : カラムごとに APIからのレスポンスを追加
        Columns の設定内容Value は「currentRow:表示したい要素名」 のフォーマットになります。
        connectcloud-appstudio2spreadsheet

    プレビューでの動作確認

    プレビューでは実際のAPI リクエストは行わず、先ほど作成したモックデータを使ってテストを行います。

    左上の「Preview」をクリック

    connectcloud-appstudio2spreadsheet

    問題なく表示できることを確認

    connectcloud-appstudio2spreadsheet

    テスト環境での動作確認

    プレビューでの動作確認ができたらテスト環境にデプロイしてみます。

    右上の「Publish」メニューから「Publish Center」を選択

    connectcloud-appstudio2spreadsheet

    パイプラインの表示に従いテスト環境への「Publish」をクリック

    しばらく待つとビルドが完了し、テスト環境のURL が表示されます。

    connectcloud-appstudio2spreadsheet

    テスト環境用のURL にアクセス

    Redshift のデータが表示されていることを確認できました!

    connectcloud-appstudio2spreadsheet

    Amount の表示がテキスト型になっているので、数値型に変換しても良いかもしれません。

    connectcloud-appstudio2spreadsheet

    以上でCData Connect Cloud を使ってApp Studio からRedshift に接続できました。

    App Studio からRedshift のデータにリアルタイム連携

    これでRedshift への接続は完了です。あとは、Redshift から自在にデータを取得して、App Studio でのアプリ構築に活用できます。

    クラウドアプリケーションから170を超えるSaaS、ビッグデータ、NoSQL データソースへのリアルタイムデータ連携の実現には、CData Connect Cloud の30日間無償トライアルをぜひお試しください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。