안녕하세요. 이쁜이와 멋쟁이의 "BTC_준호" 입니다.
오늘은 S3 Access log에 대해 이야기해보겠습니다.
S3 Access Logs는 S3 버킷의 access 요청에 대한 상세한 내용을 기록합니다.
사전 준비 사항
1. 권한: S3 버킷을 관리할 수 있는 IAM 권한이 필요합니다.
서버 액세스 로깅을 활성화하면 S3 콘솔이 S3 로그 전달 그룹에 대한 액세스를 포함하도록 버킷 정책을 자동으로 업데이트합니다.
2. S3버킷: S3 Access logging을 활성화하기 위해서는 두 가지 버킷이 필요합니다.
하나는 로깅을 활성화할 Source 버킷, 다른 하나는 생성된 로그 데이터를 저장할 별도의 Logging 버킷입니다.
Source 버킷과 Logging 버킷이 동일한 경우 로그가 계속해서 들어오게 되는 로깅 루프(logging loop)가 일어날 수 있으니 주의해야 합니다.
S3 Access logging 설정하기
1. S3 관리 콘솔 접속
AWS 관리 콘솔에 로그인하고 'S3' 서비스로 이동합니다.
2. 대상 버킷 선택
로그를 기록하고자 하는 S3 버킷을 선택합니다.
3. Access log 기능 활성화
버킷의 '속성(Properties)' 탭으로 이동합니다.
'서버 액세스 로깅(Server access logging)' 섹션을 찾아 ‘편집’>’서버 엑세스 로깅
활성화’> ‘변경 사항 저장’ 버튼을 클릭합니다.
4. 로그 파일 저장을 위한 버킷 설정
로그 파일을 저장할 대상 버킷을 지정합니다.
로그 파일에 대한 접두사(/s3-logs/)를 설정하여 로그 파일을 쉽게 식별할 수 있도록 합니다.
5. 설정 확인 및 저장
로그 파일의 형식과 이름 규칙을 설정할 수 있습니다. 모든 설정을 확인하고 '변경 사항 저장'을 클릭합니다.
일반적으로 액세스 로그가 설정된 후 모든 요청이 제대로 로깅되고 전달되려면 한 시간 이상 소요됩니다.
6. 로그 확인하기
Source 버킷의 객체에 엑세스 이후 Logging 버킷을 확인해보면 s3-logs파일이 자동으로 생성된 것을 확인할 수 있습니다.
s3-logs파일에 들어가면 액세스 로그가 저장되어 있습니다.
S3 log 예시
79a5 my-bucket [12/Mar/2023:14:23:45 +0000] 192.0.2.200 - 3E57427F33A59F2E REST.GET.OBJECT my-photo.jpg "GET /my-bucket/my-photo.jpg HTTP/1.1" 200 - 1243 1243 12 10 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -
위 log는 S3 access log입니다. 아래와 같이 분석해보겠습니다.
- 소스 IP: 192.0.2.200
- 버킷 이름: my-bucket
- 요청 시간: [12/Mar/2023:14:23:45 +0000]
- 요청된 객체: my-photo.jpg
- HTTP 메소드와 응답 상태: GET 요청으로 200 상태 코드 (성공) 응답
- 데이터 크기: 요청된 객체의 크기는 1243 바이트
- 요청 처리 시간: 12 밀리초
- 리퍼러 및 유저 에이전트: 요청을 보낸 유저 에이전트는 Googlebot
AWS S3 서버 액세스 로깅은 대부분의 요청을 기록하지만, 모든 요청이 기록되거나 전송되는 것을 보장하지는 않습니다.
요청이 실제로 처리된 후, 시간이 오래지나 전송되거나 전혀 전송되지 않을 수도 있습니다.
감사합니다.
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
[AWS] Athena로 S3 AcceseLog 분석하기 (0) | 2023.12.21 |
---|---|
S3 Access log & Lambda &CloudWatch (0) | 2023.12.20 |
[AWS] AWS DataSync-EFS (0) | 2023.12.20 |
ELB 504 에러 해결방안 (0) | 2023.12.15 |
[AWS] 서버리스 기반 웹 애플리케이션 만들기 (2) (0) | 2023.12.11 |
댓글