製品をチェック

製品の詳細・30日間の無償トライアルはこちら

CData API Server

Monaca アプリで使えるAmazon Athena のデータ連携用のバックエンドAPI をノーコードで開発

ハイブリッドアプリ開発プラットフォームMonaca から Amazon Athena のデータに接続するためのバックエンドAPI サーバーをCData API Server で構築

宮本航太
プロダクトスペシャリスト

最終更新日:2022-05-15
athena ロゴ

CData

apiserver ロゴ画像
Monaca ロゴ

こんにちは!プロダクトスペシャリストの宮本です。

CData API Server と ADO.NET Provider for AmazonAthena を使って、Monaca ハイブリッドアプリ開発プラットフォーム(https://ja.monaca.io/) から Amazon Athena に接続してデータを取得する方法を説明します。

Amazon Athena とのデータ連携について

CData は、Amazon Athena のライブデータにアクセスして連携するための最も簡単な方法を提供します。CData のコネクティビティを利用することで、以下のことが可能になります。

  • IAM 認証情報、アクセスキー、インスタンスプロファイルを含むさまざまな方法を使用して安全に認証し、多様なセキュリティニーズに対応するとともに認証プロセスを簡素化します。
  • セットアップを効率化し、詳細なエラーメッセージにより問題を迅速に解決します。
  • サーバーサイドでのクエリ実行により、パフォーマンスを向上させ、クライアントリソースへの負担を最小限に抑えます。

ユーザーはAthena をTableau、Power BI、Excel などの分析ツールと連携させ、好みのツールから詳細な分析を行うことができます。

CData を活用したAmazon Athena の事例については、ブログ記事を参照してください:https://www.cdata.com/blog/amazon-athena-use-cases

API Server の設定

次のステップに従い、セキュアな REST API サービスを立ち上げます

デプロイ

API Server はサーバー上で稼働します。Windows 版は、製品に組み込まれているスタンドアロンのサーバーかIIS に配置して稼働させることができます。Java 版では、Java servlet コンテナにAPI Server のWAR ファイルを配置します。 デプロイの詳細は製品ヘルプを参照してください。API Server を Microsoft AzureAmazon EC2Heroku にデプロイする方法はKB に記事があります。

Amazon Athena への接続

API Server の管理コンソールで[設定]→[接続]から新しい接続を追加してAmazon Athena を追加します。

Amazon Athena のアイコンがデフォルトのAPI Server の接続先にない場合には、API Server がJava 版の場合はJDBC Drivers、API Server がWindows 版の場合はADO.NET Data ProvidersからAmazon Athena ドライバーをAPI Server と同じマシンにインストールして、API Server を再起動します。

Amazon Athena への接続に必要な認証情報を入力します。接続のテストを行い、接続を確認して、設定を保存します。

Amazon Athena 接続プロパティの取得・設定方法

Amazon Athena リクエストの認証には、アカウントの管理のクレデンシャルか、IAM ユーザーのカスタムPermission を設定します。 AccessKey にAccess Key Id、SecretKey にはSecret Access Key を設定します。

AWS アカウントアドミニストレータとしてアクセスできる場合でも、AWS サービスへの接続にはIAM ユーザークレデンシャルを使用することが推奨されます。

IAM ユーザーのクレデンシャル取得は以下のとおり:

  1. IAM コンソールにログイン。
  2. Navigation ペインで「ユーザー」を選択。
  3. ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してから「セキュリティ認証情報」タブを選択。

AWS ルートアカウントのクレデンシャル取得は以下のとおり:

  1. ルートアカウントの資格情報を使用してAWS 管理コンソールにサインイン。
  2. アカウント名または番号を選択し、表示されたメニューで「My Security Credentials」を選択。
  3. 「Continue to Security Credentials」をクリックし、「Access Keys」セクションを展開して、ルートアカウントのアクセスキーを管理または作成。

EC2 インスタンスからの認証

EC2 インスタンスからCData 製品を使用していて、そのインスタンスにIAM ロールが割り当てられている場合は、認証にIAM ロールを使用できます。 これを行うには、UseEC2Roles をtrue に設定しAccessKeySecretKey を空のままにします。 CData 製品は自動的にIAM ロールの認証情報を取得し、それらを使って認証します。

AWS ロールとして認証

多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。 代わりにRoleARN を指定してAWS ロールを使用できます。これにより、CData 製品は指定されたロールの資格情報を取得しようと試みます。 (すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、役割を担うIAM ユーザーのAccessKeySecretKey を追加で指定する必要があります。AWS ルートユーザーのAccessKey およびSecretKey を指定する場合、 ロールは使用できません。

MFA での認証

多要素認証を必要とするユーザーおよびロールには、MFASerialNumber およびMFAToken 接続プロパティを指定してください。 これにより、CData 製品は一時的な認証資格情報を取得するために、リクエストでMFA 認証情報を送信します。一時的な認証情報の有効期間 (デフォルトは3600秒)は、TemporaryTokenDuration プロパティを介して制御できます。

Amazon Athena への接続

AccessKeySecretKey プロパティに加え、DatabaseS3StagingDirectoryRegion を設定します。Region をAmazon Athena データがホストされているリージョンに設定します。S3StagingDirectory をクエリの結果を格納したいS3内のフォルダに設定します。

接続にDatabase が設定されていない場合は、CData 製品はAmazon Athena に設定されているデフォルトデータベースに接続します。

  • 接続を確立後、[設定]→[リソース]の画面でテーブル一覧からREST API として公開するエンティティを選択します。
  • API Server のユーザー設定

    [設定]→[ユーザー]からAPI にアクセスできるユーザーの認証設定を行います。API Server はトークンでの認証を行うことができます。 IP アドレスでAPI へのアクセスを制限することも可能です。デフォルトではローカルマシンからのアクセスのみが許可されています。SSL の設定も可能です。

    オンプレミスDB やファイルからのAPI Server 使用(オプション)

    オンプレミスRDB やExcel/CSV などのファイルのデータを使用する場合には、API Server のCloug Gateway / SSH ポートフォワーディングが便利です。是非、Cloud Gatway の設定方法 記事を参考にしてください。

    Monaca で作成したモバイルアプリでの Amazon Athena のデータ取得

    Monacaではクラウド上にあるIDEが用意されていますので、まずはアカウント作成します。そこからCData API Server のデータをMonaca アプリ使う設定を作成していきます。

    1. ブラウザより Monaca のダッシュボードを開き、「新しいプロジェクトを作る」をクリックします。
    2. Monaca
    3. まずはテンプレートの種類は、フレームワークテンプレートを選択します。
    4. Monaca
    5. 今回は JavaScript を選択します。
    6. Monaca
    7. テンプレートは「Onsen UI V2 JS Navigation」を選択します。テンプレの画面構成は、「Push page」ボタンをクリックすると、画面遷移するものとなっています。
    8. Monaca
    9. 任意のプロジェクト名を設定し、「作成」ボタンをクリックします。
    10. Monaca
    11. 作成したプロジェクトを選択した状態で、「クラウドIDEで開く」をクリックします。
    12. Monaca
    13. 検索ボタンがクリックされたら、先ほど作成した API を Ajax で呼び出すようにしています。
      Monaca
      API Server で作成したエンドポイントをURL に設定し、ヘッダーにAPI Server のアクセストークンを設定します。
      Monaca
    14. レスポンスが返ってきた後、処理が成功していればリストにname だけを1データずつ加えています。

    デバッグ実行してみる

    Monaca でデバッグを行う際は、Monacaデバッガーアプリを実機にインストールすることで、MonacaのクラウドIDE と実機で動かしているMonacaデバッガーアプリが連動するようです。そのため、いちいちコードを修正してからのビルドが不要になるため、素早く検証を行うことができます。

    また、Monaca Localkit を使うことで、ローカルの開発環境でも利用することができます。今回はこのLocalkit を使って vscode 上でコードを修正し、アプリ内容を確認していきました。

    Monaca Localkit を起動し、プレビューを押すとすぐにアプリ画面が表示されます。

    Monaca

    初期画面→検索→画面遷移まで確認することができました。

    Monaca

    このように Amazon Athena 内のデータをMonaca アプリで利用することができるようになります。

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

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