[opswitch] EC2バックアップやリージョン間コピー、バックアップ失敗時の通知を簡単に設定

EC2のバックアップや失敗時の通知をサクッと設定したいならopswitchにお任せ!!
2024.03.31

こんにちは!コンサル部のinomaso(@inomasosan)です。

EC2のバックアップを簡単かつ良い感じに運用したいと思ったことはないでしょうか?

弊社が無料で提供しているopswitchをご利用いただくことで、バックアップ設計時によくでてくる要件に対応することができます。

EC2バックアップ要件

今回は以下の要件を踏まえて設定していきます。

  • ファイルシステムの整合性を保証するために、AMI作成時にEC2を再起動する
  • EC2が稼働しているリージョンでの大規模障害に備え、別リージョンにAMIをコピーする
  • バックアップ失敗時にメール等で運用者に通知する

構成イメージ

今回、opswitchで設定するジョブの構成イメージとなります。
opswitchのジョブに複数のタスクを定義した場合は、タスクは順番に実行されます。

上記のジョブ定義の場合、「EC2バックアップの作成」タスクが成功時にのみ、「EC2バックアップのリージョン間コピー」タスクが実行されます。

また、タスクのいずれかが失敗時に、登録されたメールアドレスにメールを通知します。

やってみた

opswitchを開始

opswitchを使い始めるにあたって、以下の対応が必要となります。

  • メールアドレスやAWSアカウントの準備
  • opswitchアカウントを作成する
  • 組織を作成する
  • AWSアカウントを連携する

詳細につきましては以下のブログをご参照願います。

[タスク]EC2バックアップの作成

  • opswitchにログイン後、タスク-EC2-EC2バックアップの作成をクリックします。
  • +作成ボタンをクリックして、タスクを作成していきます。
  • ターゲットはバックアップ対象のEC2に設定するタグを指定する必要があります。
  • AMIのステータスチェックは失敗時に再実行と通知するようにチェックしてfailedの場合、再実行するをチェック願います。

[タスク]EC2バックアップのリージョン間コピー

  • opswitchにログイン後、タスク-EC2-EC2バックアップのリージョン間コピーをクリックします。
  • +作成ボタンをクリックして、タスクを作成していきます。
  • コピー元リージョンEC2バックアップの作成で設定したリージョンを指定願います。
  • コピー先リージョンはAMIのコピー先リージョンを選択願います。
  • 暗号化はEC2にアタッチしているEBSボリュームを暗号化している場合のみチェック願います。
    • AWSがデフォルトで用意しているKMSキーを利用している場合はaws/ebsを選択願います。

[ジョブ]作成したタスクの実行順やスケジュールを定義

今回作成した2つのタスク「EC2バックアップの作成」、「EC2バックアップのリージョン間コピー」の実行順やスケジュールを定義していきます。

  • opswitchにログイン後、ジョブをクリックします。
  • +作成ボタンをクリックして、ジョブを作成していきます。
  • スケジュール日次以外にも、週次や月次、または時間単位での実行間隔を指定できます。
  • タスクは定義した上から順番に実行されます。

メール通知の設定

今回はメール通知ですが、それ以外にもSlackやTeamsへの通知もopswitchは対応しております。
また、メール通知を受け取るためには、「個人設定」と「組織設定」の2つがどちらも通知を受け取る設定にする必要あるため、注意願います。

  • 管理-通知設定-メールをクリックしていきます。
  • 個人設定失敗のみ通知を選択します。
    • メールアドレス毎に個人設定でメール通知条件を設定する必要がある点に注意願います。
  • 組織設定で通知したいメールアドレスの通知送信するを選択します。

実行ログの確認

実行履歴からログを確認することが可能です。
該当のジョブで実行履歴カウンターをクリックしてみてください。

確認したい実行履歴のログをクリック願います。

以下のような、ジョブの実行履歴のログが表示されます。

