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でインスタンスタイプが変更されて起動されます。
停止に時間がかかる場合は、変更されるタイミングももう少し遅くなるかと思います。
インスタンスタイプを自動で変更してくれるのはすごく便利な機能ですね。
平日は大きめのインスタンスタイプとし、週末はタイプを落とすなどしたいユースケースなどで使えそうです。
ただし、稀に変更するインスタンスタイプが枯渇しているため起動できないなどのケースも想定されるので、本番での利用についてはそのあたりの考慮が必要になりますがぜひ利用を検討してみてください