我开发了几个脚本,这些脚本使用来自multiprocessing.managers的BaseManager一起工作。它们都可以在AWS或本地一起正常运行。但是现在我想把事情混在一起。我想让AWS保持便宜,并在本地计算机上使用我的GPU。
我如何连接到“服务器”,该服务器创建在AWS上运行的IPC,队列等?服务器是在AWS机器上使用ip 127.0.0.1创建的。
我有一个安全组,非常适用于SSH,MySQL和其他功能,我的本地计算机的IP用于SSH等。
在本地计算机上的脚本中,我尝试使用以下IP地址连接到AWS上的服务器:
-公共DNS
-IPv4公用IP
-私有IP
这些似乎都不起作用。我不是网络专家,下面的问题比我的水平高一点,但是,我是否需要使用OpenVPN创建通往VPC的隧道?
还有其他想法,建议和帮助吗? 请参阅下面的服务器代码(本地脚本和其他相关脚本的代码与此相似):
from multiprocessing.managers import BaseManager
from queue import Queue
import os
import sys
class Server():
def __init__(self, ip, port, authkey):
super(Server, self).__init__()
self.ip = ip
self.port = port
self.authkey = authkey
def make_server_manager(self):
q_sync = Queue()
BaseManager.register('q_sync', callable=lambda: q_sync)
manager = BaseManager(address=(self.ip, self.port), authkey=self.authkey)
print('Server started at port ' + str(self.port))
return manager
if __name__ == "__main__":
ip = '127.0.0.1'
port = 12222
authkey = 'abc'.encode('utf-8')
s = Server(ip, port, authkey)
答案 0 :(得分:0)
(我自己找到了答案,因此决定稍微修改一下我的问题,并确保突出显示答案中的重要内容。)
要使其正常工作,在AWS上的安全组和脚本中正确设置IP地址很重要。
我在这里给出的答案假设服务器在AWS上运行,并且其他脚本可以在本地或AWS上运行。
您需要进行以下设置:
在您的AWS安全组中,创建具有以下规范的自定义TCP规则:
1. IP地址:您本地计算机的IP地址
2.端口范围:运行服务器的端口(范围/数字),在这种情况下为11111
您的脚本必须包含以下IP地址:
-服务器(在AWS上运行):实例在AWS上的私有IP
-进程未在AWS上运行(Reader / Writer /无论您选择在本地计算机上运行什么):服务器在其上运行的实例的公共IPv4地址
脚本中的端口号和身份验证代码显然必须全部匹配。
希望很清楚。享受大家。