从AWS外部连接到EC2上托管的无数据组实例?

时间:2014-12-11 05:17:34

标签: clojure amazon-ec2 datomic

我已经在EC2实例上安装并运行了cldwalker的无数据组的receipe https://github.com/cldwalker/datomic-free

;=> System started datomic:free://{EC2 private IP address}:4334/<DB-NAME>, 
;   storing data in: data

我的free-transactor.properties文件如下所示:

protocol=free
host={EC2 private IP address}
port=4334
h2-port=4335
h2-web-port=4336

我想从EC2外部连接数据库:

(require '[datomic.api :as d]) 

(def uri "datomic:free://{EC2 public IP address}:4334/om_async?h2-
port=4335&h2-web-port=4336&aws_secret_key={xxx}&aws_access_key_id={yyy}")

(d/create-database uri)

但我明白了:

clojure.lang.ExceptionInfo: Error communicating with HOST 
{EC2 private IP address} on PORT 4334 :: {:timestamp 1418304487036, 
:host "{EC2 private IP address}", :version "0.9.5078", :port 4334, 
:username "{XXX}", :peer-version 2, :alt-host nil, :password "{YYY}", 
:encrypt-channel true}

我该怎么做才能使这项工作?

更新

我在EC2&#34;上找到了#34; Free Transactor。 Datomic Google Group中的主题:https://groups.google.com/d/msg/datomic/wBRZNyHm03o/0SdNhqjF27wJ

这是否意味着如果我的应用在同一台服务器上运行,我只能连接到Datomic-free?

如果我在linode或digitalocean上托管无Datomic,我是否会遇到同样的问题(无法从外部服务器访问数据库)?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我遇到了一个非常类似的问题(“与HOST通信时出错” 在PORT 4334“)上,我所要做的就是重新启动我的电脑,奇怪的是。我想,在启动了一个本地交易器后,端口被捆绑了。再说一遍,你可能已经尝试过了。

答案 1 :(得分:0)

要允许远程对等方访问嵌入式存储,您必须做三件事:

  • 为嵌入式存储选择两个密码
  • 设置存储访问属性
  • 向对等方使用的连接URI添加密码

看看这个link