ec2-scheduleではインスタンスタイプの変更も可能です。
今回はインスタンスタイプを自動で変更する方法を紹介したいと思います。

設定方法

DynamoDBのConfigTableに以下を設定

テーブル名はスタック名+ConfigTableになっています。
ex)
月曜から金曜までの9:00 – 20:00(日本時間)t2.micro
月曜から金曜までの20:00 – 9:00(日本時間)t2.nano

scheduleレコード

type name description periods timezone
schedule ec2_type_change ec2 type change { “down-period@t2.nano”, “up-period@t2.micro” } Asia/Tokyo

periodレコード

type name description timezone weekdays begintime endtime
period up-period Office hours Asia/Tokyo {“mon-fri”} 9:00 19:59
period down-period Office hours Asia/Tokyo {“mon-fri”} 20:00 08:59

EC2の設定

以下のとおりタグを付与します

動作確認

インスタンスタイプがt2.nanoの状態です。

設定時間がすぎるとt2.microに変更されて起動されました。

変更の動きとしては、9:00に動くLambdaで一旦EC2が停止されます。
その後、9:05のLambdaでインスタンスタイプが変更されて起動されます。
停止に時間がかかる場合は、変更されるタイミングももう少し遅くなるかと思います。

インスタンスタイプを自動で変更してくれるのはすごく便利な機能ですね。
平日は大きめのインスタンスタイプとし、週末はタイプを落とすなどしたいユースケースなどで使えそうです。
ただし、稀に変更するインスタンスタイプが枯渇しているため起動できないなどのケースも想定されるので、本番での利用についてはそのあたりの考慮が必要になりますがぜひ利用を検討してみてください

元記事はこちら

ec2-scheduleでEC2のインスタンスタイプの自動変更