Herokuの利用シーンは、データの外部への転送やバックアップが一般的です。このプロセスには多くのステップがありますが、移動部分がきちんとわかれば、効率的なパイプラインの作成は比較的簡単です。というわけで本記事では、HerokuからAmazon S3へデータを移行する方法をご紹介します。今回は、Salesforceのデータを接続し、転送してみましょう。
目次
- Salesforceについて
- Herokuについて
- HerokuからAmazon S3へのSalesforceのデータの転送
- SalesforceとHerokuの接続方法
- HerokuからAmazon S3へのデータの移行方法
- Integrate.ioがお手伝いできること
Salesforceについて
Salesforceは、クラウド技術を使用して企業にビッグデータの自動化と顧客管理ソリューションを提供する世界一有名なCRM(顧客関係管理)ソフトウェアです。
ここでは、SalesforceのようなSaaSが一般的なCRMと何が違うのか、そしてSalesforceが世界的に最も人気のあるソフトウェア企業の1つである理由を簡単に見てみましょう。
Salesforce.comは、ローカライズされたCRMをクラウドに移行させるのを最も早く創案した企業の一つでした。それは、インターネットに接続されているデバイスであれば、世界中のどこからでもクラウドコンピューティングとメタデータにリアルタイムでアクセスできるということであり、企業のITチームのために何もオンプレミスでインストールする必要もないというものでした。
また、Salesforceは、ほとんどのクラウドベースのツールやソフトウェアと接続できるプラットフォームであり、現存するツールの中で最も相互運用性の高いツールの1つという位置づけにあります。このため、Salesforceの顧客には、Marketo、Hubspot、Pardotなどのマーケティングおよび可視化自動化スイートから、Netsuite、Epicorなどの在庫管理システムまで及びます。
Salesforce内に保存されているデータを外部のデータウェアハウスに移動させたいと考えることの多い企業は存在します。そこで以下では、Herokuを使用しながらSalesforceのデータをAWS S3に移動する方法についてご説明します。
Herokuについて
Herokuは、Webアプリケーションをさっと構築・展開できるPaaS(Platform as a Service)であり、Java、Node.js、Python、Ruby、PHPなど複数のプログラミング言語をサポートしています。コードのデプロイ方法の基礎となるインフラを抽象化する方法において、AWSのElastic Beanstalkと似ています。
AWSのような他のPaaSプロバイダーとは異なり、Herokuはプラットフォーム上の変更をプッシュし管理するためにGitベースのワークフローを使用していることも特徴です。これにより、アプリケーション開発中のデベロッパーは、複数の継続的な更新が必要な場合、1つのマスターブランチ内ですべてのアクティビティを追跡に苦労することなく、簡単にコミットを計算または作成し作業を分岐させることができます。
HerokuからAmazon S3へのSalesforceのデータの転送
Herokuを使用しながらSalesforceのデータをAmazon S3に転送するには、まずSalesforceとHerokuの接続の設定が必要です。
そこで一番簡単なやり方がHeroku Connectです。
Heroku Connectは、SalesforceのデータセットをHerokuに転送するためのデータ統合ツールであり、データベースのチェンジセットをAmazon S3、Big Query、あるいはParse Serverなどの別の宛先への移動によって行います。
Heroku Connectはスタンドアローン製品として使用できるほか、MySQLデータベースHeroku Postgresなど他のデータソースとも統合可能です。2つの別々のデータベース間のストリーミング・レプリケーションにより、自動的に更新を引き起こすことができ、これにより、ユーザーはデータパイプライン管理のための強力な自動化機能を得ることができます。
SalesforceとHerokuの接続方法
Heroku Connectを使ったSalesforce接続の設定は、Salesforceの仕組みがわかっていれば比較的簡単にできます
以下、順を追って説明します。
ステップ1:Herokuアプリケーションの新規作成
まず最初にするのは、新しいHerokuアプリケーションのセットアップです。Herokuにログインし、右上の+記号をクリックします。その後【アプリを作る】のオプションを選択して、このアプリの名前とリージョンを入力します。
ステップ2:Heroku Connectの追加
アプリを作成すると、自動的にHerokuのダッシュボードに戻されます。次に、トップメニューの【リソース】タブに移動します。
これで、使いたいアドオンを検索することができます。今回は、Heroku Connectにしましょう。
「Heroku Connect」と入力し、【プロビジョン】を選択すると、アプリケーションにHeroku Connectが追加されます。
ステップ3:Heroku PostgresをMySQLデータベースに追加
Heroku Connectを追加した後、「Heroku Postgres」というアドオンをもう一つ追加する必要があります。
ステップ2で行った作業を繰り返しますが、【Hobby Free Dev Plan in the provisioning 】を使います。
ステップ4:HerokuとSalesforceのアカウントの接続
アドオンのインストールが完了すると、SalesforceとHerokuのアカウントの接続も準備完了です。
【Heroku Connect リソース】をクリックすると、新しいページに誘導されます。Heroku Salesforceのリンクを確立するには【接続設定 】をクリックします。
スキーマを設定し【次へ】をクリックすると、統合ができますので、手順に従ってください。
次に、【環境 】を選択し、【本番 】を選択します。APIを選択し、接続を認証します。
この作業が完了すると、Salesforceのアカウントにログインし直すように指示されます。ユーザー名とパスワードを入力すると、HerokuとSalesforceの連携が開始されます。
HerokuからAmazon S3へのデータの移行方法
HerokuとSalesforceのアカウントが接続されたので、HerokuからAmazon S3へ情報やデータを頻繁にバックアップすることをお勧めします。両者間のデータ転送は特別なことではありません。
この作業の合理化に最適なアプリが、「Buckateer」というアプリです。
ここでは、Buckateerを使ってHerokuとAWS S3を連携させる手順を説明します。
ステップ1:HerokuアプリにBuckateerをダウンロード
上記と同じ手順でBuckateerアプリをプロビジョニングします。
ステップ2:ローカル環境の構築
Buckateerアプリのプロビジョニングができたら、今度はローカル環境のセットアップです。サービスをデプロイしたら、ローカルで同期した設定バーを使って、開発環境の設定バーを複製し、サービスに対して操作できるようにします。
Heroku Localコマンドラインツールを使用して、アプリのプロファイルで確定されたプロセスタイプを設定、実行、およびモニタリングします。
Herokuのローカル環境は.envファイルによって設定されます。アプリの設定値を全て見るには、【Heroku config】 と入力してください。
ステップ3:AWS CLIの使用
次のステップでは、AWS CLI (コマンドラインインターフェース)を使います。
AWS CLIは、AWSのサービス管理のために一つにまとめられたツールです。
インストール後、アプリのコンフィグやSSOページを通じてBucketeerの設定の変更ができます。ここでは、SSOページの適切な設定方法について説明します。
ステップ4:ファイルのアップロード
AWS S3のcpコマンドでバケットURLを指定してファイルをアップロードします。パブリックかプレフィックスを利用してアップロードされたものは、すぐに利用でき、それ以外のファイルは、ACL(アクセスコントロールリスト)の設定が必要です。
転送前のデータクリーニングにIntegrate.ioを利用する
HerokuからAmazon S3へのSalesforceのデータ転送前に、データの変換とクリーニングを確実に行いたいものですが、最も簡単な方法の一つとして、Integrate.ioのようなETLの使用があります。
Integrate.ioは、高度なアルゴリズムと機械学習技術を組み合わせて、Amazon S3にプッシュされる前にSalesforceデータベースの情報を分析します。このため、毎週、毎月など、手動での介入や重いメンテナンスは必要ありません。
Integrate.ioとAWS S3を連携させる方法について、ここにステップバイステップで説明しています。
Integrate.ioができること
HerokuとAmazon S3の接続は、特にHerokuプラットフォーム上でデータが消去されたり破損した場合に、時間とコストの節約の点で有益なやり方です。
大量のデータを扱う上で、情報のバックアップは欠かせませんが、バックアップには特有の課題があります。Integrate.ioのようなツールを使えば、そのような課題は簡単に軽減されます。
SalesforceとAmazon S3の間で確実にデータを整合させるのは面倒な作業ですが、Integrate.ioのETL機能を使用すると、Amazon S3に転送する前にSalesforceデータをクリーニングできます。このクリーニングにより、転送された情報は正確かつ最新のものとなり、その後の手作業やメンテナンスの心配は無用になります。
Integrate.ioによるデータパイプラインの効率化にご興味のある方、14日間無料トライアル・詳細説明をご希望の方は、こちらからデモをご予約ください。