Веб-Сервисы Amazon – Как Обеспечить Загрузку Ос/Приложения Ec2?

  • Автор темы ///_vadim_///
  • Обновлено
  • 21, Oct 2024
  • #1

Недавно я немного поигрался с AWS в рамках курса, который сейчас прохожу. Я столкнулся с ситуацией, которая, честно говоря, остается в силе.

Я создал веб-приложение, которое подключается к серверной части, которая по сути запускает экземпляр EC2 t2.micro на AWS. Время от времени проверяю статус машины, чтобы проверить включена ли она running state or note. The AMI I am using it is a configured wordpress from the marketplace.

Как только экземпляр попадает в running state, I show a message indicating the server is up and running and provide the user with the instance's public ip address, the problem is that, it is not after a few minutes later when indeed the IP is resolved/accessible. The security group attached to the instance has the inbound and outbound traffic configured to allow TCP traffic on port 80, 22 and 443.

Мой вопрос в том, running state simply means the instance is ready to work but, as far as I know, it does not mean OS has booted nor the X application (in this case wordpress and its configured server) are ready to or finished the bootstrapping. How can I check that indeed the application/OS has booted is I can ensure that when the user is trying to access the IP it will not timeout.

Моя первая попытка состояла в том, чтобы пропинговать экземпляр, но, честно говоря, я не думаю, что это надежный запрос, поскольку мне также нужно включить протокол ICMP, но в конце концов он работает на другом уровне Интернета.

#amazon-web-services #amazon-ec2

///_vadim_///


Рег
18 Nov, 2006

Тем
77

Постов
205

Баллов
630
  • 25, Oct 2024
  • #2

То, о чем вы говорите, известно как проверка здоровья. Обычно они обрабатываются балансировщиками нагрузки, чтобы решить, являются ли экземпляры «работоспособными» и, следовательно, могут ли они обслуживать (обычно HTTP) трафик. Балансировщики нагрузки будут опрашивать и определенную вами конечную точку, чтобы решить, работоспособны ли экземпляры, обычно проверяя, является ли код ответа HTTP каким-либо заведомо исправным, например 200.

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

Конечно, вы можете имитировать эту функцию без балансировщика нагрузки AWS, заставив ваше приложение опрашивать URL-адрес, на который приложение должно отвечать, используя DNS-имя или IP-имя, возвращаемое AWS после того, как экземпляр станет «запущенным».

Другой вариант — настроить настоящую систему мониторинга, чтобы проверять, обслуживает ли приложение контент. Очень простой и бесплатный инструмент, который выполнит эту работу: например Свежий.

Вы также можете написать Профиль соответствия Inspec для описания заведомо исправного состояния машины. Inspec может подключиться к машине через SSH, который вы указываете как открытый. Это может показаться излишним и очень похоже на тест ICMP, который вы рассматривали ранее, но, тем не менее, это вариант :)

 

Ленусик


Рег
23 May, 2008

Тем
74

Постов
183

Баллов
573
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно