Я ищу хост для веб-приложения, которое должно взаимодействовать с файлами объемом в несколько терабайт. Одно из решений, которое я рассматриваю, - разместить приложение на Amazon EC2 с подключенными к нему несколькими экземплярами EBS. Похоже, это решило бы мою проблему, но поскольку EBS можно подключить только к одному экземпляру EC2, я не уверен, как добавить избыточность приложения в случае сбоя. Мне нужно несколько экземпляров EC2 в нескольких зонах с балансировщиком нагрузки, но это не представляется возможным, поскольку у меня не может быть двух экземпляров EC2 для связи с одним и тем же экземпляром EBS.
Как создать отказоустойчивое приложение при использовании EC2 с EBS?
Есть много способов избавиться от этой кошки, но, пожалуй, самый простой - это иметь основной узел «хранилища» с большой пропускной способностью сети и хранилища ввода-вывода, который затем экспортирует свою файловую систему на узлы вашего приложения через NFS. Тогда все узлы приложений будут иметь одинаковый «вид» хранилища.
Чтобы повысить отказоустойчивость узла хранения, вы можете изучить такие технологии, как drbd (для синхронизации объема хранения с сервером горячего резервирования), или, возможно, даже файловую систему кластера, такую как Ceph или GlusterFS.
Излишне говорить, что, поскольку вы используете NFS, это следует делать только в VPC. Но опять же, все клиенты EC2 в любом случае должны использовать VPC.