Поэтому я пытаюсь узнать больше об AWS EC2 Auto Scaling и выяснить, как именно хранилище работает между экземплярами. При создании новых экземпляров он выглядит как новый том EBS для каждого экземпляра.
Если я использую веб-сервер с автоматическим масштабированием EC2, как я могу передать свой контент в каждый новый созданный экземпляр EC2. Есть ли способ использовать один том EBS во всех инстансах EC2 Auto Scaling? Я читал об эластичной файловой системе, но не уверен, как вы будете прикреплять том к новым экземплярам по мере их создания.
Заранее спасибо за вашу помощь.
Нет, EBS можно подключить только к одному экземпляру EC2. Вы можете представить его как обычный жесткий диск - его тоже можно подключить только к одной машине. Вы можете переключать EBS между своими экземплярами, но не можете прикрепить его более чем к одному.
EFS - это просто сетевая файловая система, такая как nfs или samba, вы можете смонтировать ее с помощью fstab. Но вы должны проверить, доступна ли EFS в вашем регионе!
Насколько я понимаю, вы пытаетесь сделать файловое хранилище общим для всех ваших машин. В этом случае у вас есть несколько способов добиться этого:
если вам не нужна обычная файловая система, вы можете использовать S3. Рекомендуемый способ в AWS. Но S3 - это не файловая система, это объектное хранилище с rest api, поэтому вы не можете использовать обычный метод для доступа к файлам на нем, но вы должны использовать amazon SDK. S3 имеет неограниченный размер и не имеет проблем с множественным доступом. Вы даже можете использовать S3 в качестве серверной части для CloudFront CDN.
Если вам нужна обычная файловая система, у вас есть несколько способов. Вы можете использовать EFS, или вы можете создать несколько виртуальных машин хранения с gluster и подключить их к своему экземпляру. Вам определенно понадобится кастомный AMI с монтированием в fstab, подготовкой HA, резервными копиями и т. Д. Но он работает как обычная FS? он разделяется и мгновенно - файл, созданный на машине A, может быть мгновенно доступен на машине B
Если вам просто нужно развернуть свое приложение на недавно запущенном EC2, вы можете использовать CodeDeploy или OpsWorks, чтобы указать группе автозапуска развернуть ваше приложение на новом EC2. Но он работает только с ограниченным количеством дистрибутивов, я думаю, только с Amazon Linux, RHEL и Ubuntu.
Если вам нужно, чтобы это хранилище синхронизировалось со всем вашим EC2, и вы не хотите настраивать какое-либо хранилище EC2, вы можете просто запустить rsync в кластере. Этот способ немного сложен и может быть проблематичным при большом количестве экземпляров. Вы также не можете добиться мгновенного обмена с помощью rsync.
Рекомендуемые решения зависят от ваших потребностей. Я использую два экземпляра EC2 с большим EBS и реплицированным томом Gluster, установленным на всех моих серверах приложений. Это работает хорошо.