반응형
BackEnd 로 FastAPI 를 사용하는데,
AWS 에 서비스를 올릴거라서 로깅은 CloudWatch 를 사용해보기로 했습니다.
로그 저장부터 검색, 삭제까지 너무 편한 기능이 다 있어서,
로깅에 대해서 내가 귀찮은 작업을 안해도되는..ㅎㅎ;
우선 dev 환경인 로컬에서도 aws 의 서비스를 사용하기 위해서 aws 사용자를 추가해야합니다.
사용자 생성
IAM 으로 가서 사용자를 생성합니다.
사용자 > 사용자추가 클릭
다음 > 사용자 생성
생성이 완료되면,
생성된 사용자를 클릭,
액세스 키 만들기 클릭
액세스 키가 생성되면 복사해서 잘 보관해야합니다. 또는 csv 다운로드해서 보관.
watchtower 추가
pip install watchtower
Logger 에 Handler 추가
import watchtower
import logging
handler = watchtower.CloudWatchLogHandler(
log_group_name="my-service",
log_stream_name="my-backend",
)
logger = logging.getLogger(__file__)
formatter = logging.Formatter("[%(levelname)s] %(message)s")
handler.setFormatter(formatter)
handler.setLevel(logging.INFO)
logger.addHandler(handler)
logger.debug("hello - debug")
logger.info("hello - info")
인증을 포함하려면
import boto3
session = boto3.Session(
aws_access_key_id="your_session_key",
aws_secret_access_key="your_session_secret_key",
region_name="your_aws_region_name",
)
handler = watchtower.CloudWatchLogHandler(
boto3_session=session,
log_group_name="my-service",
log_stream_name="my-backend",
)
# boto3_session 이라는 kargs 가 없다면 (최신버전은 아래처럼)
boto3_client = boto3.client("logs",
region_name="your_session_key",
aws_access_key_id="your_session_secret_key",
aws_secret_access_key="your_aws_region_name")
handler = watchtower.CloudWatchLogHandler(
boto3_client=boto3_client,
log_group_name="my-service",
log_stream_name="my-backend",
)
로그 스트림도 생겼고, 클릭해보면,
INFO level 의 로그가 찍혀있는것을 확인할 수 있습니다.
이제 로그는 신경 안써도되겠다..
보존기간이나 3개월로 바꿔놔야지..
728x90
반응형
'AWS' 카테고리의 다른 글
[AWS Lambda] post 로 파라메터 받기 (0) | 2023.08.30 |
---|---|
[Amazon] AWS SES 사용해서 Lambda 에서 E-mail 보내기 (0) | 2023.08.25 |
AWS - RDS - MySQL 사용해보기 (외부접속 설정) (0) | 2023.08.12 |
AWS Cloud9 에서 Selenium 으로 크롤링 하기(Amazon Linux2) (2) | 2023.08.01 |
AWS Cloud9 에서 Selenium 으로 크롤링 하기 (Ubuntu) (0) | 2023.08.01 |
댓글