According to the docs:
broadcast_address
: (Default: listen_address
) If your Cassandra cluster is deployed across multiple Amazon EC2 regions and you use the EC2MultiRegionSnitch, set the broadcast_address to public IP address of the node and the listen_address to the private IP.
listen_address
: (Default: localhost) The IP address or hostname that other Cassandra nodes use to connect to this node. If left unset, the hostname must resolve to the IP address of this node using/etc/hostname, /etc/hosts, or DNS. Do not specify 0.0.0.0.
rpc_address
: (Default: localhost) The listen address for client connections (Thrift remote procedure calls).
seed_provider
: (Default: org.apache.cassandra.locator.SimpleSeedProvider) A list of comma-delimited hosts (IP addresses) to use as contact points when a node joins a cluster. Cassandra also uses this list to learn the topology of the ring. When running multiple nodes, you must change the - seeds list from the default value (127.0.0.1). In multiple data-center clusters, the - seeds list should include at least one node from each data center (replication group)
Trying to summarize:
- the
rpc_address
is used for client connections and has nothing to do with multi-region EC2
- the
listen_address
and broadcast_address
are the 2 important options for multi-region EC2 configuration
in general when configuring any of these answer 2 questions:
- who is connecting? (another nodes? clients?)
- what IPs are accessible? (is this network interface accessible to who is connecting?)