The only thing I have to add is that I'd avoid option B like the plague. Spinning up and spinning down nodes in a cluster is going to result in a lot of gossip around the ring, especially when we already know that comms in AWS are a bit spotty.
I'm assuming that you're not talking about elastic load balancers - those don't work for communication within AWS. You could also use a virtual private cloud for your setup to minimize traffic from the outside world. --- Jeremiah Peschka - Founder, Brent Ozar PLF, LLC Microsoft SQL Server MVP On Oct 4, 2011, at 3:59 PM, Greg Stein wrote: > I'm with Kyle on this one. Even better, my 'newhttp' branch on Github > enables this kind of multiple-connection and automatic fail-over. > > That branch does have a basic sketch for automatic addition/removal of > Riak nodes as you manipulate your cluster. I'll need it one day, but > not "now", so I haven't finished it yet (the monitor.py background > thread). > > Regarding security: it is the same for option A and B and C (you're > just shifting stuff around, but it is pretty much all the same). Put > your webservers in one security group, and the Riak nodes in another. > Open the Riak ports *only* to the webserver security group and to each > other. > > Avoiding two services on one machine (e.g web + riak) is also much > easier to manage/maintain. Just have web machines and riak machines. > > Cheers, > -g > > On Tue, Oct 4, 2011 at 17:09, Aphyr <ap...@aphyr.com> wrote: >> Option C: Deploy your web servers with a list of hosts to connect to. Have >> the clients fail over when a riak node goes down. Lower latency without >> sacrificing availability. If you're using protobufs, this may not be as big >> of an issue. >> >> --Kyle >> >> On 10/04/2011 02:04 PM, O'Brien-Strain, Eamonn wrote: >>> >>> I am contemplating two different architectures for deploying Riak nodes >>> and web servers. >>> >>> Option A: Riak nodes are in their own cluster of dedicated machines >>> behind a load balancer. Web servers talk to the Riak nodes via the load >>> balancer. (See diagram http://eamonn.org/i/riak-arch-A.png ) >>> >>> Option B: Each web server machine also has a Riak node, and there are also >>> some Riak-only machines. Each web server only talks to its own localhost >>> Riak node. (See diagram http://eamonn.org/i/riak-arch-B.png ) >>> >>> >>> All machines will deployed as elastic cloud instances. I will want to >>> spin up and spin down instances, particularly the web servers, as demand >>> varies. Both load balancers are non-sticky. Web servers are currently >>> talking to Riak via HTTP (though might change that to protocol buffers in >>> the future). Currently Riak is configured with the default options. >>> >>> Here is my thinking of the comparative advantages: >>> >>> Option A: >>> >>> - Better for security, because can lock down the Riak load balancer to >>> only open a single port and only for connections from the web servers. >>> - Less churn for Riak of nodes entering and leaving the Riak cluster (as >>> web servers spin up and down) >>> - More flexibility in scaling storage and web tiers independently of each >>> other >>> >>> Option B: >>> >>> - Faster localhost connection from web server to Riak >>> >>> I think availability is similar for the two options. >>> >>> The web server response time is the primary metric I want to optimize. >>> Most web server requests will cause several requests to Riak. >>> >>> What other factors should I take into account? What measurements could I >>> make to help me decide between the architectures? Are there other >>> architectures I should consider? Should I add memcached? Does anyone have >>> any experiences they could share in deploying such systems? >>> >>> Thanks. >>> __ >>> Eamonn >>> >>> _______________________________________________ >>> riak-users mailing list >>> riak-users@lists.basho.com >>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >>> >> >> _______________________________________________ >> riak-users mailing list >> riak-users@lists.basho.com >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >> > > _______________________________________________ > riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com _______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com