Как масштабировать экземпляр Amazon RDS по горизонтали? EC2 и балансировщик нагрузки + автомасштабирование чрезвычайно просты в реализации, но если я хочу масштабировать amazon RDS? Я могу обновить свой экземпляр RDS с помощью более мощного экземпляра или создать реплику чтения и направить к ней запросы SELECT. Но в этом режиме я ничего не масштабирую, если у меня есть ориентированное на чтение веб-приложение. Итак, могу ли я создать реплику чтения RDS с автоматическим масштабированием и сбалансировать их с помощью балансировщика нагрузки?
Как масштабировать инстанс Amazon RDS по горизонтали?
Ответы (3)
Вы можете использовать HAProxy для балансировки нагрузки реплик чтения Amazon RDS. Проверьте этот http://harish11g.blogspot.ro/2013/08/Load-balancing-Amazon-RDS-MySQL-read-replica-slaves-using-HAProxy.html. Надеюсь это поможет.
Примечание RDS поддерживает несколько механизмов баз данных — mysql, postgresql, Oracle, MSSQL.
Вообще говоря, вы можете масштабировать (более крупный экземпляр), использовать базы данных только для чтения или сегментировать. Если вы используете mysql, посмотрите на AWS Aurora. Подумайте об оптимальном использовании базы данных — возможно, в сочетании с memcached или Redis (оба доступны в AWS Elasticache). Подумайте об использовании поисковой системы (lucene, elasticsearch, cloudsearch).
Некоторые общие ресурсы:
- http://highscalability.com/
- https://gigaom.com/2011/12/06/facebook-shares-some-secrets-on-making-mysql-scale/
Если вы используете PostgreSQL и у вас есть рабочая нагрузка, которая может быть разделена по определенному ключу и не требует сложных транзакций, вы можете взглянуть на pg_shard. pg_shard позволяет создавать распределенные таблицы, разделенные на несколько серверов. Запросы к распределенной таблице будут прозрачно направляться в нужный сегмент.
Несмотря на то, что в RDS не установлено расширение pg_shard, вы можете настроить один или несколько серверов PostgreSQL на EC2 с расширением pg_shard и использовать узлы RDS в качестве рабочих узлов. Узлу pg_shard нужно хранить лишь небольшую часть метаданных, резервная копия которых может быть сохранена на одном из рабочих узлов, поэтому они относительно не требуют обслуживания и могут масштабироваться для обеспечения более высоких скоростей запросов.
Руководство со ссылкой на шаблон CloudFormation для автоматической настройки доступно по адресу: https://www.citusdata.com/blog/14-marco/178-scaling-out-postgresql-on-amazon.-rds-using-masterless-pg-shard