Amazon Web Services EC2インスタンスが自己終了する方法はありますか? Amazonには、インスタンスが1時間以上実行された後、インスタンス自体を終了できるもの(「ハラキリ」)がありますか?実行中のインスタンスのスクリプトを変更してそれ自体を実行することもできますが、失敗する可能性があり、イメージを編集したくないので、Amazonにインスタンスを強制終了させてください。
インスタンスを自動的に終了させるには、次の両方の手順を実行します。
--instance-initiated-shutdown-behavior terminate
または同等のものでインスタンスを開始します。shutdown -h now
をルートとして実行します。 Ubuntuでは、次を使用して55分でこれを実現できます。
echo "Sudo halt" | at now + 55 minutes
この同じ「1時間で終了」という目標を達成するために、他のオプションに関する記事をしばらく書きました。
Amazon EC2上の一時インスタンスの自動終了
http://alestic.com/2010/09/ec2-instance-termination
この記事は元々instance-initiated-shutdown-behavior
が利用可能になる前に書かれたものですが、コメントには更新やその他の逸品があります。
あなたはこれを行うことができます
ec2-terminate-instances $(curl -s http://169.254.169.254/latest/meta-data/instance-id)
Ec2は現在のインスタンスIDを取得し、終了します。
うまくいけば、これは動作します
instanceId=$(curl http://169.254.169.254/latest/meta-data/instance-id/)
region=$(curl http://169.254.169.254/latest/dynamic/instance-identity/document | grep region | awk '{print $3}' | sed 's/"//g'|sed 's/,//g')
/usr/bin/aws ec2 terminate-instances --instance-ids $instanceId --region $region
これがあなたを助けることを願っています!!!
ここに私のスクリプトはSelf-Terminating
$ EC2_INSTANCE_ID="`wget -q -O - http://instance-data/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
$ echo "ec2-terminate-instances $EC2_INSTANCE_ID" | at now + 55 min || die 'cannot obtain instance-id'
Self-StoppingonSelf-として割り当てる場合終了、一度だけ実行できます。
EC2 ConsoleでInstance Settingsに移動し、シャットダウン動作から停止。
Configure/ etc/cloud/cloud.cfg、あなたはを使用してブートスクリプトを実行する方法を参照することができますcloud-init。
Eric Hammond からの回答に従い、コマンドをファイルに入れて、 scripts-per-boot パス:
$ echo '#!/bin/sh' > per-boot.sh
$ echo 'echo "halt" | at now + 55 min' >> per-boot.sh
$ echo 'echo per-boot: `date` >> /tmp/per-boot.txt' >> per-boot.sh
$ chmod +x per-boot.sh
$ Sudo chown -R root per-boot.sh
$ Sudo mv -viu per-boot.sh /var/lib/cloud/scripts/per-boot
インスタンスを再起動 し、スクリプトが実行されているかどうかを確認します。
$ cat /tmp/per-boot.txt
per-boot: Mon Jul 4 15:35:42 UTC 2016
その場合、インスタンスを停止するのを忘れた場合に備えて、55分間またはスクリプトで設定した時間にインスタンスが実行されると、インスタンス自体が停止として終了することを保証します。
Broadcast message from root@ip-10-0-0-32
(unknown) at 16:30 ...
The system is going down for halt NOW!
PS:誰もがSelf-Stoppingを使用したいため、すべてのEC2タイプが再起動時に自己回復するとは限らないことに注意してください。 EC2-VPC/EBS とOn/Off Schedule。