1. VPC Flow Logs
목적
VPC Flow Logs는 VPC 네트워크 트래픽을 모니터링하는 데 사용됩니다. VPC, 서브넷, 또는 네트워크 인터페이스(ENI) 수준에서 송수신된 IP 트래픽을 기록합니다.
역할
- 네트워크 트래픽 분석: 허용/거부된 트래픽 확인.
- 보안 감사: 예상치 못한 트래픽 또는 비정상적인 패턴 식별.
- 문제 해결: 네트워크 연결 문제 디버깅.
사용 방식
- 생성 위치: VPC, 서브넷, 또는 특정 ENI에 대해 활성화.
- 로그 데이터: S3, CloudWatch Logs로 저장 가능.
- 포맷:
- Version: 로그 포맷 버전 (기본: 2).
- Source/Destination: 소스 및 목적지 IP/포트.
- Action: 허용(ACCEPT) 또는 거부(REJECT).
- Bytes: 전송된 데이터 양.
사용법
- VPC Flow Logs 생성
- AWS Management Console:
- VPC > Flow Logs > Create flow log.
- 로그 그룹(S3/CloudWatch Logs) 설정.
- AWS CLI:
- AWS Management Console:
aws ec2 create-flow-logs \
--resource-type VPC \
--resource-id vpc-0123456789abcdef0 \
--traffic-type ALL \
--log-group-name MyVPCFlowLogs \
--deliver-logs-permission-arn arn:aws:iam::123456789012:role/MyFlowLogsRole
2. 분석
- CloudWatch Insights에서 쿼리를 통해 로그 분석.
2. CloudWatch
목적
CloudWatch는 AWS 리소스 및 애플리케이션의 성능 모니터링과 로그 관리에 사용됩니다.
역할
- 모니터링: CPU, 메모리, 네트워크 등의 리소스 사용량 추적.
- 경보(Alarm): 특정 조건을 만족하면 알림 전송.
- 로그 분석: 애플리케이션 로그 및 이벤트 데이터 분석.
- 지표 시각화: 대시보드 제공.
사용 방식
- 모니터링 대상:
- EC2, RDS, Lambda, S3 등 AWS 서비스의 메트릭.
- 사용자 정의 지표(Custom Metrics) 지원.
- 경보 설정: 특정 지표가 임계값을 초과하면 SNS로 알림 전송.
- 로그 관리: CloudWatch Logs를 통해 애플리케이션 로그 저장 및 분석.
사용법
1. 지표 확인
- 콘솔에서 CloudWatch > Metrics.
- AWS CLI
aws cloudwatch get-metric-statistics \
--metric-name CPUUtilization \
--start-time 2024-11-27T00:00:00Z \
--end-time 2024-11-28T00:00:00Z \
--period 3600 \
--namespace AWS/EC2 \
--statistics Average \
--dimensions Name=InstanceId,Value=i-0123456789abcdef0
2. 경보 생성
- CloudWatch > Alarms > Create Alarm.
- 조건 및 알림 대상 설정.
3. 로그 분석
- CloudWatch Logs Insights:
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20
3. CloudTrail
목적
CloudTrail은 AWS 계정의 API 호출 기록을 저장하여 보안, 컴플라이언스, 운영 문제를 분석하는 데 사용됩니다.
역할
- 감사 로그: AWS 리소스와 사용자 활동 기록.
- 보안 분석: 비정상적이거나 의심스러운 API 호출 감지.
- 문제 해결: 리소스 변경 내역 추적.
사용 방식
- 기본 활성화: CloudTrail은 계정 내 기본적으로 최근 90일의 API 이벤트를 저장.
- Trail 생성: S3 버킷, CloudWatch Logs로 세부 로그 저장 가능.
- 로그 데이터:
- Event Time: 이벤트 발생 시간.
- User Identity: 호출 사용자 정보.
- Event Source: 호출된 AWS 서비스.
- Event Name: 호출된 API 메서드.
사용법
- Trail 생성
- 콘솔에서 CloudTrail > Trails > Create trail.
- S3 및 CloudWatch Logs 대상 설정.
- AWS CLI:
aws cloudtrail create-trail \
--name MyTrail \
--s3-bucket-name my-trail-logs
2. 로그 분석
- CloudTrail 로그는 JSON 형식으로 제공.
- Athena를 사용한 쿼리 분석
SELECT eventTime, eventSource, eventName, userIdentity.userName
FROM cloudtrail_logs
WHERE eventSource = 'ec2.amazonaws.com'
AND eventName = 'StartInstances';
비교 및 결합 활용
비교 및 결합 활용
도구목적주요 기능주요 활용 사례
VPC Flow Logs | 네트워크 트래픽 모니터링 | VPC 내 송수신 트래픽 기록 (허용/거부 포함) | 네트워크 문제 디버깅, 비정상 트래픽 탐지 |
CloudWatch | 리소스 성능 및 로그 모니터링 | 지표 대시보드, 경보 설정, 애플리케이션 로그 저장 및 분석 | CPU 사용량 추적, Lambda 실행 로그 분석, 경보로 알림 전송 |
CloudTrail | API 호출 기록 및 감사 | AWS API 호출 기록 (누가, 언제, 어떤 작업을 수행했는지 기록) | 사용자 활동 감사, 보안 사고 분석, 리소스 변경 추적 |
사용 사례
- 네트워크 트래픽 분석:
- VPC Flow Logs를 통해 특정 IP에서 오는 비정상 트래픽 탐지.
- 리소스 사용량 모니터링:
- CloudWatch를 통해 Lambda 지연 시간, EC2 CPU 사용량 추적.
- 보안 감사 및 추적:
- CloudTrail로 누군가가 S3 버킷을 삭제하려 했던 시도 기록 확인.
결론
- VPC Flow Logs: 네트워크 계층 문제 디버깅.
- CloudWatch: 리소스와 애플리케이션의 성능 및 상태 모니터링.
- CloudTrail: 사용자 및 API 활동 기록으로 보안과 컴플라이언스 강화.
이 세 가지를 결합하면 AWS 환경의 가시성을 높이고 문제를 효율적으로 해결할 수 있습니다.
'AWS' 카테고리의 다른 글
AWS Lambda Log 동적 변경 (1) | 2024.11.29 |
---|---|
CloudWatch Java 로그 작성 방법 (0) | 2024.11.29 |
Java Lambda template.yaml 관리 (0) | 2024.11.18 |
Lambda Java DB 연결 변수 관리 (2) | 2024.11.18 |
Endpoint 서비스 범주 (0) | 2024.11.11 |