私は cassandra を初めて使用するので、EC2 インスタンスで Cassandra をセットアップする方法についてこのガイドに従いました。すべてのセットアップと準備が整ったのですが、何らかの理由で ruby から接続できません。これが私が試したことです:
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
# }
# >
次に、クライアントを使用しようとすると、次のエラーが発生します。
client.keyspaces
#=> ThriftClient::NoServersAvailable: No live servers in [ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160].
SSH経由で接続できるので、ここで何が間違っているのかわかりません。
アップデート:
私のセキュリティグループには以下が含まれます:
ポート: 9160
プロトコル: TCP
ソース: sg-xxxxxxxx