직접 만든 소프트웨어, 두 가지 개발 기록 구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다. MediaMTX 스트리밍 제어 서버Docker Compose 구성과 파일·라이브·멀티캐스트 송출 RTSP CCTV 관제·분석 프로그램관제 그룹, 영역·출입선, 이벤트 이력을 연결하는 구조 소프트웨어개발156 AWS ALB와 Nginx 비교: 로드 밸런서 비용·TLS·운영 책임 선택 기준 AWS에서 웹 API를 운영할 때 Application Load Balancer(ALB)에 트래픽 분산을 맡길지, Nginx를 직접 운영할지 고민하게 됩니다. AWS의 가용 영역과 컨테이너 서비스에 맞춰 운영 부담을 줄이려면 ALB를 먼저 검토할 수 있습니다. 프록시 설정을 세밀하게 통제하거나 여러 실행 환경에서 같은 구성을 유지해야 한다면 자체 Nginx도 후보입니다. 선택할 때는 서버 한 대의 가격보다 필요한 가용성, TLS 처리, 장애 대응 책임을 같은 조건으로 비교해야 합니다.1. 관리형 서비스와 직접 운영하는 소프트웨어의 차이이 글의 비교 범위는 HTTP·HTTPS 웹 서비스의 요청 분산입니다. ALB는 AWS가 운영하는 관리형 로드 밸런서이고, Nginx Open Source는 설치한 서버나 .. 2026. 10. 5. Nginx WebSocket 연결 실패 해결: Upgrade·101·경로·시간 제한 점검 웹페이지와 API는 정상인데 실시간 알림만 WebSocket connection failed로 끊긴다면 일반 HTTP 응답과 WebSocket 연결을 구분해 확인하세요. Nginx 앞뒤의 프로토콜 전환 헤더, 앱의 WebSocket 경로, 인증·Origin 검사, 유휴 시간 제한이 서로 맞아야 합니다. 먼저 연결 시작에 실패하는지, 시작 후 일정 시간이 지나 끊기는지 나누면 불필요한 설정 변경을 줄일 수 있습니다.1. 브라우저 오류 문구보다 실제 연결 요청을 확인하세요이 글은 일반적인 HTTP/1.1 Upgrade 방식으로 Nginx가 앱 서버에 WebSocket을 전달하는 구성을 설명합니다. MDN WebSocket 서버 안내의 핸드셰이크처럼 성공한 전환은 101 Switching Protocols 응.. 2026. 10. 4. Docker bind mount permission denied 해결: 경로·UID·GID·SELinux 점검 Docker 컨테이너에서 /app/data에 파일을 저장할 때 permission denied가 발생한다면 Docker 소켓 권한과 파일 마운트 권한을 먼저 구분하세요. 컨테이너가 이미 실행되고 앱의 파일 쓰기만 실패한다면 연결한 호스트 경로, 실제 프로세스의 사용자 ID, 읽기 전용 설정과 SELinux 정책을 차례로 확인하는 편이 좋습니다. 디렉터리 전체에 chmod 777을 적용하면 증거와 접근 범위를 함께 잃을 수 있습니다.1. 오류가 난 경로와 시점을 먼저 나누세요발생 상황확인할 대상docker.sock 접근에서 거부Docker 데몬 연결 권한·context컨테이너 생성 중 소스 경로 오류데몬 호스트의 실제 경로·경로 생성 권한앱이 마운트 파일을 열 때 거부프로세스 ID·파일 소유자·상위 경로·.. 2026. 10. 4. Amazon SES와 SendGrid 비교: 인증·주문 메일 발송 비용과 운영 기준 회원가입 인증, 주문 확인, 비밀번호 재설정 메일을 앱에서 보내려면 Amazon SES와 Twilio SendGrid 같은 발송 서비스를 검토할 수 있습니다. AWS 구성에 맞춰 발송과 이벤트 처리를 연결하려면 SES를, Email API·SMTP 서비스의 기능과 운영 도구를 함께 비교하려면 SendGrid를 후보로 둘 수 있습니다. 결정할 때는 한 건의 단가와 함께 도메인 인증, 실패한 주소의 처리, 피크 시간의 발송 속도와 운영 인력을 확인해야 합니다.1. 직원용 메일함과 앱 발송 서비스는 역할이 다릅니다이 글은 직원이 로그인해 메일을 읽는 회사 메일함을 비교하지 않습니다. 앱의 이벤트에 따라 수신자에게 메시지를 보내는 트랜잭션 이메일을 대상으로 합니다. 주문 확인과 비밀번호 재설정은 내용·유효시간·.. 2026. 10. 4. AWS EFS와 EBS 비교: 공유 파일·컨테이너 저장소 비용과 선택 기준 AWS에서 컨테이너를 여러 서버에 배치한 뒤 업로드 파일이 어느 서버에서는 보이고 다른 서버에서는 보이지 않는다면 저장소의 공유 방식부터 확인해야 합니다. 한 서버가 사용하는 디스크가 필요하면 EBS를, 여러 실행 환경이 같은 파일 경로를 읽고 써야 하면 EFS를 후보로 검토할 수 있습니다. 두 서비스는 용량 단가만으로 비교하기보다 애플리케이션이 블록 장치와 네트워크 파일 시스템 중 무엇을 요구하는지 먼저 구분해야 합니다.1. EBS는 블록 저장소, EFS는 공유 파일 저장소입니다Amazon EBS 공식 문서에서 EBS는 EC2에 연결하는 블록 장치로 설명합니다. 볼륨과 인스턴스는 같은 가용 영역(AZ)에 있어야 하며, 운영체제에서 파일 시스템을 구성해 디스크처럼 사용합니다. 한 인스턴스의 데이터 디렉터.. 2026. 10. 4. Nginx 499 Client Closed Request 해결: 요청 취소·시간 제한·백엔드 지연 점검 Nginx access log에 499 Client Closed Request가 늘었다면 클라이언트 쪽 연결이 응답 완료 전에 닫혔다는 의미부터 확인해야 합니다. 사용자가 화면을 나갔을 수도 있고, 앱·앞단 프록시의 시간 제한보다 백엔드가 오래 걸렸을 수도 있습니다. Nginx의 시간 제한을 무조건 늘리는 것보다 누가 먼저 연결을 닫았고 어느 구간에서 기다렸는지를 같은 요청의 기록으로 비교해야 원인을 줄일 수 있습니다.1. 499와 504는 관찰한 위치가 다릅니다Cloudflare의 499 공식 설명은 Nginx가 요청을 처리하는 중 클라이언트가 연결을 닫은 상황을 설명합니다. 499는 Nginx에서 쓰는 비표준 값이며, 이미 연결을 끊은 이용자에게 정상적인 HTTP 499 응답이 전달됐다고 가정하면 안.. 2026. 10. 1. 이전 1 ··· 13 14 15 16 17 18 19 ··· 26 다음