如何在ruby中连接到EC2 cassandra实例
我是cassandra的新手,所以我接着介绍了如何在EC2实例上设置cassandra。我已经做好了一切准备,但由于某些原因,我无法从ruby连接。以下是我一直在尝试的:如何在ruby中连接到EC2 cassandra实例,ruby,amazon-ec2,cassandra,Ruby,Amazon Ec2,Cassandra,我是cassandra的新手,所以我接着介绍了如何在EC2实例上设置cassandra。我已经做好了一切准备,但由于某些原因,我无法从ruby连接。以下是我一直在尝试的: require 'cassandra' client = Cassandra.new('PERSON', 'ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160') # => # <Cassandra:0x100cda3b0 # @auto_di
require 'cassandra'
client = Cassandra.new('PERSON', 'ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160')
# =>
# <Cassandra:0x100cda3b0
# @auto_discover_nodes = true,
# @column_name_class = {},
# @column_name_maker = {},
# @is_super = {},
# @sub_column_name_class = {},
# @sub_column_name_maker = {},
# attr_accessor :keyspace = "PERSON",
# attr_reader :servers = [
# [0] "ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160"
# ],
# attr_reader :thrift_client_class = ThriftClient < AbstractThriftClient,
# attr_reader :thrift_client_options = {
# :transport_wrapper => Thrift::FramedTransport < Thrift::BaseTransport,
# :thrift_client_class => ThriftClient < AbstractThriftClient,
# :protocol => Thrift::BinaryProtocolAccelerated < Thrift::BinaryProtocol
# }
# >
我可以通过SSH连接,所以我不确定我在这里做错了什么
更新:
我的安全组包括:
端口:9160
协议:tcp
来源:sg-xxxxxxxx有两件事需要检查:
- 您是否在客户端和/或服务器上运行防火墙
- 是否允许在EC2安全组中从客户端访问服务器
您正在使用的安全组仅向组中的实例打开端口9160。如果您试图从其他任何地方(如外部世界)连接,您将不会成功。我会将此更改为什么,以便连接?@Josh这就是我请求“来源”的原因。例如,如果你想向全世界开放它,你可以将源代码改为:0.0.0.0/0。@Josh,太好了。然而,我建议阅读AWS安全组的文档,并朝着更严格的方向努力。现在,地球上的每个人都可以像你一样访问这个服务器。当我准备好把任何真实的数据放进去的时候,我会回去,现在,我只是在玩它。
client.keyspaces
#=> ThriftClient::NoServersAvailable: No live servers in [ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160].