0
1

【AWS】 EC2とRDSを自動的に停止・起動させる

Last updated at Posted at 2023-12-21

はじめに

EC2インスタンスとRDSデータベースをEventBridgeSchedulerを使用し、自動停止・自動起動させる方法です

IAMの作成

ポリシーの作成

  1. IAM>アクセス管理>ポリシーから「ポリシーを作成」をクリック

ステップ1:アクセス許可を指定

  1. 「ポリシーエディタ」はビジュアルを選択
  2. サービスを選択
    • RDSの場合
      1. 「サービスを選択」からRDSを選択

      2. アクション許可から下記二つを選択

        StartDBInstance
        StopDBInstance
        
      3. リソースから「特定」を選択し、右にある「このアカウント内のいずれか」にチェック

    • EC2の場合
      1. 「サービスを選択」からEC2を選択

      2. アクション許可から下記二つを選択

        StartInstance
        StopInstance
        
      3. アクション許可からStartInstancesStopInstancesを選択

      4. リソースから「特定」を選択し、右にある「このアカウント内のいずれか」にチェック(instance,license-configurationどちらも)

  3. 「次へ」をクリック

ステップ2:確認して作成

  1. 「ポリシーの詳細」からポリシー名を入力
  2. 「ポリシーの作成」をクリック

ロールの作成

  1. IAM>アクセス管理>ロールから「ロールを作成」をクリック

ステップ1:信頼されたエンティティを選択

  1. 信頼されたエンティティタイプから「カスタム信頼ポリシー」を選択

  2. scheduler.amazonaws.comを許可する

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "scheduler.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
  3. 「次へ」をクリック

ステップ2:許可を追加

  1. 検索欄から先ほど作成したポリシーをチェック

ステップ3:名前、確認、および作成

  1. 「ロールの詳細」からロール名を入力
  2. 「ロールを作成」をクリック

EventBridgeSchedulerの設定

  1. Amazon EventBridge>Scheduler>スケジュールから「スケジュールを作成」をクリック

ステップ1:スケジュールの詳細と指定

  1. 「スケジュール名と説明」からスケジュール名を入力
  2. 「スケジュールのパターン」から以下を設定する
    • 頻度:定期的なスケジュール

    • スケジュールの種類:cronベースのスケジュール

    • cron式:設定したい時間

      例:EC2を止めてからRDSを止める、RDSを開始してからEC2を開始するように設定した場合
      
      EC2ストップ:cron(45,18,?,*,FRI,*) -> 毎週金曜18:45
      RDSストップ:cron(50,18,?,*,FRI,*) -> 毎週金曜18:50
      RDSスタート:cron(50,8,?,*,MON,*) -> 毎週月曜8:50
      EC2スタート:cron(55,8,?,*,MON,*) -> 毎週月曜 8:55
      
    • フレックスタイムウィンドウ:オフ

  3. 「次へ」をクリック

ステップ2:ターゲットの選択

  1. 「ターゲットの詳細」から全てのAPIを選択

  2. サービスを選択

    • RDSの場合
      • 開始の設定:全てのAWSのサービス>AmazonRDS>StartDBInstanceを選択
      • 停止の設定:全てのAWSのサービス>AmazonRDS>StopDBInstanceを選択
    • EC2の場合
      • 開始の設定:全てのAWSのサービス>AmazonEC2>StartInstancesを選択
      • 停止の設定:全てのAWSのサービス>AmazonEC2>StopInstancesを選択
  3. それぞれのサービスに渡すパラメータの設定

    {
      "InstanceIds": [
        "DBインスタンスIDを入力"
      ]
    }
    
  4. 「次へ」をクリック

ステップ3:設定

  1. 「アクセス許可」から既存のロールを選択
  2. 先ほど作成したロールを選択
  3. 「次へ」をクリック

ステップ4:スケジュールの確認と作成

  1. 「スケジュールを作成」をクリック

参考資料

AWS EC2インスタンスの起動・停止をスケジュール実行してみた - Qiita

【AWS】RDSを自動停止・自動起動させる方法まとめ - Qiita

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