", "log_stream_name": "{instance_id}" } ] } } } } EOF # 5. CloudWatch Agent 에이전트 실행 sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config \ -m ec2 \ -s \ -c file:/opt/aws/amazon-cl"> ", "log_stream_name": "{instance_id}" } ] } } } } EOF # 5. CloudWatch Agent 에이전트 실행 sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config \ -m ec2 \ -s \ -c file:/opt/aws/amazon-cl"> ", "log_stream_name": "{instance_id}" } ] } } } } EOF # 5. CloudWatch Agent 에이전트 실행 sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config \ -m ec2 \ -s \ -c file:/opt/aws/amazon-cl">
#!/bin/bash
# 1. S3에서 애플리케이션 소스 코드 다운로드
aws s3 cp s3://<본인의_S3_버킷_이름>/main.py /home/ec2-user
# 2. 패키지 매니저 업데이트 및 필수 프로그램 설치
dnf install python3-pip amazon-cloudwatch-agent -y
pip3 install fastapi sqlalchemy passlib boto3 pymysql pydantic[email] uvicorn
# 3. FastAPI 앱 백그라운드 실행 (로그는 main.log로 저장)
nohup uvicorn main:app \\
--app-dir /home/ec2-user \\
--reload \\
--port 80 \\
--host 0.0.0.0 > /home/ec2-user/main.log 2>&1 &
# 4. CloudWatch Agent JSON 설정 파일 생성
cat <<EOF > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/home/ec2-user/main.log",
"log_group_name": "<생성할_로그_그룹_이름>",
"log_stream_name": "{instance_id}"
}
]
}
}
}
}
EOF
# 5. CloudWatch Agent 에이전트 실행
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \\
-a fetch-config \\
-m ec2 \\
-s \\
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json