2009-03-12 5 views

ответ

2

Насколько я знаю, для команды ec2-terminate-examples не существует переключателя 'all'. Так что вам, вероятно, нужно будет его скриптировать. Это будет не так сложно. Вам нужно только создать список экземпляров, разделенных запятыми.

Это питон скрипт я использую:

import sys 
import time 
from boto.ec2.connection import EC2Connection 

def main(): 
    conn = EC2Connection('', '') 
    instances = conn.get_all_instances() 
    print instances 
    for reserv in instances: 
     for inst in reserv.instances: 
      if inst.state == u'running': 
       print "Terminating instance %s" % inst 
       inst.stop() 

if __name__ == "__main__": 
    main() 

Он использует boto библиотеку. Это не обязательно для конкретной задачи (достаточно простого сценария оболочки), но это может быть полезно во многих случаях.

Вы знаете о расширении Elasticfox для Firefox? Это самый простой способ доступа к EC2.

+0

Я считаю, что теперь вы можете использовать connection.terminate_instances() – rcell

5

AWS Console и Elasticfox сделать это довольно легко.

командной строки, решение может быть достигнуто в одной строке с помощью EC2 API инструменты:

for i in `ec2din | grep running | cut -f2`; do ec2kill $i; done 
4

Это старый вопрос, но думал, что я разделю решение для AWS CLI:

$ aws ec2 terminate-instances --instance-ids $(aws ec2 describe-instances --filters "Name=instance-state-name,Values=pending,running,stopped,stopping" --query "Reservations[].Instances[].[InstanceId]" --output text | tr '\n' ' ') 
0

Для полноты картины. Вот еще один способ, будучи более в соответствии с репертуаром программиста, с помощью регулярных выражений и АМС кли:

aws ec2 terminate-instances 
     --instance-ids 
     $(
      aws ec2 describe-instances 
      | grep InstanceId 
      | awk {'print $2'} 
      | sed 's/[",]//g' 
     ) 
Смежные вопросы