2012-06-08 6 views
0

안녕하세요 저는 C++ 서버를 실행하는 다른 EC2 인스턴스에 웹 서비스를 제공하는 Heroku의 RoR을 사용하고 있습니다. Heroku (https://devcenter.heroku.com/articles/external-services)에서 EC2 인스턴스에 액세스 할 수있는 자료가 있다는 것을 알고 있지만, 다른 방법으로는 보지 못했습니다.다른 EC2 인스턴스에서 Heroku 앱의 서비스에 액세스

두 인스턴스가 모두 미국 - 동부 지역에서 호스팅되는 경우 EC2 C++ 서버에서 Heroku 서비스로 대기 시간이 짧은 요청을 보내는 방법이 있는지 궁금합니다. (위의 링크에서 언급 한 라인을 따라 뭔가 반대 방향으로 만)

C++ 인스턴스와 Heroku 사이의 정상적인 HTTP 요청을 사용하면 확실하지만 더 나은 솔루션이 있는지 궁금합니다. . 감사!

답변

1

저는 Heroku에 익숙하지 않지만 EC2 연결에서 실행되기 때문에 두 인스턴스 모두 매우 간단해야합니다. 각 인스턴스 사이의 대기 시간을 최소화하려면 C++ 인스턴스를 미국 - 동부 지역 내에 설치하고 인스턴스의 내부 DNS를 사용해야합니다.

Heroku 인스턴스에서 C++ 인스턴스에 액세스하려면 net-ssh gem을 사용하면 ssh를 통해 연결할 수 있고 직접 C++ 인스턴스에서 원하는대로 수행 할 수 있습니다.

경우에 따라 C++ 인스턴스의 처리에 약간의 시간이 걸리고 레일 응용 프로그램에서 결과를 기다려야하므로 대기열 서비스를 사용하여 인스턴스 간 통신을 고려할 수 있습니다. 한 가지 예가 Amazons SQS 서비스입니다. 대기열을 설정하고 C++ 인스턴스가 레일 응용 프로그램이 대기열에 필요한 정보를 게시하게하십시오. cron으로 주기적으로 시작되는 레이크 작업을 작성하거나 백그라운드에서 계속 실행되는 데몬을 작성하여 레일 응용 프로그램이 대기열에서 정보를 수집하도록 할 수 있습니다. rake, rake, rake your boat을 여기 데몬을 작성하기위한 몇 가지 지침을 제공해야하는 Railscast입니다 : #129 Custom Daemon 갈퀴 작업을 작성

이 당신이 시작할 수 있어야 쉽다.

+0

답장을 보내 주셔서 감사합니다. C++ 인스턴스가 Heroku의 레일 앱에 전화를 걸 때이 방법이 작동한다고 가정합니다. 그러나, 당신이 Heroku에 익숙하지 않다고 말했듯이, 그 일을하기 위해 어떤 종류의 보안 구성이 수행되어야하는지 여부를 밝힐 수 있습니까? – Jamornh

+1

Heroku 인스턴스에 SSH를하려면 포트 22를 열어야합니다. 또는 다른 SQS 대기열을 설정하여 작업/명령을 레일스 응용 프로그램에 보낼 수 있습니다 (레일스 응용 프로그램이 명령을 수신 할 수 있도록 백그라운드 작업을 작성해야 함) SQS 큐에서). – dom

+0

도움 주셔서 감사합니다 :) – Jamornh

관련 문제