У меня есть веб-приложение, работающее в учетной записи Media Temple VPS, и в настоящее время я оцениваю преимущества перехода на Amazon EC2. Он работает под веб-сервером Apache 2.
Это веб-приложение на данный момент почти не имеет обычного доступа, с некоторыми большими пиками использования, о которых известно за несколько дней до уведомления.
Прямо сейчас в Media Temple у нас есть сервер с 2 ГБ памяти, чего достаточно для больших пиков использования. По мере того, как мы переходим на Amazon, я думаю о двух экземплярах - микро для нормального использования и малый или даже средний для пиков.
Я пытаюсь найти лучший способ сделать это, чтобы это могло сработать. Сначала я мог бы изменить DNS, перенаправив клиентов на более крупный сервер, когда наступят эти пики. Но на мой взгляд это было бы довольно опасно, поэтому я хотел бы знать, как это можно сделать правильно.
Спасибо!
Канонический способ сделать это - иметь несколько серверов приложений за балансировщиком нагрузки (который, если вы используете AWS, может быть их продуктом балансировки нагрузки, ELB). Таким образом, вы можете увеличивать и уменьшать количество серверов приложений по запросу. Обычно это называется горизонтальным масштабированием.
Вам необходимо выяснить, будет ли это работать с вашим приложением. Внедрение нескольких серверов приложений может потребовать от вас некоторой реинжиниринга.
Если это не сработает, то вы обычно застреваете в вертикальном масштабировании (увеличении и уменьшении ресурсов на одной машине), которое не так просто масштабировать вверх и вниз.
Amazon предоставляет несколько услуг, которые помогут вам в этом:
Вам не придется менять DNS, вы можете просто добавить серверы в пул, когда они вам понадобятся, и удалить их, когда закончите.
РЕДАКТИРОВАТЬ: только что видел вопрос в комментарии выше: тестирование в AWS легко, вы можете развернуть пару серверов и балансировщик нагрузки в течение 10 минут или около того и попробовать.