CloudWatch Logs를 사용하여, EC2에서 구동 중인 서버의 로그를 Push 시켜 AWS 서비스에서 로그를 중앙 집중화할 수 있도록 하고자 한다.
실습
1. IAM 역할 생성
- AWS 서비스에 IAM을 검색한 뒤, 역할 -> 역할 만들기를 클릭한다.
- AWS 서비스, EC2를 선택하고 다음을 클릭한다.
- CloudWatchAgentServerPolicy를 검색한 뒤, 선택 후 다음을 클릭한다.
- 이후, 역할 이름을 입력하고 역할 생성을 클릭한다.
2. EC2 역할 연결
- 역할을 적용할 인스턴스 우클릭 -> 보안 -> IAM 역할 수정을 클릭한다.
- 1번에서 생성한 역할을 선택하고 역할을 적용한다.
3. CloudWatch 로그 그룹 생성
- AWS 서비스에 CloudWatch를 입력하고, 로그 그룹 -> 로그 그룹 생성을 클릭한다.
- 로그 그룹 이름을 입력한다.
- 보존 설정을 추가한다. 만기 없음으로 선택 시 요금이 발생할 수 있기 때문에 조심해야 한다.
4. CloudWatch 로그 스트림 생성
- 로그 스트림 생성 버튼을 클릭한 후, 로그 스트림을 생성한다.
5. EC2에 접속해서 CloudWatchAgent 설치하기
다음 명령어를 입력하여 amazon-cloudwatch-agent를 설치한다.
sudo yum install amazon-cloudwatch-agent
config.json에 다음과 같은 내용을 작성한다.
sudo vi /opt/aws/amazon-cloudwatch-agent/bin/config.json
{
"agent": {
"metrics_collection_interval": 60,
"region": "ap-northeast-2",
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/home/ec2-user/spring-study/logback-study/logs/test1.log",
"log_group_name": "test-log-group",
"log_stream_name": "test-log-1"
}
]
}
}
}
}
- metrics_collection_interval: 지표가 수집될 빈도
- run_as_user: CloudWatch 에이전트를 실행하는 데 사용할 사용자 지정
- log_group_name: 3번에서 생성한 로그 그룹
- log_stream_name: 지정 안하면 자동으로 생성한다.
cloudWatchAgent를 실행한다.
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -s -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
cloudWatchAgent 상태 확인
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
'AWS' 카테고리의 다른 글
[AWS Chatbot] CodeDeploy 배포 결과 Slack 알림 연동 (0) | 2023.01.13 |
---|---|
[AWS] EC2 인스턴스 자동 종료 및 실행 (0) | 2022.10.24 |