Among Us - Yellow Crewmate [S3] ELB와 연동하여 웹서버에서 액세스 로그 받아오기

AWS/실습

[S3] ELB와 연동하여 웹서버에서 액세스 로그 받아오기

감쟈! 2021. 2. 26. 02:45

3 Tier Architecture

 

예전에 3티어 아키텍처에 대해 공부하면서 만들어진 웹서버를 활용하는 방법에 대해서 생각해보았다.

웹서버와 VPC 외부에서 작용하는 AWS의 서비스들을 활용해 더 많은 서비스들을 이해하는 시간을 가져보기로 했다.

 

 

시작은 간단하게 ELB의 DNS Name을 통해 웹서버가 실행될 때 발생하는 액세스 로그를 S3에 저장하는 것부터 해보자!!

 


docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/load-balancer-access-logs.html

 

Application Load Balancer 액세스 로그 - Elastic Load Balancing

Application Load Balancer 액세스 로그 Elastic Load Balancing은 로드 밸런서에 전송된 요청에 대한 자세한 정보를 캡처하는 액세스 로그를 제공합니다. 각 로그에는 요청을 받은 시간, 클라이언트의 IP 주소

docs.aws.amazon.com

AWS 공식 홈페이지에 과정이 친절하게 나와있다

 

 

 

이번 실습의 순서는 크게 나누면 다음과 같다.

 

1. S3 버킷 생성

2. 버킷 정책 생성

3. ELB 액세스 로그 활성화

4. ELB 테스트 및 S3 로그 확인

 

 

 

1. 우선 S3 콘솔에 접속해 액세스 로그를 받아올 버킷을 새로 생성해주자!

Create bucket

 

 

 

2. 생성한 버킷에서 Permissions 항목으로 들어가주자

S3 Permissions

 

 

 

3. Bucket Policy에서 버킷정책을 새로 만들어준다. 버킷정책을 통해서 사용할 버킷 지정해주거나, ELB 접근 권한, 사용자 계정 권한 등 정책을 설정해 줄 수 있다.

버킷 정책 설정

 

 

 

3. ELB에서 액세스 로그를 받아오는 버킷 정책이다. 위 AWS 공식 홈페이지에 설명이 잘되어 있다. 참고하도록 하자

이 정책에서 빨갛게 표시된 부분만 설정에 맞게 바꿔주도록 하자.

 

 

 

 

 

난 여기서 your-aws-account-id가 aws 루트 계정 이메일인줄 알고 계속 삽질했는데.... 상단에 숫자로된 Account id 가 있더라 ㅎㅎㅎㅎ

 

 

 

 

elb-account-id 도 이런식으로 숫자로 이루어져있다. 원하는 리전에 맞게 적어주면 된다.

ELB-Account-ID

 

 

 

4. 버킷 정책이 생성되었으면 다음으로 ELB > Description > Attributes 에서 Access logs 를 활성화 시켜주도록 하자

정책 설정이 제대로 안되있으면 활성화 자체가 안된다.

ELB 액세스 로그 활성화

 

 

 

5. ELB 액세스 로그 활성화가 완료되면 지정했던 S3 버킷으로 가서 ELBAccessLogTestFile이 있는지 확인해주자.

파일이 있으면 제대로 연동된 것.

 

 

6. 이제 ELB DNS Name을 통해 웹에 접속할 때마다 다음과 같이 액세스로그가 파일로 저장된다.

 

 

7. 저장된 파일들은 다음과 같이 다운로드 받아서 액세스로그를 확인할 수도 있다. 

액세스 로그 확인

 

 

 

 

 

웹서버의 ELB를 통해 S3와 연동하는 방법에 대해서 살펴보았다.

S3는 이런식으로 액세스 로그를 저장하거나, 백업 파일을 저장하는 등 다양한 파일들을 저장하는 저장소!!