Посмотрите, сколько экземпляров AWS в каждой зоне доступности

Есть ли способ узнать, сколько экземпляров находится в зоне доступности для AWS? Я хочу использовать API runInstances для вызова экземпляров, но вызвать его в наименее загруженной зоне, для которой я не вижу очевидного решения. Благодарю.

3 ответа

Насколько я знаю, нет способа проверить количество экземпляров в AZ. Что вы можете сделать, это использовать группу Autoscaling и указать AZ, которые вы хотите при создании. Автоматическое масштабирование будет равномерно распределять загрузку экземпляров среди перечисленных AZ.

AZ = зона доступности

У меня такая же проблема. Я решил это с помощью aws cli:

aws cloudformation describe-stack-resources --stack-name STACKNAME\ 
--output text | grep 'AWS::AutoScaling::AutoScalingGroup' | cut -f3 > /tmp/tmpfile

ASGNAME="`cat /tmp/tmpfile`"

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names $ASGNAME \
--output text | egrep -e 'INSTANCES.*InService'

Очевидное решение кажется, что было бы вызвать DescribeInstances и использовать availability-zone фильтр для запроса сведений об экземплярах в каждой зоне, которые вы хотите проверить, и подсчет экземпляров, возвращенных в ответе.

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

   <instancesSet>
      <item>
        <instanceId>i-1a2b3c4d</instanceId>
        ...
        <placement>
          <availabilityZone>us-west-2a</availabilityZone>
          <groupName/>
          <tenancy>default</tenancy>
        </placement>
Другие вопросы по тегам