Посмотрите, сколько экземпляров 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>