Давайте сначала рассмотрим вашу главную проблему - стоимость.Предположим, у вас есть 1 000 000 голосов в вашей системе.Каждый голос представлен одним элементом Simpledb, и каждый элемент содержит три атрибута, метку времени, фактический голос и уникальное значение, идентифицирующее пользователя (я вернусь к этой части позже).
Теперь, страница обзора simpledb дает нам простой способ расчета фактического размера хранилища элемента.
Amazon SimpleDB измеряет размер ваших оплачиваемых данных, добавляя необработанный размер байта данных, которые вызагрузка + 45 байтов служебной информации для каждого элемента, имени атрибута и пары атрибут-значение.
Давайте посчитаем с небольшим запасом, если вы решите включить больше данных и скажем, что каждый элемент / голособойдется вам в 300 байт памяти.Общий размер хранилища для ваших данных будет ~ 286 МБ.Хорошо в пределах лимита бесплатного уровня.Тогда есть стоимость вставки ваших предметов, но это, вероятно, будет незначительным.Затраты связаны с подсчетом голосов, но, как вы уже предлагали, кэширование может значительно облегчить это.
Я добавил эти цифры в превосходный сервис Простой ежемесячный калькулятор Amazon , чтобы получить приблизительную цифру.и получил ~ 4 доллара в месяц за 1 ГБ хранилища, 1М ставит, 250К получает и 100К выбирает.Теперь, по моему опыту, очень трудно приблизиться к использованию заранее, поэтому вы должны следить за нашим использованием по мере продвижения.Отчеты об использовании, предоставляемые amazon, содержат подробную информацию о запросах, и вы можете использовать ее, чтобы посмотреть на эффекты симулированного использования вашего приложения в реальном мире.
Защита от мошенничества
Теперь, что касается мошенничествачастьМне немного сложно оценить уровень защиты от мошенничества, который вы ищете, но в любом случае у вас просто не будет системы голосования для защиты от мошенничества без учетных записей пользователей.Даже если у вас есть учетные записи, вы должны быть очень осторожны, чтобы избежать XSS и CSRF , чтобы злоумышленники не могли использовать других пользователей и их голоса.
Ограничение голосадля каждого IP есть ряд проблем.
- Некоторые провайдеры активно используют IP-адреса для своих клиентов
- Слишком легко подделать ваш IP, используя любое из большого количества анонимныхинструменты (прокси, vpn: s), которые процветали в эпоху торрента.Также можно использовать бесплатные «легальные» инструменты, такие как TOR .
- Многие крупные организации / правительства / школы будут отправлять весь трафик своих пользователей через прокси-сервер или использовать NAT, что означает, что толькоодин пользователь от каждой организации сможет отдавать свои голоса.
Существует даже вероятность того, что пользователи имеют разные IP-адреса для каждого запроса (!)
Кстати, олипкие сессии, мы были удивлены, обнаружив, что есть те редкие пользователи, чьи IP-адреса будут радикально меняться от запроса к запросу.
http://blog.stackoverflow.com/2009/07/
Если вы действительно серьезныЧто касается создания надежной системы онлайн-голосования, вам придется просматривать учетные записи пользователей с какой-либо проверкой подлинности в реальном мире (т.е. отправлять коды подтверждения по почте на зарегистрированный адрес пользователя).
И последнее, ноне в последнюю очередь.Независимо от смягчения вашего механизма предотвращения мошенничества вы должны регулярно проводить аудит ваших данных, чтобы обнаружить неожиданные сценарии мошенничества на ранних этапах.