SORACOM Button でバスターコールを発令してみた
どうも若松です。
SORACOM LTE-M Button で何作ろうかと悩むのは楽しいですね。
せっかくなので押しがいがあるのを作りたいといろいろ考えていたときに、あるマンガの場面を思い出しました。
バスターコール
ワンピースに出てくる、全てを破壊する命令ですね。
このバスターコールを発令するきっかけがボタンなのです。
AWS式バスターコール
(プロレス技みたいですね)
せっかくLambdaをキックできるので、AWSリソースを破壊してみようと思います。
流石にAWSサービスは多すぎるので、EC2インスタンスの範囲に限定することにしました。
SORACOM Button → AWS IoT → Lambda → EC2Terminate
という構成です。
Lambda
コードは以下となります。
言語はPython3.6です。
import boto3
import jmespath
def lambda_handler(event, context):
ec2 = boto3.client('ec2')
instanceids = jmespath.search(
'Reservations[].Instances[?State.Name!=`terminated`][].InstanceId',
ec2.describe_instances()
)
for instanceid in instanceids:
ec2.modify_instance_attribute(
InstanceId=instanceid,
DisableApiTermination={
'Value': False
}
)
ec2.terminate_instances(
InstanceIds=instanceids
)
print(instanceids)
return
AWS IoT
EC2
流石に東京リージョンは怖いので、オレゴンで行います。
インスタンスは何でもいいのでt2.nanoで2台起動しました。
ENIES LOBBY
には世界政府の旗代わりにTerminateProtectionを設定しておきます。
バスターコール発令
全てを焼き尽くします。
TerminateProtectionとて効きません。
無慈悲です。
まとめ
ボタンひとつでインスタンスが消し飛んでいくのは意外と爽快です。
本当はAMIやEIPとかも削除するようにしようかと思ってましたが、キリが無くなりそうなのでやめました。
検証環境とかで全てのインスタンスを燃やし尽くしたいときとか便利ですね(私は怖いので使いません。
Author And Source
この問題について(SORACOM Button でバスターコールを発令してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/t_wkm2/items/eb666ba7375dd375cac9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .