You'll have to configure your nodes to: 1. use AWS internal IPs for inter-node connection (check listen_address) and 2. use the AWS public IP for client-to-node connections (check rpc_address)
Depending on the setup, there might be other interesting conf options in cassandra.yaml (broadcast_address, listen_interface, rpc_interface). [1]: http://docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html On Mon, Apr 20, 2015 at 9:50 AM, Jonathan Haddad <j...@jonhaddad.com> wrote: > Ideally you'll be on the same network, but if you can't be, you'll need to > use the public ip in listen_address. > > On Mon, Apr 20, 2015 at 9:47 AM Matthew Johnson <matt.john...@algomi.com> > wrote: > >> Hi all, >> >> >> >> I have set up a Cassandra cluster with 2.1.4 on some existing AWS boxes, >> just as a POC. Cassandra servers connect to each other over their internal >> AWS IP addresses (172.x.x.x) aliased in /etc/hosts as sales1, sales2 and >> sales3. >> >> >> >> I connect to it from my local dev environment using the seed’s external >> NAT address (54.x.x.x) aliases in my Windows hosts file as sales3 (my seed). >> >> >> >> When I try to connect, it connects fine, and can retrieve some data (I >> have very limited amounts of data in there, but it seems to retrieve ok), >> but I also get lots of stacktraces in my log where my dev environment is >> trying to connect to Cassandra on the internal IP (presumably the Cassandra >> seed node tells my dev env where to look): >> >> >> >> >> >> *INFO 2015-04-20 16:34:14,808 [CASSANDRA-CLIENT] {main} Cluster - New >> Cassandra host sales3/54.x.x.142:9042 added* >> >> *INFO 2015-04-20 16:34:14,808 [CASSANDRA-CLIENT] {main} Cluster - New >> Cassandra host /172.x.x.237:9042 added* >> >> *INFO 2015-04-20 16:34:14,808 [CASSANDRA-CLIENT] {main} Cluster - New >> Cassandra host /172.x.x.170:9042 added* >> >> *Connected to cluster: Test Cluster* >> >> *Datatacenter: datacenter1; Host: /172.x.x.170; Rack: rack1* >> >> *Datatacenter: datacenter1; Host: sales3/54.x.x.142; Rack: rack1* >> >> *Datatacenter: datacenter1; Host: /172.x.x.237; Rack: rack1* >> >> *DEBUG 2015-04-20 16:34:14,901 [CASSANDRA-CLIENT] {Cassandra Java Driver >> worker-0} Connection - Connection[sales3/54.x.x.142:9042-2, inFlight=0, >> closed=false] Transport initialized and ready* >> >> *DEBUG 2015-04-20 16:34:14,901 [CASSANDRA-CLIENT] {Cassandra Java Driver >> worker-0} Session - Added connection pool for sales3/54.x.x.142:9042* >> >> *DEBUG 2015-04-20 16:34:19,850 [CASSANDRA-CLIENT] {Cassandra Java Driver >> worker-1} Connection - Connection[/172.x.x.237:9042-1, inFlight=0, >> closed=false] Error connecting to /172.x.x.237:9042 (connection timed out: >> /172.x.x.237:9042)* >> >> *DEBUG 2015-04-20 16:34:19,850 [CASSANDRA-CLIENT] {Cassandra Java Driver >> worker-1} Connection - Defuncting connection to /172.x.x.237:9042* >> >> *com.datastax.driver.core.TransportException**: [/172.x.x.237:9042] >> Cannot connect* >> >> >> >> >> >> Does anyone have any experience with connecting to AWS clusters from dev >> machines? How have you set up your aliases to get around this issue? >> >> >> >> Current setup in sales3 (seed node) cassandra.yaml: >> >> >> >> *- seeds: "sales3"* >> >> *listen_address: sales3* >> >> *rpc_address: sales3* >> >> >> >> Current setup in other nodes (eg sales2) cassandra.yaml: >> >> >> >> *- seeds: "sales3"* >> >> *listen_address: sales2* >> >> *rpc_address: sales2* >> >> >> >> >> >> Thanks! >> >> Matt >> >> >> > -- Bests, Alex Popescu | @al3xandru Sen. Product Manager @ DataStax