在两台服务器之间进行通信 - Amazon SQS / SNS?

时间:2013-01-24 11:09:31

标签: python linux amazon-web-services debian

我有两台服务器。基本上 Server#1 全天运行脚本,完成后我需要向 Server#2 发送通知,让它运行其他一些脚本。

我目前正在使用Amazon AWS工具并使用Python,所以我想知道是否有人可以推荐一种简单,安全且易于编程的方式:

  • 在服务器#1运行完脚本后设置标志
  • 从服务器#2
  • 轮询此标志
  • 当标志处于活动状态时,在服务器#2上运行脚本
  • 当脚本在服务器#2
  • 上运行完毕后,从服务器#1中删除该标志

我应该使用Amazon SNS还是SQS?或者,这些都是一个糟糕的选择,如果是这样,你能推荐更好的东西吗?我倾向于使用AWS工具,因为我已经安装了boto,我喜欢这种易用性。

2 个答案:

答案 0 :(得分:1)

假设服务器#1 正在通过cron运行脚本,那么您就没有理由不能使用ssh远程更改服务器#2 。我相信如果你使用弹性IP地址,它可能不算作带宽使用。

除此之外,我使用SNS。该模型将改为:

  • 服务器#1通知服务器#2(脚本启动)
  • 服务器#1开始运行脚本
  • (可选)服务器#1通知服务器#2进度
  • 服务器#1通知服务器#2(脚本完成),启动服务器#2的脚本
  • 服务器#2在完成后通知服务器#1

在这种情况下,您需要设置某种简单的网络服务器来接受通知。简单的CGI脚本虽然不是最安全的选项,但它会削减它。

如果有两个脚本试图同时运行,我只会将SQS带入图片中。如果你正在整理服务器#1,那么服务器#2"这是你真正需要的水平。

答案 1 :(得分:1)

您可能需要考虑查看AWS Simple Workflow Service。使用SWF,您可以轻松地在多个不同的计算机上协调工作流程类型的活动。

http://aws.amazon.com/swf/