nginx를 이용해 서버를 띄우고, 띄운 서버의 로그를 aws cloudwatch로 남겨보자.
우선! nginx를 이용해 서버를 띄우는 부분은 고수 [알리의 블로그 🚀]를 참고하면 해결 가능!
하지만 나는 이렇게 하고 나서도 단번에 해결되지 않았는데, 그 이유는 cloudwatch logs agent를 설치할 때 나의 미스테이크때문에 발생한 것이었다.
우선 EC2의 IAM role을 설정한 뒤, 서버에 cloudwatch logs agent를 설치해야한다.
$ curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
$ sudo python ./awslogs-agent-setup.py --region ap-northeast-2
두번째 suo python 명령어를 입력하면 다운로드가 되다가, 여러 옵션들이 뜰 텐데 여기서 주의가 필요하다.
- AWS access key ID : Press Enter if using an IAM role. Otherwise, enter your AWS access key ID.
- AWS secret access key : Press Enter if using an IAM role. Otherwise, enter your AWS secret access key.
- Default region name : Press Enter. The default is us-east-2. You can set this to us-east-1, us-west-1, us-west-2, ap-south-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1, or sa-east-1.
- Default output format : Leave blank and press Enter.
- Path of log file to upload : The location of the file that contains the log data to send. The installer suggests a path for you.
- Destination Log Group name : The name for your log group. The installer suggests a log group name for you.
- Destination Log Stream name : By default, this is the name of the host. The installer suggests a host name for you.
- Timestamp format : Specify the format of the time stamp within the specified log file. Choose custom to specify your own format.
- Initial position : How data is uploaded. Set this to start_of_file to upload everything in the data file. Set to end_of_file to upload only newly appended data.
우선 IAM role을 이미 지정한 상태라면 AWS access key Id, AWS secret access key에서 무조건 엔터를 눌러야한다. 다른 것을 입력하면 오류가 발생한다.
만약 이미 무언가라도 입력한 상태이고, vi /var/log/awslogs.log에 다음과 같은 메시지가 떠있으며,
vi ~/.aws/credentials 를 했을 때 비어있지 않고 무언가 작성되어있다면 내용을 삭제하고, sudo python ~ 부분을 다시 실행한 뒤 모든 옵션에서 엔터를 치면 해결된다!