[2024-03-31 14:41:07,739] ******************************************************************************************
[2024-03-31 14:41:07,739] ジョブ: ec2-bk-job 53669389-b2aa-42fd-95d1-88592d09fc9d
[2024-03-31 14:41:07,739] 組織: 30268ada-6cf5-42c9-bc48-510337cd9f23
[2024-03-31 14:41:07,739] スケジュール: 2024-03-31 14:35:00
[2024-03-31 14:41:07,739] 開始日時: 2024-03-31 14:35:28
[2024-03-31 14:37:41,576]****************************************************************************************
[2024-03-31 14:37:41,576] タスク: ec2-bk-task
[2024-03-31 14:37:41,576] タスク種別: EC2バックアップの作成
[2024-03-31 14:37:41,576]-------------------------------------------------------------------------------------------
[2024-03-31 14:35:32,191] 819950219004 ap-northeast-1 Create Images 対象のインスタンスが2個あります。
[2024-03-31 14:35:32,191] 819950219004 ap-northeast-1 Create Images [cwagent(i-xxxxxxxxxxxxxxxxx), al2023(i-xxxxxxxxxxxxxxxxx)]
[2024-03-31 14:35:32,866] 819950219004 ap-northeast-1 Create Images cwagentのAMIを作成しました。(ami-xxxxxxxxxxxxxxxxx)
[2024-03-31 14:35:33,354] 819950219004 ap-northeast-1 Create Images al2023のAMIを作成しました。(ami-xxxxxxxxxxxxxxxxx)
[2024-03-31 14:36:35,781] 819950219004 ap-northeast-1 Check image status AMIのステータスを確認しています。
[2024-03-31 14:37:37,489] 819950219004 ap-northeast-1 Check image status ami-xxxxxxxxxxxxxxxxx is available
[2024-03-31 14:37:37,489] 819950219004 ap-northeast-1 Check image status ami-xxxxxxxxxxxxxxxxx is available
[2024-03-31 14:37:39,820] 819950219004 ap-northeast-1 Delete Old Images 削除対象のAMIが2個あります。
[2024-03-31 14:37:39,820] 819950219004 ap-northeast-1 Delete Old Images [ami-xxxxxxxxxxxxxxxxx, ami-xxxxxxxxxxxxxxxxx]
[2024-03-31 14:37:40,077] 819950219004 ap-northeast-1 Delete Old Images ami-xxxxxxxxxxxxxxxxxの登録を解除しました。
[2024-03-31 14:37:40,284] 819950219004 ap-northeast-1 Delete Old Images snap-xxxxxxxxxxxxxxxxxを削除しました。
[2024-03-31 14:37:40,557] 819950219004 ap-northeast-1 Delete Old Images ami-xxxxxxxxxxxxxxxxxの登録を解除しました。
[2024-03-31 14:37:40,730] 819950219004 ap-northeast-1 Delete Old Images snap-xxxxxxxxxxxxxxxxxを削除しました。
[2024-03-31 14:37:41,576]-------------------------------------------------------------------------------------------
[2024-03-31 14:37:41,576] ターゲットタグKey: Backup
[2024-03-31 14:37:41,576] ターゲットタグValue: true
[2024-03-31 14:37:41,576] その他の設定: [ 世代数: 1, EC2インスタンスの再起動: する, 説明: , ターゲットインスタンスからタグをコピーする: はい, 紐づくEBSスナップショットに同じタグをつける: はい, AMIのステータスチェック: チェックしてfailedの場合、再実行する ]
[2024-03-31 14:37:41,576] タスク実行結果: 成功
[2024-03-31 14:37:41,576] 開始日時: 2024-03-31 14:35:30,630
[2024-03-31 14:37:41,576] 終了日時: 2024-03-31 14:37:41,518
[2024-03-31 14:37:41,576]-------------------------------------------------------------------------------------------
[2024-03-31 14:37:41,576] 作成したEC2バックアップ数: 2
[2024-03-31 14:37:41,576] 削除したEC2バックアップ数: 2
[2024-03-31 14:41:05,254]******************************************************************************************
[2024-03-31 14:41:05,254] タスク: ec2-region-copy-task
[2024-03-31 14:41:05,254] タスク種別: EC2バックアップのリージョン間コピー
[2024-03-31 14:41:05,254]-------------------------------------------------------------------------------------------
[2024-03-31 14:37:48,825] 819950219004 ap-northeast-3 Copy images 対象のAMIが2個あります。
[2024-03-31 14:37:48,825] 819950219004 ap-northeast-3 Copy images [ami-xxxxxxxxxxxxxxxxx, ami-xxxxxxxxxxxxxxxxx]
[2024-03-31 14:37:49,176] 819950219004 ap-northeast-3 Copy images ami-xxxxxxxxxxxxxxxxxのAMIをコピーしました。(ami-xxxxxxxxxxxxxxxxx)
[2024-03-31 14:37:49,286] 819950219004 ap-northeast-3 Copy images ami-xxxxxxxxxxxxxxxxxのAMIにタグを付与しました。([{'Key': 'cm-Task', 'Value': 'ec2-region-copy-task'}, {'Key': 'creation_info', 'Value': '53669389-b2aa-42fd-95d1-88592d09fc9d_2024-03-31_14-35-00_000_ami-xxxxxxxxxxxxxxxxx'}, {'Key': 'Name', 'Value': 'al2023'}, {'Key': 'Backup', 'Value': 'true'}])
[2024-03-31 14:37:49,689] 819950219004 ap-northeast-3 Copy images ami-xxxxxxxxxxxxxxxxxのAMIをコピーしました。(ami-xxxxxxxxxxxxxxxxx)
[2024-03-31 14:37:49,787] 819950219004 ap-northeast-3 Copy images ami-xxxxxxxxxxxxxxxxxのAMIにタグを付与しました。([{'Key': 'cm-Task', 'Value': 'ec2-region-copy-task'}, {'Key': 'creation_info', 'Value': '53669389-b2aa-42fd-95d1-88592d09fc9d_2024-03-31_14-35-00_000_ami-xxxxxxxxxxxxxxxxx'}, {'Key': 'Name', 'Value': 'cwagent'}, {'Key': 'Backup', 'Value': 'true'}])
[2024-03-31 14:38:53,024] 819950219004 ap-northeast-3 Check image status AMIのステータスを確認しています。
[2024-03-31 14:39:56,513] 819950219004 ap-northeast-3 Check image status ami-xxxxxxxxxxxxxxxxxのAMIに紐づくスナップショットにタグをコピーしました。
[2024-03-31 14:39:56,513] 819950219004 ap-northeast-3 Check image status ami-xxxxxxxxxxxxxxxxx is available
[2024-03-31 14:39:56,513] 819950219004 ap-northeast-3 Check image status AMIのステータスを確認しています。
[2024-03-31 14:40:59,976] 819950219004 ap-northeast-3 Check image status ami-xxxxxxxxxxxxxxxxxのAMIに紐づくスナップショットにタグをコピーしました。
[2024-03-31 14:40:59,976] 819950219004 ap-northeast-3 Check image status ami-xxxxxxxxxxxxxxxxx is available
[2024-03-31 14:41:03,711] 819950219004 ap-northeast-3 Delete old images 削除対象のAMIが2個あります。
[2024-03-31 14:41:03,711] 819950219004 ap-northeast-3 Delete old images [ami-xxxxxxxxxxxxxxxxx, ami-xxxxxxxxxxxxxxxxx]
[2024-03-31 14:41:03,898] 819950219004 ap-northeast-3 Delete old images ami-xxxxxxxxxxxxxxxxxの登録を解除しました。
[2024-03-31 14:41:04,037] 819950219004 ap-northeast-3 Delete old images snap-xxxxxxxxxxxxxxxxxを削除しました。
[2024-03-31 14:41:04,221] 819950219004 ap-northeast-3 Delete old images ami-xxxxxxxxxxxxxxxxxの登録を解除しました。
[2024-03-31 14:41:04,359] 819950219004 ap-northeast-3 Delete old images snap-xxxxxxxxxxxxxxxxxを削除しました。
[2024-03-31 14:41:05,254]-------------------------------------------------------------------------------------------
[2024-03-31 14:41:05,254] ターゲットタグKey: Backup
[2024-03-31 14:41:05,254] ターゲットタグValue: true
[2024-03-31 14:41:05,254] その他の設定: [ 暗号化されたEC2バックアップをコピーする: はい, 終了時のステータス: チェックする ]
[2024-03-31 14:41:05,254] タスク実行結果: 成功
[2024-03-31 14:41:05,254] 開始日時: 2024-03-31 14:37:45,891
[2024-03-31 14:41:05,254] 終了日時: 2024-03-31 14:41:05,181
[2024-03-31 14:41:05,254]-------------------------------------------------------------------------------------------
[2024-03-31 14:41:05,254] コピーしたEC2バックアップ数: 2
[2024-03-31 14:41:05,254] 削除したEC2バックアップ数: 2
[2024-03-31 14:41:07,749] ******************************************************************************************
[2024-03-31 14:41:07,749] ジョブの実行に成功しました。
[2024-03-31 14:41:07,749] 完了日時: 2024-03-31 14:41:07
[2024-03-31 14:41:07,749] ******************************************************************************************

