コマンドラインからすべてのインスタンスを削除するにはどうすればよいですか?このコマンドがありますか、それともスクリプトを作成する必要がありますか?コマンドラインからすべてのEC2インスタンスを削除するにはどうすればよいですか?
4
A
答えて
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にアクセスする最も簡単な方法です。
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'
)
私は今あなたがconnection.terminate_instancesを(使うことができると信じて:ここで は、正規表現とAWS CLIを使用することにより、より多くのプログラマのレパートリーに沿ったものであること、もう一つの方法です – rcell