Amazon EC2 (EBS) 上的集群数据存储有哪些可能的架构?
我正在运行部署在 EC2 实例上的 Django 网站(在 Apache 上)。目前它使用单个 MySQL 实例,但理想情况下我希望有一个集群。请就以下可能性提供利弊建议,并列出其他可能性(如果有):
MySQL 集群:如果我在多个 EBS 实例上部署 MySQL,我仍然需要分区器来拥有分布式集群。有什么解决方案吗?
Cassandra:设置 Cassandra 如何与 EC2 配合使用?另外,如果我当前使用 Cassandra,我是否可以使用 Django 模型的功能,或者可以为 Django 编写驱动程序插件吗?
RDS:RDS是否支持集群?目前我只找到了主从架构的文档。
谢谢,
-席德
I am running a Django website (on Apache) deployed on an EC2 instance. Currently it uses a single MySQL instance but ideally I would like to have a cluster. Please advise on the pros and cons on the following possibilities as well as list others if any:
MySQL Cluster: If I deploy MySQL on several EBS instances, I still need a partitioner to have a distributed cluster. Any solutions for this?
Cassandra: How does setting Cassandra up go with EC2? Also, if I use Cassandra currently, do I use the ability to use Django Models, or can I write a driver plugin for Django?
RDS: Does RDS support clusters? So far I only found documentation on Master-Slave architectures.
Thanks,
-Sid
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
MariaDB 10 非常适合此设置。
我们还在 EC2 内的 4 个节点上使用 Percona MySQL 集群已有 2 年了,它的性能完美无缺。
MariaDB 10 will work perfectly for this set up.
We have also been using Percona MySQL cluster on 4 nodes within EC2 for 2 years now, and it has performed flawlessly.
MySQL Cluster:不确定分区程序是什么意思。您将需要至少 3 个实例:1 个管理节点和 2 个数据节点。 MySQL集群是内存数据库,因此您需要大内存实例作为数据节点。检查 MySQL Cluster 文档以进行容量估计。此外,MySQL Cluster 需要高速低延迟互连才能实现最佳性能。 EC2 不是它的最佳环境。
Cassandra:应该可以正常工作 - http://wiki.apache.org/cassandra/Cassandra %20EC2
RDS:RDS 不支持集群。 EC2 的高可用性并不容易,因为它不提供对广播/多播、ARP 接管等网络功能的完全访问。不过,有些人正在取得进展:http://www.mysqlperformanceblog.com/2010/06/17/high -availability-for-mysql-on-amazon-ec2-part-1-intro/
请注意:MySQL Cluster 和 Cassandra 是与 MySQL 不同的解决方案。如果您决定进行切换,您将需要重新考虑应用程序如何存储和访问数据。
MySQL Cluster: not sure what you mean by partitioner. You will need at least 3 instances: 1 management and 2 data nodes. MySQL cluster is in-memory database so you will need to large-memory instances for data nodes. Check MySQL Cluster docs for capacity estimation. Also, MySQL Cluster needs high-speed low-latency interconnects to achieve the best performance. EC2 is not the best environment for it.
Cassandra: should work just fine - http://wiki.apache.org/cassandra/Cassandra%20EC2
RDS: RDS does not support clusters. High availability does not come easy with EC2 since it does not provide full access to networking features like broadcast/multicast, ARP takeover, etc. Some people are making progress though: http://www.mysqlperformanceblog.com/2010/06/17/high-availability-for-mysql-on-amazon-ec2-part-1-intro/
Just to note: MySQL Cluster and Cassandra are different solutions from MySQL. You will need to rethink how your app stores and accesses the data if you decide to make the switch.