ジョブ失敗時のメール通知

EC2バックアップの作成に失敗した場合は、以下のようなサンプルメールが通知されます。

■件名
[opswitch]ジョブの実行に失敗しました(daily_backup)
■本文
opswitch(オプスウィッチ)をご利用のお客様
以下のジョブの実行に失敗しました。
ジョブ名:daily_backup
完了時間:2024-02-13 12:08:34
-------------------------------------------------------------------------------------------
タスク名: ec2_backup
タスク種別: EC2バックアップの作成
ターゲットタグKey: Name
ターゲットタグValue: MyInstance
タスク実行結果: 失敗
開始日時: 2024-02-13 11:57:45,213
終了日時: 2024-02-13 12:08:31,062
-------------------------------------------------------------------------------------------
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
AMI ami-xxxxxxxxxxxxxxxxx is failed
-------------------------------------------------------------------------------------------
作成したEC2バックアップ数: 0
削除したEC2バックアップ数: 0
-------------------------------------------------------------------------------------------
--
※本メールは送信専用メールアドレスから送信されています。返信はできませんのでご了承ください。
opswitchに関するお問い合わせは以下のページをご覧ください。
https://opswitch.zendesk.com/hc/ja/articles/360029522972
Classmethod, Inc.

まとめ

とりいそぎ学習コストや開発コストをかけずEC2のバックアップや通知設定したい場合には、弊社のopswitchがマッチするかと思いますので、採用候補の一つとしてご検討いただけますと幸いです。

この記事が、どなたかのお役に立てば幸いです。それでは!