Эластичное выравнивание нагрузки в [закрытом] EC2

Хотя технически это не дает прямого ответа на поставленный вопрос, оно отвечает на вопрос о том, как сделать то, что хотел сделать оригинальный плакат: объединить файлы. Во всяком случае, этот пост поможет новичкам понять, о чем говорят Инстанс Хантер и Константин.

Это метод, который я использую для объединения файлов (в данном случае это jpg и zip). Обратите внимание, что я создаю буфер, который заполняется содержимым zip-файла (небольшими порциями, а не одной большой операцией чтения), и затем буфер записывается в конец jpg-файла до тех пор, пока конец zip-файла не станет достиг:

private void CombineFiles(string jpgFileName, string zipFileName)
{
    using (Stream original = new FileStream(jpgFileName, FileMode.Append))
    {
        using (Stream extra = new FileStream(zipFileName, FileMode.Open, FileAccess.Read))
        {
            var buffer = new byte[32 * 1024];

            int blockSize;
            while ((blockSize = extra.Read(buffer, 0, buffer.Length)) > 0)
            {
                original.Write(buffer, 0, blockSize);
            }
        }
    }
}
23
задан Peter Mortensen 13 April 2013 в 08:40
поделиться

5 ответов

Я уже около месяца использую ELB вместо HAProxy на сайте, который посещают около 100 000 человек в день, и я очень доволен результатами.

Однако есть проблема (ОБНОВЛЕНИЕ, эта проблема была исправлена ​​с помощью Amazon AWS , см. Комментарии ниже):

  1. Вы не можете балансировать нагрузку на корень домена, так как вам нужно создать CNAME псевдоним балансировщика нагрузки. Единственное решение - перенаправить весь трафик с http://mysite.com на http://www.mysite.com .

Кроме того, я действительно не могу говорить достаточно высоко о предложениях AWS ELB. Я также использую мониторинг и автомасштабирование Cloudwatch. Да и не забывайте, что это дешевле, чем запуск небольшого экземпляра EC2 (0,025 доллара в час вместо 0,10 доллара).

28
ответ дан 29 November 2019 в 01:07
поделиться

На форуме Amazon есть жалобы на надежность ELB. Я предлагаю вам отправиться туда и поискать в ELB, чтобы составить собственное мнение по этому поводу.

Мы хотели использовать ELB для балансировки нагрузки запросов веб-служб, но у нас есть много внешних вызывающих абонентов, некоторые из которых отправляют 100-Continue HTTP сообщение. К сожалению, ELB не понимает эту часть протокола HTTP, поэтому мы не можем выйти за рамки проверки концепции, пока она не будет решена.

Обновление 2013 г.

Согласно сообщению на форуме AWS, HTTP 100-Continue теперь доступен поддерживается.

https://forums.aws.amazon.com/message.jspa?messageID=144022

6
ответ дан 29 November 2019 в 01:07
поделиться

Зависимость ELB от косвенного обращения к записи CNAME DNS является очень серьезной проблемой для веб-служб, которые должны быть очень быстрыми. В нашем случае нам нужно очень хорошее время отклика. В быстром тесте производительности использование ELB увеличило среднюю задержку для HTTP-запросов почти в 2 раза. Это в основном связано с тем, что TTL при поиске CNAME равен нулю. Таким образом, все поиски связаны с обращением к серверам имен для двух разных доменов, поэтому разрешение имени происходит намного медленнее. (Я беспокоюсь, что отказ от кеширования в DNS - это просто злоупотребление системой.) Единственная надежда для ELB в нашем случае - уйти от записей CNAME, если Amazon будет поддерживать эластичный IP-адрес в качестве адреса экземпляра балансировщика нагрузки.

19
ответ дан 29 November 2019 в 01:07
поделиться

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

Согласно Amazon AWS разработчиков, это однако должен появиться в следующем выпуске.

0
ответ дан 29 November 2019 в 01:07
поделиться

Другая проблема - получение IP-адреса клиента. Для обычного HTTP это нормально работает, поскольку ELB устанавливает заголовок X-FORWARDED-FOR. Но для HTTPS это невозможно, потому что он пересылается на уровне TCP. Надеюсь, когда-нибудь ELB будет иметь завершение SSL.

10
ответ дан 29 November 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: