2009-03-12 23 views

答えて

2

私が知る限り、ec2-terminate-instancesコマンドには 'all'スイッチはありません。だから、おそらくそれをスクリプト化する必要があります。それはそれほど難しくありません。カンマで区切られたインスタンスのリストを生成するだけです。

これは、私が使用していますPythonスクリプトです:

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

私は今あなたがconnection.terminate_instancesを(使うことができると信じて:ここで は、正規表現とAWS CLIを使用することにより、より多くのプログラマのレパートリーに沿ったものであること、もう一つの方法です – rcell

5

AWS ConsoleおよびElasticfoxかなり簡単です。

コマンドラインソリューションは、EC2 APIツールを使用して1行で達成することができます。

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' 
     )