0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開発用クラウドコンポーネントの起動と停止の自動化

Last updated at Posted at 2025-11-04

開発用クラウドコンポーネントの管理

今まで結構おおらかな開発組織に属していた事でテストサーバーは常時稼働させていたのだが、コストがバカにならない状況になってきた。
事業系開発エンジニアだったので、基本的には開発組織=金食い虫と言われ続けていた。
チリツモにはなるが「使わない時間」に稼働を止める事が目的。
特にRDSは高い。個人のアカウントでもそうだが稼働している時間以外(平日19時以降と土日祝日)は停止させる事でコスト削減を図る。

起動と停止スケジュール

  • 平日: 09:00 起動 / 19:00 停止
  • 土日: 終日停止

19時以降テスト環境で試す事はあまりない。自動停止して接続できないよーって時は手運用で起動。
個人レベルのサーバーはルールや運用でカバーする

方法

  • IAMロールの作成
  • Amazon EventBridgeの設定

1. IAMロールの作成

RDSの停止用のIAMロールを作成する

IAMポリシーの作成

IAM > ポリシー > ポリシーの作成
以下のポリシーを作成する
サービスを選択: RDS
アクション: 以下を選択
- StopDBInstance

アクション:以下を選択
- StartDBInstance

リソース: 全てを選択

ポリシー名:RDSStartStopPolicyとか自分で覚えやすい名前

IAMロールの作成

IAM > ロール > ロールの作成
信頼されたエンティティの種類を選択: カスタム信頼ポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "Service": "scheduler.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

具体的にはPrincipalのServiceにscheduler.amazonaws.comを指定し次へ
許可ポリシーに先程作ったポリシーを選択し、ロールを作成する。
ロール名:RDSStartStopRoleとか自分で覚えやすい名前

2. Amazon EventBridgeの設定

RDS停止用のルール作成

EventBridge > スケジュール > スケジュールの作成
ルール名:RDSStopRuleとか自分で覚えやすい名前
スケジュールパターン
頻度:定期的なスケジュール
スケジュールの種類:cronベースのスケジュール
cron式は月曜〜金曜の19時に設定

0 19 ? * MON-FRI *

フレックスタイムウィンドウ:オフ

ターゲットの選択

ターゲットAPI:すべてのAPIを選択
全てのAWSサービスからRDSを検索し、AmazonRDSを選択
検索ボックスに「StopDBInstance」と入力し、StopDBInstanceを選択
入力欄のDbInstanceIdentifierに停止させたいRDSのインスタンスIDを入力

スケジュール完了後のアクション

スケジュール完了後のアクション:Noneを選択

アクセス許可を指定

実行ロール: 既存のロールを使用
既存の役割を選択: ロール作成で作成したRDSStartStopRoleを選択
これでRDSインスタンス停止用のアクションが作成される。

同様に起動ルールも作った後にやることは19時以降にアクセスして接続出来ないかと言う事を確認する。
凄く細かい事だけど19時ー09時と14時間停止している事になるので1日約60%は稼働していない。
1ヶ月で約17.5日分の稼働時間が削減される。
RDSを開発者個々でインスタンスを持つ事はそうそうないが、自動化をしてコスト削減を徹底は課題になるだろうし、ちょっと手間を掛ければ出来る事なので遂行していく。

追記

9:00 RDS起動処理開始
9:11 利用可能

db.t4g.micro だと起動に結構かかる。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?