AWS CloudWatch Logs를 사용하여 EC2 인스턴스에 설치 된 Apache의 AccessLog와 ErrorLog를 CloudWatch Logs Agent(awslogs)를 통해 CloudWatch에서 확인
1. EC2용 Policy와 Role 생성
- IAM의 정책 메뉴에서 정책생성, 기존 생성되어 있는 Policy를 사용해도 되지만 Policy를 부터 직접 만들어서 테스트
- 서비스: "CloudWatch Logs" 선택,
작업: "CreateLogGroup", "CreateLogStream", "PutLogEvents", "DescribeLogStreams" 검색해서 선택,
리소스: "모든 리소스" 선택
- 다음으로 정책 이름 "mytest-CloudWatchLogsPolicy" 입력하고 생성
- IAM Role메뉴이동 후 생성버튼 클릭 후 "AWS 서비스"의 "EC2" 선택하고 다음
- 정책추가에서 위에서 생성한 Policy 선택
- Role 이름 간단히 입력(mytest-CloudWatchLogsRoles)하고 생성
2. EC2 인스턴스 생성 및 Apache 설치
- 디폴트 설정으로 생성하고, 인스턴스 세부 구성에서 "IAM 역할"에 위에서 생성한 Role을 선택한다
- 인스턴스 생성 확인, Name은 다른 인스턴스와 구별되도록 'cloudWatchLogs-Apache'로 입력 했음
- Apache 접속을 위해 EC2 SG 80port InBound 열어줌
- EC2 ssh로 접속해서 아래 명령어 실행으로 Apache 설치
# 업데이트 및 루트 권한 변경
sudo yum update -y
sudo -s
# Apache 설치
yum install httpd -y
systemctl start httpd
systemctl enable httpd
- PublicIP로 접속해서 Apache 접속 확인
3. CloudWatch Logs Agent 설치 및 구성
- CloudWatch Logs Agent 설치
# 설치
yum install awslogs -y
- /etc/awslogs/awslogs.conf 파일 설정
vi /etc/awslogs/awslogs.conf
- 파일의 제일 하단에 Apache accessLog, errorLog 전송을 위해 아래 내용 추가
[/var/log/httpd/access_log]
datetime_format = %b %d %H:%M:%S
file = /var/log/httpd/access_log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/httpd/access_log
[/var/log/httpd/error_log]
datetime_format = %b %d %H:%M:%S
file = /var/log/httpd/error_log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/httpd/error_log
- /etc/awslogs/awscli.conf 파일 설정
vi /etc/awslogs/awscli.conf
아래와 같이 자신의 region으로 변경해서 저장
- aws configure로 AWS CLI 환경설정
aws configure
- CloudWatch Logs Agent 실행
systemctl start awslogsd
systemctl enable awslogsd
4. CloudWatch 에서 Log 확인
- CloudWatch 메뉴의 '로그그룹'에서 access_log, error_log 확인
* 최근에는 CloudWatch Agent가 지표 및 로그를 동시에 처리 할 수 있어서 이번 테스트의 CloudWatch Logs Agent를 사용하는 것보다 CloudWatch Agent를 사용하라고 권장하고 있음(참조: https://happy-jjang-a.tistory.com/109)
'개발 > AWS' 카테고리의 다른 글
AWS CodeCommit 시작하기 (0) | 2022.02.24 |
---|---|
AWS Cloud9 살펴보기 (0) | 2022.02.22 |
CloudWatch Event 테스트(EventBridge) (0) | 2022.02.20 |
AWS CloudWatch 이해 및 지표보기 (0) | 2022.02.20 |
AWS Lambda-Layers 테스트 Python (0) | 2022.02.19 |
댓글