【问题标题】:Communicate between two servers - Amazon SQS / SNS?在两台服务器之间进行通信 - Amazon SQS / SNS?
【发布时间】:2013-01-08 02:57:42
【问题描述】:
我有两台服务器。基本上 Server #1 全天运行一个脚本,完成后我需要向 Server #2 发送通知,让它运行其他一些脚本。
我目前依靠 Amazon AWS 工具并使用 Python,所以我想知道是否有人可以推荐一种简单、安全且易于编程的方式:
- 在服务器 #1 完成运行其脚本时设置一个标志
- 从服务器 #2 轮询此标志
- 当标志处于活动状态时在服务器 #2 上运行脚本
- 当脚本在服务器 #2 上完成运行后,从服务器 #1 中删除标志
我应该使用 Amazon SNS 还是 SQS?或者,这两个都是一个糟糕的选择,如果是,你能推荐更好的吗?我倾向于使用 AWS 工具,因为我已经安装了 boto,而且我喜欢它的易用性。
【问题讨论】:
标签:
python
linux
amazon-web-services
debian
【解决方案2】:
假设 Server #1 正在通过 cron 运行脚本,那么您应该没有理由不能只使用 ssh 远程更改 Server #2。我相信如果您使用弹性 IP 地址,它可能不会算作带宽使用量。
除此之外,我会使用 SNS。该模型将改为:
- 服务器 #1 通知服务器 #2(脚本启动)
- 服务器 #1 开始运行脚本
- (可选)服务器 #1 通知服务器 #2 进度
- 服务器 #1 通知服务器 #2(脚本完成),开始服务器 #2 的脚本
- 服务器 #2 在完成时通知服务器 #1
在这种情况下,您需要设置某种简单的网络服务器来接受通知。简单的 CGI 脚本会减少它,但不是最安全的选择。
如果有两个脚本试图同时运行,我只会将 SQS 带入图片中。如果您将其分块为“所有服务器 #1,然后是服务器 #2”,这是您并不真正需要的级别。