Как работает несколько экземпляров EC2 (масштабирование) на одном EBS для хранения данных? - PullRequest
9 голосов
/ 27 января 2011

Итак, в простой ситуации, если есть только один экземпляр, я могу сохранить данные в томе EBS, смонтированном на этом экземпляре. например / Мнт / дб

Однако, как это работает, если я масштабирую и использую несколько экземпляров (статическое или динамическое масштабирование)?

Поскольку один EBS может подключаться только к одному экземпляру, если у меня есть несколько экземпляров, означает ли это, что мне нужно подключать том EBS для каждого экземпляра? В этом случае данные на томе EBS каждого экземпляра будут разными.

Очевидно, что я хочу, чтобы все экземпляры обращались (R & W) к одному тому (как хранилище данных). и данные в объеме будут постоянно расти и нет простоев.

Какое решение? Есть ли способ, которым я не монтирую устройство (EBS), а просто вызываю его для доступа к данным?

Вот что я могу придумать: 1) если каждый экземпляр имеет свой собственный том EBS, то каждый интервал времени (например, 1 час) все экземпляры будут размонтировать и отсоединить том EBS и присоединить новый. Затем есть один мощный экземпляр, который монтирует все только что отсоединенные тома EBS и объединяет все данные. 2) или аналогично 1) вместо отсоединения и присоединения я просто делаю снимок на всех томах для всех экземпляров. Затем мощный экземпляр агрегирует данные из снимка. И сохраните результат в другой EBS или S3.

Эти два подхода, похоже, работают ... но требуют много работы. Есть ли более разумный способ решения этой проблемы? спасибо.

  • кстати, из-за проблем с производительностью я не могу заставить экземпляр записывать данные в S3. :)

О, как насчет этого? 3) Во-первых, все экземпляры имеют свои собственные EBS и записывают данные в EBS. и затем каждый час данные будут отправляться на S3. Затем другой экземпляр объединит их.

Ответы [ 2 ]

1 голос
/ 27 января 2011

как насчет того, чтобы получить экземпляр NFS ang, который можно подключить к другим экземплярам?

0 голосов
/ 01 мая 2012

Похоже, вам нужно создать снимок EBS вашего самого современного экземпляра EC2. Это создаст поддерживаемый EBS AMI. Затем вам нужно будет прекратить все ваши экземпляры EC2, которые не обновлены, и запустить новый стек экземпляров из вашего вновь созданного AMI. Если бы у вас был запущен балансировщик нагрузки, вам бы пришлось также присоединить эти новые экземпляры к вашему балансировщику нагрузки. Это кажется немного скучным, но все это можно сделать программно. По крайней мере, так я думаю, масштабирование в облаке с помощью Amazon работает и распространяется на распространение изменений в нескольких экземплярах. Кто-то еще с большим опытом подтверждает это. Я планирую проверить это позже.

...