/ /別のEC2インスタンスからHerokuアプリのサービスにアクセスする-ruby-on-rails、heroku、amazon-ec2、amazon-web-services

他のEC2インスタンス(Ruby-on-rails、heroku、amazon-ec2、amazon-web-services)からHerokuアプリケーションのサービスにアクセスする

こんにちは私はプロジェクトに取り組んでいますRoRを使用している可能性がありますC ++サーバーを実行している別のEC2インスタンスにWebサービスを提供するHeroku。 Heroku(https://devcenter.heroku.com/articles/external-services)からEC2インスタンスにアクセスするための資料があることは理解していますが、その逆は見たことがありません。

私はする方法があるかどうか疑問に思っています両方のインスタンスが米国東部リージョンでホストされている場合、EC2 C ++サーバーからHerokuサービスへの低レイテンシリクエスト? (上記のリンクに記載されている線に沿った何か、ちょうど反対方向。)

「C ++インスタンスとHerokuの間で通常のHTTPリクエストを使用することは確実に機能しますが、より良い解決策があるかどうか疑問に思いました。ありがとう!

回答:

回答№1は1

私はHerokuに精通していませんが、EC2接続で実行すると、両方のインスタンスがかなり単純になるはずです。各インスタンス間のレイテンシを最小限に抑えるには、米国東部リージョン内でC ++インスタンスを設定し、インスタンスの内部DNSを使用する必要があります。

HerokuインスタンスからC ++インスタンスにアクセスする場合は、 net-ssh gem、これにより、ssh経由で接続し、C ++インスタンスで直接やりたいことが何でもできます。

場合によっては、C ++インスタンスでの処理しばらく時間がかかり、Railsアプリは結果を「待機」する必要があるため、キューサービスを使用してインスタンス間で通信することを検討してください。 1つの例はAmazonsSQSサービスです。キューを設定し、C ++インスタンスにrailsアプリがキューに必要とする情報を投稿させます。 cronによって定期的に開始されるrakeタスクを作成するか、バックグラウンドで継続的に実行されるデーモンを作成して、railsアプリがキューから情報を収集できるようにする必要があります。

レーキタスクを書くのは簡単です、これはあなたが始めるはずです: レーキ、レーキ、ボートをレーキ そして、これがデーモンを書くためのいくつかの指示を与えるはずのRailscastです: #129カスタムデーモン.