DNS является очень простым протоколом, который включает TTL (Время жизни) в, он - данные ответа. Однако отдельный пользователь, просматривающий www.mysite.com, только попросит DNS один раз в X минут (Значение по умолчанию обычно является 1 часом, или таким образом). Я только указываю на это так, чтобы было ясно, что количество хитов в секунду не так важно как количество уникальных хитов в секунду.
Кроме того, полагая, что ISPs предлагают серверы DNS своим клиентам, количество запросов, которые на самом деле возвращаются к SOA, намного ниже, чем число людей, которые посещают Ваш сайт. Скажите, например, 50 000 человек в Восточном MA на Verizon, DSL посещают Ваш сайт в течение 1 часа, это, только, вероятно, генерирует горстку запросов DNS, на которые необходимо ответить. Verizon сделала бы свой собственный уровень кэширования.
Единственный запрос не является абсолютно никакой работой (относительно) для текущих аппаратных средств. 5 000 ценности доменов zonefiles соответствовала бы на Вашей средней карте флэш-памяти.
Я рекомендовал бы, чтобы Вы вовлекли себя 4 средних сервера с избыточными дисками и настроили инфраструктуру DNS в двух местах. Таким образом, у Вас есть дублирование на каждом сайте, и географически также. Рассмотрите это: Если бы Ваше местоположение было движением к темноте, как Вы служили бы DNS для этих 5 000 доменов?
Я кое-что понял. Для тех из вас, кому интересно:
Я могу получить информацию об экземпляре EC через http://169.254.169.254/latest/meta-data/
. В частности, мне нужен идентификатор моего экземпляра EC2
. Я могу определить список всех моих сред beanstalk через describe-environment
Для каждой среды я могу запустить describe-environment-resources
. Этот вызов возвращает список экземпляров, с которыми я могу сопоставить идентификатор экземпляра текущего экземпляра. Таким образом, я могу определить название своей среды.
Наконец, я могу обратиться к результату описать-среды
, чтобы также определить метку версии для текущего развернутого кода.
Прежде чем я смогу сделать что-либо из этого, мне нужно настроить мои экземпляры ec2, чтобы они имели доступ к информации эластичного beanstalk. Я могу сделать это, назначив правильную политику доступа роли, связанной с моими экземплярами ec2, и получая аутентификационную информацию, снова через метаданные экземпляра на http://169.254.169.254/latest/meta-data/
Так как я использую библиотеку python boto
, все операции, которые я описал выше, уже имеют предварительно запеченные библиотечные функции для их выполнения.
guh
У меня нет код еще не написан, но если я смогу заставить его работать, я опубликую здесь
Edit рабочий код
Это не документируется, таким образом, это могло бы повредиться без предупреждения, но EB /opt/elasticbeanstalk/bin/get-config
чтения команды из файла, расположенного в /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
, который включает больше данных, чем выставляется get-config
.
, Так как это отформатировано, поскольку JSON и изображения EB включают jq
из поля, эта команда извлечет имя среды (может быть ограничен доступом, таким образом sudo
или другие механизмы управления доступом может быть необходим):
$ jq .system.environment_name /opt/elasticbeanstalk/deploy/configuration/containerconfiguration
Одна причина предпочесть офлайновый подход по использованию describe-environments
или describe-tags
(EB определяет тег, который включает имя среды) состоит в том, что в масштабе Ваше развертывание может перестать работать из-за ограничения уровня API AWS, которое не является интересным способом проснуться в 3:00.
Немного покопавшись в Интернете, я нашел.Я знаю, что это старый вопрос, но я подумал, что дам этот ответ.
$ /opt/elasticbeanstalk/bin/get-config container -k environment_name