【AWS DataSync × CloudWatch】データ転送エラーを自動検出して通知する方法
大量データの転送やバックアップに便利な AWS DataSync。
でも、転送エラーが起きても気づかないまま放置されると、大事なデータが失われる可能性も。
そこで今回は、DataSyncで転送失敗時に自動で通知を飛ばす方法を、CloudWatchとSNSを組み合わせて解説します。
🔸 この記事でできること
- DataSyncの転送タスク失敗を検知
- CloudWatchでアラームを作成
- SNS(Simple Notification Service)でメール通知 or Slack通知
🔧 前提条件
- AWSアカウントがある
- DataSyncタスクをすでに作成済み
- 通知先メール or Slack Webhook URL を準備済み(どちらか)
✅ 手順概要
- CloudWatch メトリクスを確認
- アラーム条件を設定(失敗イベント)
- 通知用のSNSトピックを作成
- SNSとアラームを連携
- 通知が届くかテスト
① CloudWatchでDataSyncのメトリクスを確認
DataSyncは転送タスクごとに以下のメトリクスを提供しています。
TaskExecutionStatusBytesTransferredFilesSkipped-
FilesFailed← ❗️ここを使います!
② アラームの作成(転送失敗を検知)
- AWSコンソール → CloudWatch
- 左メニューから「アラーム」→「アラームの作成」
- 「メトリクスを選択」→「DataSync」→「Task → TaskExecution → FilesFailed」
- 該当のタスクを選択し、次へ
設定例:
| 項目 | 設定値例 |
|---|---|
| 統計 | Sum(合計) |
| 期間 | 5分 |
| 条件 | FilesFailed > 0 |
| 通知 | SNSトピック(後述)を指定 |
③ SNSトピックを作成(通知チャネル)
- AWSコンソール → SNS
- 「トピックの作成」をクリック
- トピック名:
datasync-alert-topicなど - 通知方法に応じて以下のサブスクリプションを追加:
📩 メール通知の場合:
- プロトコル:Email
- エンドポイント:受信したいメールアドレス
- 届いたメールの確認リンクをクリックして有効化
💬 Slack通知の場合(Webhook):
- Slackの Incoming Webhook を作成
- プロトコル:HTTPS
- エンドポイント:SlackのWebhook URL
- Lambda関数でJSONフォーマットを整形した通知を送る構成もおすすめ(後述)
④ CloudWatchアラームとSNSを紐付ける
アラーム作成画面で「通知の送信先」として、上記SNSトピックを選択するだけでOKです。
🔁 オプション:Slack通知をきれいに整形する(Lambda)
SNS → Lambda → Slack にすると、Slack通知をJSONで見やすく整形できます。
必要ならテンプレートコードも提供できます(希望があればお知らせください)。
✅ テスト方法
- DataSyncのタスクを意図的に失敗させる(例:SMB接続先を無効化)
- CloudWatchで
FilesFailed > 0を検知 - SNS → メールまたはSlackに通知が届くか確認!
🔗 参考リンク
📌 まとめ
DataSyncは便利なサービスですが、失敗通知を仕込んでおかないと運用上のリスクが高まります。
CloudWatchとSNSを組み合わせることで、転送エラーをリアルタイムで把握でき、対処もスムーズになります。
S3へのバックアップや業務データの転送を扱う方は、ぜひ導入してみてください!
📘 AWS運用系Tipsも今後投稿予定です。この記事が役に立ったら、ぜひいいね&フォローお願いします!