- 公開日
- 最終更新日
【EventBridge】EC2 の停止をスケジュールする設定手順
この記事を共有する
目次
はじめに
本記事では、Amazon EventBridge(以下、「EventBridge」)を使用して定期的に EC2 インスタンスを停止する設定手順を説明します。
手順は以下の流れで説明します。
- 手順の前提
- IAM ポリシーの作成
- IAM ロールの作成
- EventBridge スケジューラの設定
- 動作確認
手順は一部を読み替えることで、EC2 インスタンスを開始する設定にすることも可能です。
構成図
設定完了後の構成図は以下のとおりです。

手順
手順に記載する設定名称は、AWS マネジメントコンソールからの引用(参考文献参照)です。
言及のない設定値はデフォルトを使用しています。
1. 手順の前提
- 実行中の EC2 インスタンスが存在すること
- EC2 インスタンスのインスタンス ID をメモしていること
2. IAM ポリシーの作成¹
① 「IAM >ポリシー>ポリシーの作成」を開きます。
② 「ポリシーエディタ」で JSON を選択して、以下を入力します。
"Resource"の {Region}:{Account} は環境に合わせて置き換えます。
クリックして展開
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ec2:StopInstances",
"Resource": "arn:aws:ec2:{Region}:{Account}:instance/*"
}
]
}
③ 「ポリシー名」と「説明」を入力して、ポリシーを作成します。
3. IAM ロールの作成²
① 「IAM >ロール>ロールを作成」を開きます。
② 「信頼されたエンティティを選択」画面で「カスタム信頼ポリシー」を選択して、以下を入力します。
クリックして展開
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"Service": "scheduler.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
③ 「許可を追加」画面で「2. IAM ポリシーの作成」で作成した IAM ポリシーを選択します。
④ 「ロール名」と「説明」を入力して、ロールを作成します。
4. EventBridge スケジューラの設定³
① 「Amazon EventBridge >スケジュール>スケジュールを作成」を開きます。
② 「スケジュールの詳細の指定」画面で「スケジュール名」を入力します。
③ 「スケジュールのパターン」にて以下を選択します。
- 頻度:定期的なスケジュール
- タイムゾーン:(UTC+9:00) Asia/Tokyo
- スケジュールの種類:cron ベースのスケジュール
- フレックスタイムウィンドウ:オフ
④ ユーザーガイド「cron 式と rate 式を使用して Amazon EventBridge でルールをスケジュールする」⁴を参照して、cron 式でスケジュールを設定します。
# 毎日 21 時 00 分に実行する場合
0 21 * * ? *
⑤ 「ターゲットの選択」画面のターゲット API に「すべての API」を選択します。
⑥ 「サービスを検索」欄に「EC2」と入力して、検索結果の「Amazon EC2」をクリックします。
⑦ 「API を検索」欄に「StopInstances」と入力して、検索結果の「StopInstances」をクリックします。
⑧ API の JSON オブジェクトは、「InstanceIds」配列に対象のインスタンス ID を入力します。
{
"InstanceIds": [
"i-xxxxxxxxxxxxxxxxx"
]
}
⑨ 「設定」画面の「アクセス許可」で「既存のロールを使用」を選択して、「3. IAM ロールの作成」で作成した IAM ロールを選択します。
⑩ スケジュールを作成します。
5. 動作確認
「4. EventBridge スケジューラの設定」で設定した時刻にて、EC2 インスタンスが停止したことを確認します。
参考:定期的に EC2 インスタンスを開始するには
EC2 インスタンスを開始する設定にしたい場合、説明した手順について以下を変更します。
- 「2. IAM ポリシーの作成」② について、許可するアクションを "ec2:StartInstances" にする
クリックして展開
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ec2:StartInstances",
"Resource": "arn:aws:ec2:{Region}:{Account}:instance/*"
}
]
}
- 「4. EventBridge スケジューラの設定」⑦ について、ターゲット API を「StartInstances」にする
まとめ
本記事では、EventBridge スケジューラを使用して定期的に EC2 インスタンスを停止する設定手順を説明しました。
IAM ポリシー・ロールを作成後、EventBridge スケジューラに対象時刻とインスタンス ID を指定します。
本記事が少しでもお役に立てれば幸いです。
参考文献
¹ "ポリシーの作成 | IAM | Global". Amazon Web Services. https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/policies/create, (参照 2025-10-28)
² "ロールを作成 | IAM | Global". Amazon Web Services. https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/roles/create, (参照 2025-10-28)
³ "Amazon EventBridge Scheduler | ap-northeast-3". Amazon Web Services. https://ap-northeast-3.console.aws.amazon.com/scheduler/home?region=ap-northeast-3#create-schedule, (参照 2025-10-28)
⁴ "cron 式と rate 式を使用して Amazon EventBridge でルールをスケジュールする - Amazon EventBridge". AWS Documentation. https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html, (参照 2025-10-28)
この記事は私が書きました
Hirano
記事一覧AWSの知見を身につけるため、一大決心でP&Sに入社しました。 目標はシステム改善に大きく貢献できるエンジニアになることです。 簡単な内容であっても自身が戸惑った点を投稿することで、同じ苦労をしている方の助けになれば嬉しいです!