Назад | Перейти на главную страницу

Как отразить данные AWS EC2-Instance?

Можем ли мы зеркально отобразить данные одного экземпляра EC2 на другой? Например, рассмотрим следующий сценарий:

У меня ELB соединяется с двумя экземплярами EC2.

в экземпляр A Я создал простой файл PHP с именем test.php. Теперь мне нужно создать такой же файл в экземпляре B? или у меня есть способ заполнить его автоматически? Также не могли бы вы рассказать мне, как этот сценарий реагирует на метод автомасштабирования? потому что в моем тесте, когда я создаю файл в Экземпляр А, это недоступно в Экземпляр B.

Можем ли мы зеркально отобразить данные одного экземпляра EC2 на другой?

Вы можете отразить данные самостоятельно, используя такие программы, как rsync. Вы также можете воспользоваться Amazon S3 или Amazon Elastic File System как центральное место для ваших данных. У вас есть и другие варианты, это всего лишь несколько примеров.

В экземпляре A я создал простой файл PHP с именем test.php.

Это похоже на то, что могло бы жить в репозитории Git.

В этом случае вы можете обновить репозиторий локально (на своем компьютере разработчика), а затем отправить изменения на сервер оркестровки.

Затем эти изменения будут распространены на все ваши серверы приложений (или в качестве грубой / простой альтернативы у вас может быть cron, который выполняет git pull каждые 15 минут на каждом сервере приложений).

Также не могли бы вы рассказать мне, как этот сценарий реагирует на метод автомасштабирования?

Для автомасштабирования необходимо обновить AMI и зарегистрировать обновленный AMI с помощью ELB. Это необходимо делать каждый раз, когда данные о вашем EC2 меняются. По этой причине рекомендуется автоматизировать процесс выпуска.

Amazon EC2 не поддерживает автоматическое зеркалирование томов EBS. Поэтому, когда вы изменяете данные на томе EBS A, вам нужно повторить это на томе EBS B.

Есть несколько способов использовать сетевые диски для обмена данными между экземплярами EC2. В этих случаях у вас есть внешний сервер, на котором размещен сетевой диск, к которому подключается каждый из ваших экземпляров EC2. NFS - один из примеров, Amazon Elastic File System - предстоящая альтернатива.

Я также слышал о некоторых людях, использующих rsync для синхронизации данных.

В сценарии автомасштабирования вы не хотите изменять данные непосредственно в экземплярах EC2. Вместо этого вы хотите использовать инструменты для изменения ваших данных за пределами вашего экземпляра (-ов) EC2 и развертывать новые данные во всех ваших экземплярах EC2. Некоторые методы для этого включают использование CloudFormation / Elastic Beanstalk, Chef (возможно?) Или создание нового образа AMI и повторное создание автоматически масштабируемых экземпляров EC2.

Вы можете создать A / B с пользовательскими данными:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

Либо так, либо создайте новый AMI.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html

Что именно вы ожидаете? Экземпляры EC2 - это отдельные виртуальные машины с собственными файловыми системами.

Для синхронизации данных между несколькими экземплярами EC2 у вас есть те же возможности, что и с любым другим серверным / виртуальным решением: создать пользовательское загрузочное устройство (AMI) с вашим приложением, использовать процесс развертывания, копирующий на все экземпляры, или использовать некоторую общую файловую систему (настройка сервер NFS или используйте Amazon Elastic File System когда это станет доступно).