访问AWS上的Tensorboard

时间:2017-02-16 14:50:15

标签: amazon-web-services amazon-ec2 tcp tensorflow tensorboard

我正在尝试访问AWS上的Tensorboard。这是我的设置:

  • Tensorboard:tensorboard --host 0.0.0.0 --logdir=train
  

在端口6006上启动TensorBoard b'39'(您可以导航到   http://172.31.18.170:6006

  • AWS安全组(in):
    • HTTPS TCP 443 0.0.0.0/0
    • Custom_TCP TCP 6006 0.0.0.0/0

然而连接到ec2-blabla.us-west-1.compute.amazonaws.com:6006我看不到任何东西,我基本上无法连接。

你有什么想法吗?

6 个答案:

答案 0 :(得分:5)

您可以使用ssh隧道技术。

在您的终端中,您可以写:

ssh -i /path/to/your/AWS/key/file -NL 6006:localhost:6006 user@host

用户和主机是您的aws ec2用户和特定于实例的。

之后,您可以浏览http://localhost:6006/

答案 1 :(得分:4)

快速(但不安全)解决方案:

运行:

tensorboard --logdir=/training --host=0.0.0.0 --port=8080 

在您的AWS实例上。

确保AWS控制台(控制中心)上的入站和出站规则尽可能不受限制(允许所有类型,所有端口等)。但是,请记住,对于需要安全性的环境,不建议使用此解决方案(在我们的示例中,我们没有考虑培训NN的安全性)。

尝试解释其原因:当策略按照描述设置时,AWS似乎仍然禁止标准tensorboard端口6006上的入站/出站连接。这似乎不适用于端口8080.

长(但更安全)的解决方案: 请参阅:https://blog.altoros.com/getting-started-with-a-cpu-enabled-tensorflow-instance-on-aws.html (提供有关在AWS上正确设置端口的说明)

答案 2 :(得分:4)

我设法将其设置为:

  • 转到ec2控制台中的安全组:

  • 在表格中选择相关的安全组,单击“编辑”。

  • 添加如下规则:

  • 启动张量板:tensorboard --logdir tf_summary/ --port 8080

  • 找出您实例的网址,然后访问http://yourURL:8080

答案 3 :(得分:4)

  1. 在ec2终端中运行tensorboard(您可以自定义logdir和端口)

    tensorboard --logdir=data/model --port=8080
    
  2. 访问http://ip4.me/

  3. 找到您的工作站public ip(a.b.c.d)地址
  4. 访问分配给EC2的安全组配置,并为您的入站流量添加自定义TCP规则。

    Security group inbound traffic configuration

  5. 应将出站设置为允许来自tensorboard端口的流量。 (在这种情况下为8080)。或者您只允许来自EC2实例的所有传出流量

    Protocol       Port Range      Destination      Description   
    All traffic    All             All               0.0.0.0/0
    
  6. 使用您的公共DNS从工作站访问tensorboard

    http://ec2-xx-xxx-xx-xx.compute-1.amazonaws.com:8080/

答案 4 :(得分:0)

只需运行没有主机参数的张量板(这会带来限制)

tensorboard --logdir XXX --port 6006

答案 5 :(得分:-1)

我好几天都遇到了同样的问题。

幸运的是,我通过在" AWS Outbound规则"上添加规则解决了这个问题。好像我已经添加了" AWS入站规则"。

无论此设置如何,它都可以在家中使用。 同样的错误仍然只发生在公司。