1
0

AWS RDSインスタンスの自動起動・停止設定

Posted at

目的

AWS RDSインスタンスを停止し7日経過後、自動で起動してしまい気付かないうちに請求料金がとんでもないことに!となるのは、おそらく初心者あるあるかと思います。
そのため、RDSインスタンスが自動で起動する前に、こちらで設定した時間に確実に自動で起動・自動停止をさせることで、うっかりRDSインスタンスが起動したままになることを防止します。

対象者

RDSインスタンス自動起動・停止させるにはLambdaなども使えますが、スクリプトは書けない…
そんなAWS初心者向けのEventBridgeを使用した簡単な方法です。

IAMRoleの作成

1.まずはRoleの作成から始めます。
IAMダッシュボードへ移動し、まずはEventBridgeがRDSを自動起動・停止出来るポリシーを作成するため、サイドメニューからポリシーを選択

ポリシー選択

2.右上のポリシーの作成をクリック

ポリシーの作成

3.まずは自動起動させるためのポリシー設定です。

  • ポリシーエディタはビジュアル
  • サービスはRDSを選択

アクセス許可を指定

RDSに対するアクションを指定できるようになります。

  • アクション許可にstartを入力
  • 書き込み権限でStartDBInstanceを選択
  • リソースはRDS内のインスタンスを限定して指定するので特定にチェック
  • 特定のインスタンスを指定するため、ARNを追加をクリック

ポリシー設定

 
ポップアップで設定画面が開かれるので入力してきます。

  • リソースのリージョンは対象インスタンスのあるリージョンを入力
  • Resource db instance name には対象のDB識別子(インスタンス名)を入力
  • 上記2つを入力するとリソースARNは自動で作成されるので特に触らず、ARNを追加をクリック

ARNを指定

 
リソースARNが登録されました

  • リクエスト条件のオプションは触らず、許可をさらに追加をクリック

ARN登録

4.今度は自動停止をするためのポリシーを設定します。先ほどと同じ流れです。

  • サービスはRDSを選択
  • アクション許可には、今度はStopと入力する
  • 書き込みでは、StopDBInstanceを選択
  • リソースは特定を選択し、ARNを追加をクリック
  • ポップアップで設定画面が開かれるので入力する

追加登録
 

  • リソースのリージョンは対象インスタンスのあるリージョンを指定
  • Resource db instance name には対象のDB識別子を入力
  • 上記2つを入力するとリソースARNは自動で作成されるので、ARNを追加をクリック

ARNを追加2

  • 正しく追加されていることを確認したら、次へをクリック

ARNを追加3

 

  • 以上で、RDSインスタンスの自動起動と停止の出来るポリシーが作成出来たので、ポリシー名を入力したら右下のポリシーの作成をクリックします

ポリシー作成

  • ポリシーの一覧画面に戻るので、先ほど作成したポリシー名で検索をし、正しく作成出来ているか確認しましょう
  • RDSに対するStartとStopのポリシーが与えられています

確認

IAMRoleの作成

  1. ポリシーが作成出来ましたので、ポリシーをアタッチするロールを作成します
  • サイドメニューからロールを選択
    ロール
     
  • ロールを作成をクリック
    ロールを作成
     
  • カスタム信頼ポリシーを選択
    カスタム信頼ポリシー

 

  • カスタム信頼ポリシーには下記をコピーして貼り付け、次へをクリック

スクリーンショット 2024-05-20 111151.png

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

 
ロールに許可を追加します

  • 許可ポリシーは、先程作成したポリシー名を検索して、出てきたらチェックを入れて、次へをクリック
    許可ポリシー

 

  • ロール名を入力して、右下のロールを作成をクリック

ロールの作成

 

  • ロール一覧に作成したロールが表示されることを確認します

ロール一覧

自動起動設定をする

それでは事前準備が出来ましたので、AWS EventBridgeを使用した自動起動・停止設定をしていきましょう。
自動起動・停止設定では、それぞれ起動と停止を分けて作成します。
そのため、まずは自動起動設定からしていきたいと思います。

1.AWS EventBridgeを開き、EventBridge スケジュールを選択します。

schedule-0

2.スケジュールの作成、をクリック。

schedule-1

3.スケジュールの詳細の指定画面になります。

  • スケジュール名を入力
  • 説明はお好みで
  • スケジュールグループはデフォルト
    設定1

 
4.そのままページの下部へ行くと、スケジュールのパターン設定になります。

  • 頻度……定期的なスケジュール
  • タイムゾーン…… Asia/Tokyo
  • スケジュールの種類……rateベースのスケジュール
  • rate式は1週間ごとに作動させたいため、値は 7単位は daysを選択
  • フレックスタイムウィンドウはオフを選択
    • オフにしないと時間にズレが生じてしまい正確に起動・停止が出来なくなる恐れがあります。

スケジュールパターン設定

 
5.時間枠の設定をします。

  • 開始日時を設定
  • スタートしたい日付と時間を指定
    次へをクリックします。

