2024/04 5

[AWS] EC2 경보 생성 및 SQS 알림 받기 (재시동)

개요 문제 : EC2 인프라가 메모리 부족으로 웹서버 자체가 다운되는 현상 발생 EC2에 경보를 달고 일정 조건을 충족하면, 인프라 재부팅 및 웹서버 재실행을 통해 복구 하기로 함 EC2 경보 설정 1. EC2 인스턴스 경보상태 탭에서 경보 추가 2. 경보 생성 3. 경보 알림 이름 작성 4. 경보 작업 -> [재부팅, 종료, 시작 등] 5. 경보 임계값 - CPU 사용율 / 상태 검사 실패 둘중 하나 / 네트워크 바이트 량 등등 - 임계값 80% 설정 - 경보 이름, 경보 설명 작성 6. 기존 서버의 평균 그래프 확인 - 임계값 설정이 애매하면, 그래프를 통해 확인도 가능 7. 셋팅 완료 EC2 SNS설정 AWS SNS 서비스 1. 주제 생성 2. 유형 및 이름 설정 (FIFO -> Amazone SQ..

AWS/AWS 일반 2024.04.21

[Django Ninja] 배포용 도커파일 (Dockerfile)

Dockerfile 기본적으로 Multi-Builder 사용 (builder-image / runtime-image) 만약 linux 에서 제공하는 도구(vi 등)를 쓰고 싶다면 설치 후 runtime-image 에 복사 해야 함 프로젝트명 : mysite / 실행 log는 ./access.log 에 기록 배포는 uvicorn에 gunicorn을 worker로 사용하여 실행 (worker 갯수는 cpu 코어 갯수 * 2) 로컬에 배포 하고 싶다면 ${SERVER_IP} 를 수정 (ex. 127.0.0.1 / 0.0.0.0 ) #################### Server Build #################### FROM python:3.11-slim AS builder-image RUN apt..

[좋은 API 설계하기] API 응답 시 모든 상태코드 200 고정

배경 API 설계시 일부 기업이나 방법론 중 모든 상태 코드를 200으로 처리하는 방법이 종종 거론되곤 한다. 관련 링크 : https://okky.kr/questions/661303 (카더라긴 하지만 댓글에 기타 정보 내용이 있음) 일반적으로 응답 코드는 요청에 대한 상태를 나타내는 HTTP 상태 코드(Status code)와, 에러에 대한 정보를 담은 세부 에러 코드(Error code)로 나뉘며 일반적인 처리는 상태 코드별로 > 세부 에러 코드를 나누는 것이 일반적이다. 위에 말한 방법은 상태 코드를 통일하고 > 세부 에러 코드로 통합 하는 것 이다. 모든 상태코드를 200으로 고정하여 처리 하는 경우 주된 목적 : HTTP Status Code가 노출 될 시 보안에 위험이 있을 수 있음 (ex...

[Utils] 파이썬 반올림 구현 (ft. 사사오입, round 함수 )

반올림 종류 파이썬 round() 반올림 함수는 기본적으로 오사오입의 방식을 따른다. 반올림 종류 사사오입 (Rounding half up) : 4 이하 버림, 5 이상 올림 오사오입 (Rounding half to even) : 5 미만 버림, 5 초과 올림 / 5는 앞자리가 홀수인 경우 올림, 짝수인 경우 버림 => 수를 짝수로 만들어 주는 방식 ex) 35 -> 40 / 25 -> 20 / python의 round() 함수 오사육입 (Rounding half down) : 5 이하 버림, 5 초과 올림 관련 링크 반올림 위키 : https://ko.wikipedia.org/wiki/%EB%B0%98%EC%98%AC%EB%A6%BC python3 round() 함수 링크 : https://docs...

[기타] 슬랙 커스텀 앱 봇 만들기

셋팅 방법 1. 슬랙 워크 스페이스의 앱에 대한 기본 Key 및 옵션 설정 다음 링크 참조 2. 최종 Key 획득 다음 key들은 프로젝트 내 환경변수로 관리 SIGNING SECRET : ... hash SLACK_BOT_TOKEN : xoxb- ... SLACK_APP_TOKEN(=Socket Token) : xapp-... 3. 로컬 프로젝트 생성 슬랙 API 에서 공식 지원하는 - Bolt Python 으로 작성 [링크] 슬랙 API 사용 중 필요 권한은 1. 에서 계속 추가 설정 코드 배포 4. 슬랙 채널에 앱 추가 5. 트러블 슈팅 설치할 봇 사용자가 없습니다. : 앱 명을 자꾸 바꾸다가 발생하였었음