0
0

Amazon EC2 で高価なインスタンスが自動終了するようにする

Posted at

モチベーション

  • Amazon EC2 (AWS) で高価なインスタンスを実験などのために一時的に使いたい場合がある
  • 終了 (termination,インスタンスを破棄すること) し忘れると高額な利用料金が発生してしまう

解決法

  • あらかじめ,利用したいインスタンスタイプなどを指定したテンプレートを作成する
  • テンプレートで,cloud-init の設定を利用して一定時間でシステム終了するように設定しておく
  • テンプレートの shutdown behavior を Terminate にしておくとシステム終了すると自動で Terminate される

手順

Screenshot 2024-08-18 at 4.02.04.png

  1. EC2 Launch Template を作成する画面を開く
  2. インスタンスタイプやネットワークなど必要な設定をする
  3. "Advanced details" 以下で次の設定をする
    • "Shutdown behavior" → "Terminate"
    • "Termination protection" → "Disable"
    • "Stop protection" → "Disable"
  4. 以下の内容を User data に指定する (24時間で終了する場合):
#cloud-config
repo_update: true
repo_upgrade: all

runcmd:
  - [sh, -c, "( sleep 86400 ; systemctl poweroff ; ) </dev/null >/dev/null 2>&1 & disown -a ; exit 0"]

これでこのテンプレートを利用して作成されたインスタンスは 24 時間で自動終了します。

異なる時間を指定するには, sleep 86400 部分を対応する秒数に直します。

  • 1時間: sleep 3600
  • 15分: sleep 900
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0