Есть ли максимальное отключение инстансов в Amazon EC2? И этот максимум настраивается через EC2-API?
Мы передаем данные во время выключения из инстанса в S3. Это отлично подходит для небольших файлов. Но если они станут больше (несколько ГБ), мы увидим, что не все данные передаются.
ОС: Ubuntu 11.04 (AMI с поддержкой EBS)
Когда вы останавливаете или завершаете работу инстанса EC2, Amazon отправляет запрос на мягкое завершение работы в операционную систему, чтобы она завершилась чистым и безопасным образом. Если система не сообщает о том, что она отключается в течение короткого времени (минут), Amazon фактически отключает шнур питания, вызывая принудительное отключение.
Мне неизвестно о каких-либо обязательствах Amazon относительно продолжительности льготного периода плавного отключения, поэтому я бы рекомендовал вам не предполагать и не полагаться на конкретный минимум. Даже если Amazon даст вам сегодня 10 минут для одного инстанса, они могут легко сократить это время до 3 минут завтра, когда, скажем, у них будет большой спрос на новые инстансы.
Если вам нужно выполнить важное завершение работы перед выключением экземпляра, отправьте ему сигнал (веб-запрос или команду ssh), дождитесь, пока он завершит свою задачу, а затем инициируйте завершение работы EC2.
Если вы используете, скажем, спотовые инстансы, где инстанс может быть отключен Amazon в любой момент, то часто сохраняйте свою работу, чтобы не большая ее часть была потеряна, если инстанс внезапно завершит работу.
https://docs.aws.amazon.com/cli/latest/reference/ec2/reboot-instances.html
Если инстанс не завершил работу в течение четырех минут, Amazon EC2 выполнит полную перезагрузку.
Максимальное время отключения, которое мы наблюдали, составляет около 10 минут. По истечении этого времени Amazon убьет машину.
Все остальное было бы удивительно, поскольку Amazon выставляет счет только за время работы инстанса, а не за время его завершения; поэтому они потеряют деньги, если отключение будет длиться все дольше и дольше.
У меня был экземпляр в выключенном состоянии более 30 минут, поскольку я ожидал, что он отключится по таймауту и в какой-то момент будет полностью отключен. Я щелкнул раскрывающееся меню «Действия с экземпляром» и снова выбрал «Остановить», а вместо этого получил возможность принудительно остановить экземпляр. После нажатия кнопки «Да» для принудительной остановки моему экземпляру потребовалось около 5 минут, чтобы войти в состояние остановки. Казалось бы, это больше не происходит автоматически.
Недавно я столкнулся с подобным запросом.
По правде говоря, в AWS CLI не указано время ожидания. ec2 stop-instances
док.
Когда вы останавливаете экземпляр, мы пытаемся его закрыть насильственно через короткое время.
https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html
Вы должны выключить свой экземпляр на низком уровне. Например. через sshing к экземпляру и вызов shutdown
, poweroff
и т. д. напрямую.