AWS 고아 알람 보고서 생성
Source: Dev.to
파이프라인 구성
옵션
- Build Discarder: 마지막 5개의 빌드와 아티팩트를 보관합니다.
- Timestamps: 빌드 로그에 타임스탬프를 추가합니다.
환경 변수
- DEFAULT_ENV – 기본 환경 이름.
- DEFAULT_BRANCH – 기본 Git 브랜치 이름.
- GIT_URL – Git 저장소 URL.
- GIT_PATH – Git 저장소 경로.
- REGION_NAME – AWS 리전 이름.
- REPOSITORY_NUMBER – AWS 계정 저장소 번호.
- PROJECT_NAME – 프로젝트 이름.
- SNS_TOPIC_NAME – 알림용 SNS 토픽.
- S3_BUCKET_NAME – 설정 파일이 저장된 S3 버킷.
- S3_BUCKET_PATH – S3 내 설정 파일 경로.
트리거
파이프라인은 월요일 오전 10시 30분에 cron 표현식으로 매주 실행됩니다.
파이프라인 단계
- Setting Build – 디스플레이 이름 및 설명 등 빌드 세부 정보를 설정합니다.
- Cleaning the Workspace – Jenkins 워크스페이스를 정리합니다.
- Pulling the Repository – 지정된 브랜치를 사용해 Git 저장소를 체크아웃합니다.
- Download Artifacts from S3 – 설정된 S3 버킷 및 경로에서 아티팩트를 가져옵니다.
- Execute Python Script –
- 파이썬 가상 환경을 설정합니다.
- 의존성을 설치합니다.
- 메인 스크립트
main.py를 실행합니다.
- Post‑Build (Failure) – 빌드가 실패하면 SNS 알림을 전송합니다.
파이썬 스크립트 (main.py)
이 스크립트는 AWS 리소스 활용 보고서를 생성합니다. boto3 라이브러리를 사용해 AWS 서비스와 상호 작용하고, EC2 인스턴스와 RDS 데이터베이스의 메트릭을 수집한 뒤, 수집된 데이터를 기반으로 Excel 보고서를 작성합니다.
# Example snippet from main.py
import boto3
import xlsxwriter
import yaml
# Initialize AWS clients
ec2 = boto3.client('ec2', region_name='us-east-1')
rds = boto3.client('rds', region_name='us-east-1')
# ... rest of the script that builds the report ...
의존성
boto3XlsxWriterPyYAML
보고서 구조
생성된 Excel 보고서에는 다음 서비스에 대한 알람이 포함됩니다:
- EC2
- RDS
- Load Balancer
- Target Group
- ECS Cluster
- ECS Services
- Lambda
- SQS
값을 강조 표시하기 위한 임계값은 서비스별 제한에 따라 파이프라인에서 설정됩니다.
사용 방법
- 필요한 Jenkins 플러그인을 설치하고 Jenkins 인스턴스를 구성합니다.
- 새 파이프라인 작업을 생성합니다.
- 제공된 파이프라인 스크립트를 작업 설정에 붙여넣습니다.
- 필요한 매개변수와 환경 변수를 설정합니다.
- 구성을 저장하고 파이프라인을 수동으로 실행하거나 예약된 cron이 실행되도록 합니다.
생성된 Excel 보고서는 Jenkins 워크스페이스에 저장됩니다. 특정 AWS 환경에 맞게 파이프라인과 파이썬 스크립트를 자유롭게 커스터마이즈하세요.
GitHub 링크
https://github.com/prashantgupta123/devops-automation/tree/main/aws-cw-orphan-alarms