CData Software Blog

クラウド連携のCData Software の技術ブログです。

AWS EC2 AmazonLinux で CData ODBC Unix Salesforce Driverを利用する方法

f:id:sugimomoto:20210705111632p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

Windows で主によく利用されるイメージの「ODBC」の規格ですが、実は「Unix」や「Mac」でも利用することが可能というのはご存知でしょうか。

CData ODBC DriverではそんなUnixMac向けにも専用の各種Driverを提供していたりします。

https://www.cdata.com/jp/drivers/salesforce/download/odbc/#unix

f:id:sugimomoto:20210705111417p:plain

例えば、ODBC Unix Driver とPHPと組み合わせて自社で利用する業務Webアプリを作っているお客様も多く居ます。

今回はそんなODBC Unix DriverをAWSで提供されているEC2 Amazon Linux OS上で動かす方法を紹介したいと思います。

ちなみにSalesforce Driverを利用していますが、KintoneやDynamics 365どのデータソースでも使用方法は基本的に一緒です。

CData Salesforce Unix ODBC Driverのダウンロード

まず、「CData Salesforce Unix ODBC Driver」をダウンロードしましょう。

以下のURLから30日間のトライアル版がダウンロードできます。

https://www.cdata.com/jp/drivers/salesforce/download/odbc/#unix

ちなみにUbuntu のようなDebian ベースのOSの場合とRPM パッケージ形式をサポートする場合のOSとで利用するドライバーの本体が異なります。

詳しくは以下のヘルプを参照してみてください。

cdn.cdata.com

Amazon LinuxRPMパッケージをサポートするOSかつ、64 bit ベースなので以下の「setup.x86_64.rpm」をダウンロードします。

f:id:sugimomoto:20210705111425p:plain

このrpmファイルは後ほどEC2にアップロードして利用します。

EC2 Amazon Linux 環境の構成

次にAWS EC2のインスタンスを立ち上げます。

最小環境で構成しますが、必要な性能要件は利用するデータソースや頻度、求めるパフォーマンスによって異なります。

AMIはベーシックな「Amazon Linux 2 AMI(HVM) SSD Volume Type」を選択しました。

f:id:sugimomoto:20200408225137p:plain

無料利用枠の対象である「t2.micro」で立ち上げています。

f:id:sugimomoto:20200408225433p:plain

環境構成後、SSHでローカルから接続します。

Unix ODBC Driver インストール手順

EC2 Amazon Linux 環境が構成できたら、Unix ODBC Driver のインストールを進めましょう。

先程ダウンロードしておいた、CData Unix ODBC Driverの本体をEC2上にアップロードします。アップロード方法は特に問いませんが、今回は以下のようにSCPコマンドでアップロードしました。

scp -i C:\Work\XXXX.pem C:\Driver\SalesforceODBCDriverforUnix.rpm ec2-user@ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com:/home/ec2-user/

その後依存関係で必要となるパッケージをyumコマンドでインストールします。

cdn.cdata.com

sudo yum install glibc libstdc++ zlib libgcc
sudo yum install unixODBC unixODBC-devel -y

依存関係のインストールが完了したら、rpmコマンドでDriverをインストールしましょう。

sudo rpm -ivh SalesforceODBCDriverforUnix.rpm 

ちなみにアンインストールする場合は、以下のようなコマンドを実行します。

sudo rpm -evh cdata-odbc-driver-for-salesforce

ODBC Driverの設定

インストール完了後、Driverのセットアップを進めます。

まずトライアル用のライセンスをインストールしましょう。

「/opt/cdata/cdata-odbc-driver-for-salesforce/bin/」フォルダにライセンスインストール用の実行ファイルがあるので、これを実行します。

cd /opt/cdata/cdata-odbc-driver-for-salesforce/bin/
sudo ./install-license.x64

次にODBC DriverのライブラリをUnixODBCに登録します。

sudo vi /etc/odbcinst.ini 

以下のような内容が記載されているか確認してください。

[CData ODBC Driver for Salesforce]
Driver=/opt/cdata/cdata-odbc-driver-for-salesforce/lib/libsalesforceodbc.x64.so
Description=CData ODBC Driver for Salesforce

最後にSalesforceへの接続設定をODBC DSNとして登録します。

sudo vi /etc/odbc.ini 

以下が設定例です。

cdn.cdata.com

[CData Salesforce Source]
Driver=/opt/cdata/cdata-odbc-driver-for-salesforce/lib/libsalesforceodbc.x64.so
User=YOUR_USER_ID
Password=YOUR_USER_PASSWORD
Security Token=XXXXXX

ODBC DSNにはSalesforce へのログインユーザーID・PWと共にSalesforce から取得できるセキュリティトークンを指定します。

プロパティ名 備考
User 例)YOUR_USER_ID SalesforceのユーザーIDを指定
Password 例)YOUR_USER_PASSWORD SalesforceのユーザーPWを指定
Security Token 例)XXXX 詳しい設定値はこちらを参照してください

isql を使って接続を試す

接続設定が完了したので、「isql」を使ってクエリを実行してみましょう。

以下のようにisql のパラメータで事前に定義したODBC DSNを指定して接続します。

isql -v "CData Salesforce Source"

以下のような画面が表示されるので、SQL文を入力します。

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

今回は取引先(Account)テーブルを取得するSQLを実行してみます。

SELECT Id, Name FROM Account LIMIT 5

以下のようにデータが取得できればOKです。

+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Id                | Name                                                                                                                                                                                                                                                           |
+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 0010I00002XAjIaQAL| sdfdsfsdfds                                                                                                                                                                                                                                                    |
| 0010I00002WLs9kQAD| TEST001                                                                                                                                                                                                                                                        |
| 0010I00002WLs9lQAD| TEST002                                                                                                                                                                                                                                                        |
| 0010I00002WLs9mQAD| TEST003                                                                                                                                                                                                                                                        |
| 0010I00002WLs9nQAD| TEST004                                                                                                                                                                                                                                                        |
+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

おわりに

同じような手順で kinonte や Dynamics 365 Driver など、全種類のCData Driver ODBC Unix が利用できます。

www.cdata.com

f:id:sugimomoto:20210705112033p:plain

もし利用していてわからない点などがあれば、テクニカルサポートまでお気軽にお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx