직접 만든 소프트웨어, 두 가지 개발 기록 구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다. MediaMTX 스트리밍 제어 서버Docker Compose 구성과 파일·라이브·멀티캐스트 송출 RTSP CCTV 관제·분석 프로그램관제 그룹, 영역·출입선, 이벤트 이력을 연결하는 구조 전체 글175 GitHub Actions SSH Permission denied (publickey) 해결: 배포 서버와 저장소 인증 구분 GitHub Actions에서 Permission denied (publickey)가 나오면 먼저 실패한 접속의 목적지와 사용자를 확인하세요. 러너가 배포 서버에 들어가지 못한 경우와, 서버에 들어간 다음 git fetch가 GitHub에서 거부된 경우는 공개키 등록 위치가 다릅니다. 한 키를 여러 위치에 다시 붙여 넣는 방식보다 연결을 두 단계로 나누는 것이 먼저입니다.이 글은 OpenSSH 기반 Linux 배포 서버와 SSH GitHub 인증을 사용하는 흐름을 다룹니다. 서드파티 배포 Action마다 입력값 형식이 다르므로 해당 Action의 고정 버전 문서도 함께 확인해야 합니다. 문서 확인 기준일은 2026-10-10입니다. 실제 러너·서버에 접속하거나 개인키를 읽지 않았으며 명령은 진단 예시입니.. 2026. 10. 12. Docker port is already allocated 해결: Compose 호스트 포트 충돌 점검 Docker 시작 과정의 port is already allocated는 먼저 오류에 표시된 호스트 포트를 누가 사용하는지 확인해야 합니다. 컨테이너 안의 앱 포트를 무작정 바꾸거나 서버를 재부팅하기 전에 Docker 컨테이너와 호스트 리슨 프로세스를 구분하세요. 다른 서비스가 정상 사용 중이면 새 서비스의 호스트 매핑을 변경하는 것이 가능한 해결책입니다.적용 범위는 Docker Engine·Docker Desktop과 Compose V2의 일반적인 bridge 포트 공개입니다. network_mode: host는 같은 ports 예제로 처리하지 않습니다. 명령은 2026-10-10 공식 문서 확인에 기반한 예시이며 실제 운영 서버에서 실행한 기록이 아닙니다. Linux의 ss와 macOS의 lsof는 .. 2026. 10. 12. AWS Backup과 EBS DLM 비교: 스냅샷 보존·복구 운영 선택 기준 EBS 스냅샷과 EBS 기반 AMI의 생성·보존·삭제를 자동화하려면 Amazon Data Lifecycle Manager(DLM)를, 여러 AWS 서비스와 계정의 백업 정책을 함께 관리하려면 AWS Backup을 먼저 비교하세요. 스냅샷이 만들어졌다는 사실과 서비스가 복구된다는 사실은 다릅니다. 선택의 마지막 기준은 실제로 필요한 복구 절차를 운영팀이 수행할 수 있는지입니다.이 글은 EC2에 연결된 EBS 볼륨의 정책 선택을 다룹니다. 인스턴스 스토어 데이터나 데이터베이스 전용 백업을 EBS 스냅샷과 동일하게 취급하지 않습니다. 문서·과금 항목 확인 기준일은 2026-10-10입니다. 실제 단가나 복구 소요 시간을 측정하지 않았으며 아래는 문서에 기반한 설계·검수 예시입니다.같은 스냅샷을 쓰더라도 관리 .. 2026. 10. 11. Tailscale와 Cloudflare Tunnel·Access 비교: 내부 관리자 접속 방식 선택 기준 내부 웹 관리자만 브라우저로 열게 하려면 Cloudflare Tunnel과 Access를 함께 검토하고, SSH·데이터베이스 등 여러 사설 서비스를 직원 단말에서 이용해야 한다면 Tailscale을 검토하세요. 이 기준은 선택을 위한 출발점입니다. Tunnel은 연결 경로를 만들고 Access는 사용자를 통제하므로, 터널을 만들었다는 사실만으로 관리자 페이지가 인증된 것은 아닙니다.적용 대상은 회사 또는 개인이 운영하는 내부 관리자 서비스입니다. 공개 홈페이지 배포, Tailscale Funnel, Cloudflare의 다른 네트워크 제품 전체를 같은 기능으로 비교하지 않습니다. 제품별 최신 플랜과 운영체제 지원은 도입 시 공식 문서를 확인하세요. 아래 절차는 2026-10-10 문서 확인에 기반한 설계.. 2026. 10. 11. Kubernetes ProgressDeadlineExceeded 해결: rollout timeout·readiness·새 Pod 점검 Kubernetes 배포에서 “ProgressDeadlineExceeded”가 표시되거나 kubectl rollout status가 시간 초과로 끝나나요? 먼저 Deployment가 새 버전으로 진행하지 못한 것인지, 명령줄의 대기 제한만 끝난 것인지 구분해야 합니다. 새 Pod의 이벤트·준비 상태·실제 가용 복제본을 읽으면 이미지 문제, 스케줄링, readiness, 자원 제한을 분리할 수 있습니다. 제한 시간을 무작정 늘리기 전에 멈춘 단계를 확인하세요.1. 명령의 --timeout과 Deployment 진행 제한은 다릅니다kubectl rollout status 안내의 --timeout은 상태 확인 명령이 얼마나 기다릴지를 정합니다. Deployment의 spec.progressDeadlineSec.. 2026. 10. 7. Docker DNS 오류 해결: Temporary failure in name resolution·서비스 이름·VPN 점검 Docker 컨테이너에서 “Temporary failure in name resolution”, “Could not resolve host”, “getaddrinfo EAI_AGAIN”이 보이나요? DNS 오류라고 해서 공용 DNS 주소를 바로 덮어쓰는 것은 해결 순서가 아닙니다. Compose 서비스 이름이 안 풀리는지, 외부 도메인이 안 풀리는지, 이름은 풀렸지만 포트 연결이 실패하는지를 나누어 확인하면 문제 범위를 좁힐 수 있습니다.1. 오류가 발생한 이름과 실행 위치를 먼저 기록하기호스트 터미널에서 성공한 이름 조회가 컨테이너 안에서도 성공한다는 보장은 없습니다. 컨테이너의 네트워크·리졸버 경로를 따로 확인해야 합니다. 같은 URL이라도 앱 컨테이너, 빌드 단계, CI 작업 중 어느 위치에서 실패.. 2026. 10. 7. 이전 1 2 3 4 ··· 30 다음