Depending on your client, disable automatic client discovery and just specify a list of all your nodes in your client configuration.

For more details check out http://xzheng.net/blogs/problem-when-connecting-to-cassandra-with-ruby/ , obviously this deals specifically with a ruby client but it should be applicable to others.

Cheers

Ben
Instaclustr | www.instaclustr.com | @instaclustr



On 18/04/2013, at 5:43 AM, Robert Coli <rcoli@eventbrite.com> wrote:

On Wed, Apr 17, 2013 at 12:07 PM, <maillists0@gmail.com> wrote:
I have a working 3 node cluster in a single ec2 region and I need to hit it from our datacenter. As you'd expect, the client gets the internal addresses of the nodes back.

Someone on irc mentioned using the public IP for rpc and binding that address to the box. I see that mentioned in an old list mail but I don't get exactly how this is supposed to work. I could really use either a link to something with explicit directions or a detailed explanation.

Should cassandra use the public IPs for everything -- listen, b'cast, and rpc? What should cassandra.yaml look like? Is the idea to use the public addresses for cassandra but route the requests between nodes over the lan using nat?

Any help or suggestion is appreciated.

Google "EC2MultiRegionSnitch".

=Rob