Re: Ec2MultiRegionSnitch difficulties (3.11.2)

2019-06-28 Thread Oleksandr Shulgin
On Fri, Jun 28, 2019 at 3:14 AM Voytek Jarnot 
wrote:

> Curious if anyone could shed some light on this. Trying to set up a
> 4-node, one DC (for now, same region, same AZ, same VPC, etc) cluster in
> AWS.
>
> All nodes have the following config (everything else basically standard):
> cassandra.yaml:
>   listen_address: NODE?_PRIVATE_IP
>   seeds: "NODE1_ELASTIC_IP"
>   endpoint_snitch: Ec2MultiRegionSnitch
> cassandra-rackdc.properties:
>   empty except prefer_local=true
>
> I've tried setting
>   broadcast_address: NODE?_ELASTIC_IP
> But that didn't help - and it seems redundant, as it appears that that's
> what the Ec2MultiRegionSnitch does anyway.
>

Hi,

It is quite confusing, as I remember hitting this issue before.  You need
to set the following:

broadcast_rpc_address: NODE?_ELASTIC_IP

Even though, listen_address and broadcast_address should be set by the EC2
snitch automatically, the above parameter is not set automatically and this
is the one that the nodes are using to talk to each other.

Cheers,
--
Alex


Ec2MultiRegionSnitch difficulties (3.11.2)

2019-06-27 Thread Voytek Jarnot
Curious if anyone could shed some light on this. Trying to set up a 4-node,
one DC (for now, same region, same AZ, same VPC, etc) cluster in AWS.

All nodes have the following config (everything else basically standard):
cassandra.yaml:
  listen_address: NODE?_PRIVATE_IP
  seeds: "NODE1_ELASTIC_IP"
  endpoint_snitch: Ec2MultiRegionSnitch
cassandra-rackdc.properties:
  empty except prefer_local=true

I've tried setting
  broadcast_address: NODE?_ELASTIC_IP
But that didn't help - and it seems redundant, as it appears that that's
what the Ec2MultiRegionSnitch does anyway.

Node 1 starts up fine, because it's the seed. No other nodes will start,
reporting:
"Exception (java.lang.RuntimeException) encountered during startup: Unable
to gossip with any seeds"

Adding iptables rules to the nodes to translate outgoing packets with
destination of NODE?_ELASTIC_IP to destination of NODE?_PRIVATE_IP solves
the issue, but that seems like a hack.
(For Example: iptables -t nat -A OUTPUT -p tcp -d ELASTIC_IP -j DNAT
--to-destination PRIVATE_IP)

Not sure if I'm missing a config item, or something in AWS is blocking me,
or if 3.11.2 has an issue.

Thanks,
Voytek Jarnot