본문으로 건너뛰기

AccessLogs

1 AWS CloudFront Access Logs 소개

  • AWS CloudFront Access Logs는 CloudFront 배포(distribution)를 통해 전달된 모든 사용자 요청에 대한 상세한 정보를 제공합니다.
  • 이 로그를 통해 웹사이트나 애플리케이션의 사용 패턴을 분석하고, 성능을 최적화하며, 보안 문제를 탐지할 수 있습니다.
  • Access Logs는 콘텐츠에 대한 요청, 클라이언트 IP 주소, 응답 상태, 참조자 등 다양한 정보를 포함합니다.

2 CloudFront Access Logs의 주요 특징

  • CloudFront Access Logs는 선택적 기능으로, 필요에 따라 활성화할 수 있습니다.
  • 로그 파일은 사용자가 지정한 Amazon S3 버킷에 저장됩니다.
  • 로그는 일반적으로 요청 처리 후 약 24시간 이내에 전달됩니다.
  • 로그 파일은 gzip 형식으로 압축되어 저장 공간을 절약합니다.
  • 로그 데이터는 무료로 제공되지만, S3에 저장된 로그 파일에 대해 일반적인 S3 요금이 부과됩니다.

3 CloudFront Access Logs 활성화 방법

  • CloudFront Access Logs를 활성화하려면 다음 단계를 따릅니다:
    1. AWS Management Console에 로그인합니다.
    2. CloudFront 콘솔로 이동합니다.
    3. 로그를 활성화할 배포를 선택합니다.
    4. '편집' 버튼을 클릭합니다.
    5. '로그' 섹션에서 '로그 활성화'를 선택합니다.
    6. 로그 파일을 저장할 S3 버킷을 지정합니다.
    7. 필요한 경우 로그 접두사를 설정합니다.
    8. 변경 사항을 저장합니다.

AWS CLI를 사용한 Access Logs 활성화 예시

aws cloudfront update-distribution --id EXXXXXXXXXXXXX --distribution-config file://dist-config.json
  • AWS CLI를 사용하여 Access Logs를 활성화할 수도 있습니다.
  • 이 명령어에서 EXXXXXXXXXXXXX는 CloudFront 배포 ID이며, dist-config.json은 배포 설정을 포함한 JSON 파일입니다.

4 CloudFront Access Logs의 구조

  • CloudFront Access Logs는 탭으로 구분된 텍스트 파일 형식입니다.
  • 각 로그 엔트리는 하나의 사용자 요청을 나타냅니다.
  • 로그 파일에는 다음과 같은 필드가 포함될 수 있습니다:
    1. 날짜
    2. 시간
    3. 엣지 로케이션
    4. 클라이언트 IP
    5. 요청 방법 (GET, POST 등)
    6. 요청된 URL
    7. HTTP 상태 코드
    8. 리퍼러
    9. 사용자 에이전트
    10. 쿼리 문자열
    11. 쿠키
    12. 결과 유형
    13. 요청 ID
    14. 호스트 헤더
    15. 프로토콜 (HTTP, HTTPS)
    16. 전송된 바이트
    17. 소요 시간
  • 이 외에도 더 많은 필드가 있으며, CloudFront의 버전에 따라 추가되거나 변경될 수 있습니다.

5 CloudFront Access Logs 분석 방법

  • CloudFront Access Logs를 분석하여 다양한 인사이트를 얻을 수 있습니다:
  1. 트래픽 패턴 분석:
    • 시간대별, 지역별 트래픽 볼륨을 확인할 수 있습니다.
    • 인기 있는 콘텐츠를 식별할 수 있습니다.
  2. 성능 모니터링:
    • 응답 시간과 전송된 바이트를 분석하여 성능 병목 현상을 찾을 수 있습니다.
    • 캐시 적중률을 계산하여 캐싱 전략을 최적화할 수 있습니다.
  3. 오류 진단:
    • HTTP 상태 코드를 확인하여 오류 발생 빈도와 유형을 파악할 수 있습니다.
    • 특정 URL이나 사용자 에이전트와 관련된 오류를 식별할 수 있습니다.
  4. 보안 분석:
    • 비정상적인 트래픽 패턴이나 의심스러운 IP 주소를 탐지할 수 있습니다.
    • 잠재적인 DDoS 공격을 식별할 수 있습니다.
  • 로그 분석을 위해 다음과 같은 도구를 사용할 수 있습니다:
    1. Amazon Athena: S3에 저장된 로그 파일을 SQL 쿼리로 분석할 수 있습니다.
    2. Amazon QuickSight: 로그 데이터를 시각화하여 인사이트를 얻을 수 있습니다.
    3. AWS Glue: 로그 데이터를 추출, 변환, 로드(ETL)하여 분석하기 쉬운 형태로 만들 수 있습니다.
    4. 서드파티 로그 분석 도구: ELK 스택(Elasticsearch, Logstash, Kibana) 등을 사용할 수 있습니다.

6 CloudFront Access Logs 사용 시 주의사항

  • 개인정보 보호:
    • Access Logs에는 개인 식별 정보(PII)가 포함될 수 있으므로, 적절한 보안 조치를 취해야 합니다.
    • 필요한 경우 로그 데이터를 암호화하거나 익명화해야 합니다.
  • 비용 관리:
    • 대규모 트래픽을 처리하는 경우 로그 파일의 크기가 매우 커질 수 있습니다.
    • S3 수명 주기 정책을 설정하여 오래된 로그 파일을 자동으로 삭제하거나 저렴한 스토리지 클래스로 이동시킬 수 있습니다.
  • 성능 고려사항:
    • 로그 분석은 리소스 집약적일 수 있으므로, 분석 작업을 프로덕션 환경과 분리된 별도의 환경에서 수행하는 것이 좋습니다.
  • 규정 준수:
    • 일부 산업이나 지역에서는 로그 데이터의 보관 및 처리에 대한 특정 규정이 있을 수 있습니다.
    • 관련 규정을 확인하고 준수해야 합니다.

7 결론

  • AWS CloudFront Access Logs는 웹 애플리케이션의 트래픽, 성능, 보안을 모니터링하고 최적화하는 데 매우 유용한 도구입니다.
  • 로그를 적절히 활용하면 사용자 경험을 개선하고, 운영 효율성을 높이며, 보안 위협에 대응할 수 있습니다.
  • 그러나 로그 데이터의 민감성과 규모를 고려하여 적절한 보안 조치와 비용 관리 전략을 수립해야 합니다.
  • CloudFront Access Logs를 효과적으로 사용하기 위해서는 로그 분석 도구와 기술에 대한 이해가 필요합니다.
  • 지속적인 모니터링과 분석을 통해 CloudFront 배포를 최적화하고 비즈니스 목표를 달성할 수 있습니다.