Общие данные для экземпляров Amazon EC2 - PullRequest
0 голосов
/ 09 сентября 2011

Чтобы справиться с большим трафиком, я планирую масштабировать, запустить свое веб-приложение (на основе WordPress) на некоторых экземплярах EC2 (я очень новичок в AWS). Экземпляры должны работать с одними и теми же данными (изображения, видео ...).

Я думаю об использовании S3 в качестве хранилища для этих общих данных.

Мои вопросы:

  • Если я использую S3, нужно ли мне писать дополнительные коды для приложения, чтобы загружать и получать данные в / из S3? Или есть волшебный способ монтировать экземпляры EC2 в S3, и после этого экземпляры EC2 могут обращаться к S3 как к локальному хранилищу?

  • Я слышал, что S3 немного медленный, так как к нему обращаются через веб-сервисы (если пользователи загружают файлы, и для загрузки файлов на S3 требуется время). Так есть ли лучший способ хранения общих данных?

Я прочитал несколько документов о возможности масштабирования Amazon EC2. Но никто из них не упоминает о том, как обращаться с общими данными. Любая помощь высоко ценится. Спасибо.

Ответы [ 3 ]

0 голосов
/ 14 августа 2013

Вы можете смонтировать ведро S3 на все ваши экземпляры EC2. Это двухстороннее монтирование, поэтому все ваши файлы будут синхронизированы. Вы можете использовать s3f3 для монтажа.

Я использовал это руководство и довольно быстро настроил мое: Установите S3 на EC2

Если вас беспокоит скорость, вы можете использовать Amazon ElastiCache или даже использовать EBS в качестве накопителя для кэша.

0 голосов
/ 01 февраля 2014

Для начала вам не хватает некоторых деталей об архитектуре вашего приложения, но есть некоторые возможности.

Во-первых, если ваш проект среднего размера, вы можете использовать GlusterFS на основных узлах.в качестве серверов и клиентов одновременно (используя собственный протокол или протокол NFS), RDS * Multi-AZ * Экземпляр MySQL для базы данных.CloudFront как CDN с CDN linker или плагинами W3TC.Кроме того, поместите ELB впереди.В этом конкретном случае я бы рекомендовал по крайней мере пару c3.large экземпляров.

Во-вторых, когда ваш проект будет расти - вы должны создать экземпляр AMI и создать группу автоматического масштабирования, которая быпросто подключитесь к своему основному хранилищу и вычислите экземпляры.(Также рассмотрите возможность поднятия вычислительной нагрузки из этих довольно небольших экземпляров).

Что необходимо учесть дополнительно:

  • Отличная статья WordPress о кластерах WordPress для http://harish11g.blogspot.ru/2012/01/scaling-wordpress-aws-amazon-ec2-high.html
  • Альтернативой GlusterFS может быть Ceph File System
  • Вы также можете (или, возможно, должны) использовать SSD-кэш (например, flashcache ) для этого тома GlusterFS.
0 голосов
/ 09 сентября 2011

Нет встроенного средства для «монтирования» корзины S3 в качестве хранилища к экземпляру EC2, хотя есть несколько сторонних приложений, которые предлагают механизмы, позволяющие сделать хранилище S3 доступным в качестве виртуального диска или хранилища. Большинство из них предлагают предварительно установленный объем бесплатного хранилища, а затем многоуровневый механизм зарядки для больших объемов - Google для «интерфейса хранилища S3» и посмотрите.

Независимо от того, пишете ли вы код для использования S3 через API или используете интерфейсный уровень, между приложением и хранилищем всегда будет некоторая задержка. Это физический факт, и вы ничего не можете сделать, чтобы устранить задержку, потому что репозиторий S3 не является локальным для кластера EC2 - поэтому вы никогда не достигнете «локальных» скоростей доступа к хранилищу.

Альтернативой может быть использование EBS, который является локальным для вашего экземпляра EC2 - он имеет свойства, отличные от S3 (например, он не предлагает крайние местоположения для регионально-локализованного доступа), но намного быстрее для использования в приложении, поскольку оно находится внутри кластера EC2 и смонтировано как локальное хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...