cloudwatch 에 대해
내가 평가 전을 할 때 한 아주 큰 실수가 있다
바로 cloudwatch 로그는 그 프로그램이 시작해서 로그를 남기기 전까지는 아무 로그 그룹이 만들어지지 않는다는 것이다
일단
mkdir -p /var/log
touch /var/log/nohup.log
chmod 666 /var/log/nohup.log
이런식으로 log를 만들 경로를 미리 지정하는 것이 좋다
sudo yum install awslogs -y
그리고 설치 후에
sed 's%/var/log/messages%/var/log/nohup.log%g' -i /etc/awslogs/awslogs.conf
sed 's%log_group_name = /var/log/nohup.log%log_group_name = /etc/ec2/skills-test-logs%g' -i /etc/awslogs/awslogs.conf
sed 's%region = us-east-1%region = ap-northeast-2%g' -i /etc/awslogs/awscli.conf
내가 맞추고 싶은 조건대로 바꾼다
여기서 중요한건
/var/log/messages를 /var/log/nohup.log로 꼭 바꿔야 한다
그리고
systemctl restart awslogsd
해주면 보통 생긴다고 했는데 나는 생기지 않았다
대회라 더 긴장해서 긴박했었다
하지만 애플리케이션을 구동하지 않아 내가 지정한 파일이 어떤 로그나 기록이 남지 않는다면 역시나 cloudwatch logs 또한 생성되지 않는다는 것이다
nohup python3.8 /app/app.py > /var/log/nohup.log 2>&1 &
만약 소스코드에 log 를 남기는 파일이 지정되어있지 않는다면 본인이
이런식으로 지정을 해줘야한다
> /var/log/nohup.log 2>&1 &
대충 내가 짠 파일은 python 프로그램이 있어야 실행이 된다
#!/bin/bash
yum update -y
yum install -y jq
amazon-linux-extras install -y python3.8
mkdir -p /var/log
touch /var/log/nohup.log
chmod 666 /var/log/nohup.log
aws s3 cp s3://skills-103-lims/web/v1.zip /
unzip v1.zip -d /app
pip3.8 install -r /app/requirements.txt
sed 's/PasswordAuthentication no/PasswordAuthentication yes/' -i /etc/ssh/sshd_config
echo "1234" | passwd --stdin ec2-user
systemctl restart sshd
sudo yum install awslogs -y
sed 's%/var/log/messages%/var/log/nohup.log%g' -i /etc/awslogs/awslogs.conf
sed 's%log_group_name = /var/log/nohup.log%log_group_name = /etc/ec2/skills-stable-logs%g' -i /etc/awslogs/awslogs.conf
sed 's%region = us-east-1%region = ap-northeast-2%g' -i /etc/awslogs/awscli.conf
systemctl restart awslogsd
nohup python3.8 /app/app.py > /var/log/nohup.log 2>&1 &