AWS Backup 실패 모니터링
Source: Dev.to
개요
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 configurationsts:AssumeRole– if using role assumption
출력
솔루션은 다음을 생성합니다:
-
Excel Report –
backup_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 Dependencies –
requirements.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 권한이 필요합니다. 항상 비생산 환경에서 테스트하고 조직의 보안 정책 및 절차를 준수하는지 확인하십시오.
