AWS

vpc flow logs, cloudwatch, cloudtrail

devfinger 2024. 11. 28. 14:12

1. VPC Flow Logs

목적

VPC Flow Logs는 VPC 네트워크 트래픽을 모니터링하는 데 사용됩니다. VPC, 서브넷, 또는 네트워크 인터페이스(ENI) 수준에서 송수신된 IP 트래픽을 기록합니다.

역할

  • 네트워크 트래픽 분석: 허용/거부된 트래픽 확인.
  • 보안 감사: 예상치 못한 트래픽 또는 비정상적인 패턴 식별.
  • 문제 해결: 네트워크 연결 문제 디버깅.

사용 방식

  1. 생성 위치: VPC, 서브넷, 또는 특정 ENI에 대해 활성화.
  2. 로그 데이터: S3, CloudWatch Logs로 저장 가능.
  3. 포맷:
    • Version: 로그 포맷 버전 (기본: 2).
    • Source/Destination: 소스 및 목적지 IP/포트.
    • Action: 허용(ACCEPT) 또는 거부(REJECT).
    • Bytes: 전송된 데이터 양.

사용법

  1. VPC Flow Logs 생성
    • AWS Management Console:
      • VPC > Flow Logs > Create flow log.
      • 로그 그룹(S3/CloudWatch Logs) 설정.
    • AWS CLI:
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): 특정 조건을 만족하면 알림 전송.
  • 로그 분석: 애플리케이션 로그 및 이벤트 데이터 분석.
  • 지표 시각화: 대시보드 제공.

사용 방식

  1. 모니터링 대상:
    • EC2, RDS, Lambda, S3 등 AWS 서비스의 메트릭.
    • 사용자 정의 지표(Custom Metrics) 지원.
  2. 경보 설정: 특정 지표가 임계값을 초과하면 SNS로 알림 전송.
  3. 로그 관리: 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 호출 감지.
  • 문제 해결: 리소스 변경 내역 추적.

사용 방식

  1. 기본 활성화: CloudTrail은 계정 내 기본적으로 최근 90일의 API 이벤트를 저장.
  2. Trail 생성: S3 버킷, CloudWatch Logs로 세부 로그 저장 가능.
  3. 로그 데이터:
    • Event Time: 이벤트 발생 시간.
    • User Identity: 호출 사용자 정보.
    • Event Source: 호출된 AWS 서비스.
    • Event Name: 호출된 API 메서드.

사용법

  1. 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 호출 기록 (누가, 언제, 어떤 작업을 수행했는지 기록) 사용자 활동 감사, 보안 사고 분석, 리소스 변경 추적

사용 사례

  1. 네트워크 트래픽 분석:
    • VPC Flow Logs를 통해 특정 IP에서 오는 비정상 트래픽 탐지.
  2. 리소스 사용량 모니터링:
    • CloudWatch를 통해 Lambda 지연 시간, EC2 CPU 사용량 추적.
  3. 보안 감사 및 추적:
    • 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