時間枠設定

 
6.ターゲットの選択で、詳細設定をします。

  • ターゲットAPIはすべてのAPIを選択
  • すべてのAWSのサービスで、RDSを検索欄に入力し、絞り込む
  • Amazon RDSを選択

ターゲット詳細1
 

  • さらに詳細なRDSサービスが表示されるので、今度はStartを検索欄に入力して絞りこむ
  • 表示された一覧からStartDBInstaceを選択

ターゲット詳細2

 

  • APIに渡すJSONが表示されるので、DbInstanceIdentifier(DB識別子またはインスタンス名のこと)を入力して次へをクリック

DB識別子

 
7.最終設定をしていきます

  • スケジュールの状態は、有効化
  • スケジュール完了後のアクションはNONEにする
    • DELETEにするとスケジュールが削除されてしまうので注意
  • 再試行ポリシーとデッドレターキュー
    • EventBridgeのスケジュールが失敗した場合に再試行するかどうか?の設定です
    • 設定はお好みでいいと思います
    • デッドレターキューはなし

スケジュール最終設定1

  • 暗号化はなし
  • アクセス許可は先に作成してあるロールを選択して次へ

ロール選択

 
8.最後に全体のチェックをして、作成した内容に誤りが無ければ、最後にページ右下のスケジュールを作成をクリックして、自動起動設定は完了

  • 間違いがあれば各項目の編集から修正ができます

最終確認1

最終確認2

自動停止設定をする

1.自動起動設定が出来たので、次は自動停止設定をします。
流れとしては、自動起動設定と同じです。

2.スケジュールの作成、をクリック
(一覧に、先に作成した自動起動設定のスケジュールが作成されてるのも確認できます)
自動停止スケジュール作成

3.スケジュール名を入力

  • 説明はお好みで
  • スケジュールグループはデフォルトを選択

スケジュールの作成

  1. そのままページの下部へ行くと、スケジュールのパターン設定になります
  • 頻度……定期的なスケジュール
  • タイムゾーン…… Asia/Tokyo
  • スケジュールの種類……rateベースのスケジュール
  • rate式は1週間ごとに作動させたいため、値は 7単位は daysを選択
  • フレックスタイムウィンドウはオフを選択
    • オフにしないと時間にズレが生じてしまい正確に起動・停止が出来なくなる恐れがあります。

スケジュールパターン設定

 
5.時間枠の設定をします

  • 開始日時を設定(自動停止設定ですが終了日時ではありません)
  • 自動起動設定と同じ日付を指定
  • 時間は、RDSは起動に時間が掛かるので、自動で起動させる時間の20分~30分後で設定すると良いと思います
  • 次へをクリックします。

時間枠指定

 
6.ターゲットの選択で、詳細設定をします。

  • ターゲットAPIはすべてのAPI
  • すべてのAWSのサービスで、RDSを検索欄に入力し、絞り込む
  • Amazon RDSを選択

ターゲット詳細1
 

  • さらに詳細なRDSサービスが表示されるので、今度はStopを検索欄に入力して絞りこむ
  • StopDBInstaceを選択

停止設定

  • APIに渡すJSONが表示されるので、DbInstanceIdentifier(DB識別子またはインスタンス名のこと)を入力して次へをクリック

停止インスタンス指定

7.最終設定をしていく

  • スケジュールの状態は、有効化
  • スケジュール完了後のアクションはNONEにする
    • DELETEにするとスケジュールが削除されてしまうので注意
  • 再試行ポリシーとデッドレターキュー
    • EventBridgeのスケジュールが失敗した場合に再試行するかどうか?の設定です
    • 設定はお好みでいいと思います
    • デッドレターキューはなし

スケジュール最終設定1

  • 暗号化はなし
  • 先に作成したアクセス許可のロールを選択して次へ

ロール選択

 
8.最後に全体のチェックをして、作成した内容に誤りが無ければ、最後にページ右下のスケジュールを作成をクリックして、自動停止設定も完了です

  • 間違いがあれば各項目の編集から修正ができます

最終確認1

最終確認2

動作確認

  • 自動起動・停止設定が登録出来たら、正しく動作されるか確認をしてみましょう。
  • 現時点から5分後程度先に起動時間を設定、その20分~30分後に停止時間を設定して、インスタンスが自動で動くのが確認出来たら完了です!
     
  • だいたい設定時刻ピッタリではなく、5分後くらいにステータスが起動中になります。

起動中
 

  • 無事に起動完了しました。

起動完了

  • 停止時刻になり、停止中なりました。

停止中

  • 無事に停止完了です!

停止完了

  • これで自動起動・停止設定が設定通りに動作することを確認出来ました。
  • 動作確認後、スケジュールを戻すのを忘れずに。

さいごに

AWS EventBridgeを使ったRDSインスタンスの自動起動・停止設定は難しい設定が無く、シンプルに設定が出来るので、初心者でも簡単かと思います。
ぜひ、使ってみてください。

1
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
1
0