2009-03-12 7 views

답변

2

내가 아는 한 ec2-terminate-instances 명령에는 '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 라이브러리를 사용

은 내가 사용하고 파이썬 스크립트입니다. 이것은 특정 작업 (간단한 셸 스크립트로 충분할 수 있음)에 필요하지는 않지만 많은 경우에 편리 할 수 ​​있습니다.

마지막으로 Firefox 용 Elasticfox 확장 기능에 대해 알고 계십니까? 이것은 EC2에 접근하는 가장 쉬운 방법입니다.

+0

() – rcell

5

AWS ConsoleElasticfox 매우 쉽게 만들 수 있습니다.

명령 줄 솔루션은 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 CLI :

당신이 connection.terminate_instances을 사용할 수 있습니다 지금 생각
aws ec2 terminate-instances 
     --instance-ids 
     $(
      aws ec2 describe-instances 
      | grep InstanceId 
      | awk {'print $2'} 
      | sed 's/[",]//g' 
     ) 
관련 문제