AWS Backup 실패 모니터링

발행: (2025년 12월 28일 오후 11:41 GMT+9)
7 min read
원문: Dev.to

Source: Dev.to

Prashant Gupta

개요

AWS Backup 작업을 자동으로 모니터링하여 실패한 백업 작업을 식별하고 이메일로 상세 보고서를 전송하는 솔루션입니다. 이 도구는 백업 실패에 대해 사전에 경고함으로써 백업 준수를 유지하는 데 도움이 됩니다.

주요 기능

  • 백업 실패 감지 – 지난 7일 이내에 실패한 백업 작업을 자동으로 식별합니다.
  • 상세 보고 – 백업 계획 이름, 리소스 세부 정보 및 실패 정보를 포함한 Excel 보고서를 생성합니다.
  • 이메일 알림 – 첨부된 Excel 보고서와 함께 자동 이메일 알림을 보냅니다.
  • 다중 계정 지원 – AWS 프로파일, 위임 역할 및 액세스 키와 함께 작동합니다.
  • Jenkins 통합 – 자동 스케줄링을 위한 Jenkinsfile을 포함합니다.
  • 보안 구성 – 이메일 자격 증명을 위해 AWS Secrets Manager를 사용합니다.

Prerequisites

  • Python 3.x
  • AWS CLI가 구성되어 있거나 적절한 AWS 자격 증명
  • 백업 플랜이 구성된 AWS Backup 서비스
  • 이메일 구성을 위한 AWS Secrets Manager 비밀
  • 필요한 IAM 권한 (see iam_policy.json)

설치

# Clone the repository and navigate to the solution directory
git clone 
cd devops-automation/aws-backup-failed-monitoring
# Install required dependencies
pip install -r requirements.txt

inputs.yml 파일에서 AWS 자격 증명 및 이메일 설정을 구성하십시오.

Configuration

AWS Authentication

inputs.yml 파일에서 다음 인증 방법 중 하나를 설정하십시오:

# Option 1: AWS Profile
profile_name: "your-profile-name"

# Option 2: Assumed Role
role_arn: "arn:aws:iam::123456789012:role/BackupMonitoringRole"

# Option 3: Access Keys (not recommended for production)
access_key: "your-access-key"
secret_key: "your-secret-key"
session_token: "your-session-token"  # Optional

Email Configuration

이메일 알림을 설정하십시오:

Email:
  enabled: true
  secret_manager: "your-smtp-secret-name"
  details:
    subject_prefix: "AWS Backup Alert"
    to:
      - "admin@example.com"
    cc:
      - "devops@example.com"

AWS Secrets Manager

다음 구조를 가진 비밀을 AWS Secrets Manager에 생성하십시오:

{
  "SMTP_HOST": "smtp.example.com",
  "SMTP_PORT": "587",
  "SMTP_USERNAME": "your-username",
  "SMTP_PASSWORD": "your-password",
  "EMAIL_FROM": "alerts@example.com"
}

사용법

수동 실행

python main.py

젠킨스 파이프라인

포함된 Jenkinsfile은 자동 스케줄링을 제공합니다:

  • 매주 월요일 오전 5:00에 실행
  • SNS를 통한 실패 알림 포함
  • 환경 변수를 구성 가능

셸 스크립트 실행

bash script.sh

IAM Permissions

The solution requires the following AWS permissions (see iam_policy.json):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "backup:ListBackupJobs",
        "backup:GetBackupPlan",
        "backup:ListTags",
        "backup:GetBackupPlanFromJSON"
      ],
      "Resource": "*"
    }
  ]
}

Additional permissions needed:

  • secretsmanager:GetSecretValue – for email configuration
  • sts:AssumeRole – if using role assumption

출력

솔루션은 다음을 생성합니다:

  • Excel Reportbackup_jobs.xlsx 포함:

    • Backup Plan Name
    • Resource Name and Type
    • Resource ARN
    • Job ID
    • Start Time
    • Job State
  • Email Notification – 첨부된 Excel 보고서와 함께 HTML 이메일

  • Console Logs – 모니터링 프로세스에 대한 상세 로그

