7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【コスト削減】AWS オートスケーリンググループ内インスタンスの夜間休日停止

Posted at

1. はじめに

  • AWSの各種コスト削減を検討しており、開発環境については、夜間・休日は自動でインスタンスを停止するようにしたい。
  • 単体で稼働しているインスタンスであればEventBridgeなどを用いて指定時刻での停止/開始が可能だが、今回はオートスケーリンググループの設定の中で稼働しているインスタンスに対して、同様のことができるかについて、設定方法を確認する。

2. やったこと

  • オートスケーリンググループ(nginxをインストールしたインスタンスを通常時は2個稼働)を作成する。
  • 作成したオートスケーリンググループをALBのターゲットグループとして設定する。
  • オートスケーリンググループに対し、「予定されたアクション」の機能を用いて、夜間・休日はインスタンスを0個にする設定を行う。(インスタンスの「停止/開始」をするわけではなく、インスタンスの「終了/再作成」を実施する)

3. 構成図

構成図.png

4. 手順

4.1 事前準備

  • オートスケーリンググループの設定によって起動されている2個のインスタンス(nginx)に対し、インターネットからALB経由でアクセスできる検証環境を作成する。
    • 起動テンプレートの作成
      • AMI: nginxをインストールしたAmazon Linux 2023
      • インスタンスタイプ: t2.micro
    • オートスケーリンググループの作成
      • 起動テンプレート: 上記の起動テンプレート
      • キャパシティ: 希望する/最小/最大 全てを「2」に設定
    • ALBの作成
      • ターゲットグループ: 上記のオートスケーリンググループ

4.2 オートスケーリンググループに対する「予定されたアクション」の設定

  • 以下の動作仕様になるように「予定されたアクション」を設定する。

    • 平日(月~金)の8:30AMにインスタンスを2個に、21:00PMにインスタンスを0個の状態にする。
    • 上記の設定により、土日は金曜21:00PMに0個になった後、月曜8:30AMまで0個のままとなる。
    • 祭日や年末年始連休などはさすがに諦める。
  • オートスケーリンググループの、「オートスケーリング」の一番下に、「予定されたアクション」の設定箇所がある。

asg01a.png
asg02a.png

  • 月~金の8:30AMにインスタンスを2個にするアクションを作成する。cron式の「30 8 * * 1-5」は、「月~金の8:30」の意味。

asg03a.png

  • 同様に、月~金の21:00PMにインスタンスを0個にするアクションを作成する。

asg04a.png

  • 結果として2つのアクションが登録される。

asg05a.png

4.3 インスタンス数変化の動作確認

4.3.1 インスタンス終了時(2個⇒0個)

  • インスタンスが2個起動している状態で、検証のためstop(capacity=0)のアクションを15:33PMに設定する。指定の時刻にアクションが実行されるが、今回オートスケーリンググループがALBと紐づいているため、まずConnectionDraining(デフォルト値 5分)状態になる。

asg06a.png

  • 約6分後の15:39にインスタンスが終了となり、0個の状態になる。

asg08a.png

4.3.2 インスタンス起動時(0個⇒2個)

  • 起動しているインスタンスがない状態で、検証のためstart(capacity=2)のアクションを16:03PMに設定する。指定の時刻にアクションが実行され、PreInService状態を経て、30秒後には2個のインスタンス起動が完了する。また、ALB経由でのnginxへのhttpアクセスも問題なく可能となる。

asg09a.png

asg10a.png

5. 参考サイト

6. 所感

  • オートスケールについては資格試験に出たりすることもあり、なんとなく知識としてはあったものの、実際に設定を行うことで仕様を再確認できた。
  • 今回構成例にしたALB配下での利用に限らず、EKSのワーカーノードなどにもオートスケーリンググループが使用されていたりするため、可能なところには今回検証したような設定を行い、コスト削減につなげたい。
7
4
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
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?