파일 구조

aws-backup-failed-monitoring/
├── main.py          # Main monitoring script
├── AWSSession.py    # AWS session management
├── Notification.py # Email notification handler
├── inputs.yml       # Configuration file
├── requirements.txt # Python dependencies
├── iam_policy.json  # Required IAM permissions
├── Jenkinsfile      # Jenkins pipeline configuration
├── script.sh        # Shell execution script
├── .gitignore       # Git ignore rules
└── README.md        # This documentation

모니터링 로직

  • 시간 범위 – 지난 7일 동안의 백업 작업을 모니터링합니다.
  • 작업 상태FAILED 상태인 작업을 식별합니다.
  • 검증 – 보고하기 전에 백업 계획 존재 여부를 확인합니다.
  • 보고 – 실패한 작업에 대한 상세 Excel 보고서를 생성합니다.
  • 알림 – 실패가 감지될 때 이메일 알림을 보냅니다.

문제 해결

일반적인 문제

  • Missing Dependenciesrequirements.txt에 있는 모든 패키지가 설치되어 있는지 확인하십시오.
  • AWS Permissions – IAM 권한이 iam_policy.json과 일치하는지 확인하십시오.
  • Email Configuration – AWS Secrets Manager 비밀 형식을 확인하십시오.
  • Authentication – AWS 자격 증명이 올바르게 구성되어 있는지 확인하십시오.

로깅

스크립트는 모니터링 프로세스의 각 단계에 대한 자세한 로그를 제공하며, 콘솔 출력에서 확인하거나 추가 분석을 위해 로그 파일로 리다이렉트할 수 있습니다.

솔루션 로깅

  • INFO 레벨 – 일반 작업 상태
  • ERROR 레벨 – 특정 오류 세부 정보 및 예외

보안 고려 사항

  • Credentials – AWS 자격 증명을 버전 관리에 커밋하지 마세요.
  • Secrets Manager – 이메일 자격 증명에 AWS Secrets Manager를 사용하세요.
  • IAM Roles – 인증을 위해 액세스 키보다 IAM 역할을 선호하세요.
  • Least Privilege – 최소한의 필요한 권한만 적용하세요.

Jenkins 통합

포함된 Jenkins 파이프라인:

  • 주간 실행을 예약합니다.
  • 빌드 히스토리 관리를 제공합니다.
  • 실패 알림을 포함합니다.
  • 환경별 구성을 지원합니다.

기여

이 솔루션을 수정할 때:

  • 먼저 비생산 환경에서 테스트하십시오.
  • 구성 변경 사항에 대해 문서를 업데이트하십시오.
  • 기존 코드 구조와 명명 규칙을 따르십시오.
  • 보안 모범 사례를 유지하십시오.

Support

  • 문제 해결 섹션을 확인하십시오.
  • API‑콜 세부 정보를 보려면 AWS CloudTrail 로그를 검토하십시오.
  • IAM 권한 및 AWS 서비스 한도를 확인하십시오.
  • 지원이 필요하면 DevOps 팀에 연락하십시오.

GitHub 저장소

https://github.com/prashantgupta123/devops-automation/tree/main/aws-backup-failed-monitoring

Note: 이 도구는 AWS Backup 작업을 모니터링하며 적절한 AWS 권한이 필요합니다. 항상 비생산 환경에서 테스트하고 조직의 보안 정책 및 절차를 준수하는지 확인하십시오.

Back to Blog

관련 글

더 보기 »

AWS 클라우드 설계 원칙 식별

AWS Well-Architected Framework AWS Well‑Architected Framework는 보안이 뛰어나고, 복원력이 있으며, 효율적이고, 비용 효율적인 클라우드 아키텍처를 구축하기 위한 지침을 제공합니다.