컨테이너에서만 타임아웃 난 MySQL SSH 터널 추적기
호스트에서는 응답하던 SSH DB 터널이 복제 컨테이너에서만 시간 초과될 때 연결을 구간별로 확인한 기록입니다.
분류
이 주제로 남긴 기록 33편
호스트에서는 응답하던 SSH DB 터널이 복제 컨테이너에서만 시간 초과될 때 연결을 구간별로 확인한 기록입니다.
얼쑤의 Compose·Nginx 블루그린 배포가 요청과 악보 변환을 어떻게 이어가는지, 격리 시험과 운영 전환에서 무엇을 확인했는지 설명합니다.
5초간 MySQL 복제를 끊어 쓰기 차단의 효과를 비교하고, 운영에서는 저장을 유지하기로 한 이유를 정리했습니다.
MySQL 통합 테스트의 데이터와 접속 경로를 실행마다 분리하고, DB가 종료된 뒤 데이터 폴더를 정리하는 절차를 설명합니다.
Mattermost의 슬래시 명령을 서버별 읽기 전용 점검으로 제한하고, 응답이 실제로 확인한 범위를 표시한 과정을 소개합니다.
HTTP 요청은 정상이었지만 기동 때마다 오류가 남던 블로그 편집 API에서 Gunicorn 제어 소켓을 원인으로 좁히고, 읽기 전용 설정을 유지한 채 해결한 과정을 정리했습니다.
얼쑤에서 배포 중단과 서버 장애를 나눠 보고, 두 서버에서 Kubernetes가 맡을 수 있는 일과 접속·데이터 복구에 필요한 조건을 검토했습니다.
Docker의 마지막 용량 조회만 실패시켜 기존 점검표와 앞선 값을 보존하는 개선안을 비교했습니다.
얼쑤에서 Docker의 로그 전송 설정, 수신 규칙, 날짜별 파일을 대조해 기록이 어디서 끊겼는지 확인한 과정을 소개합니다.
얼쑤의 Android QA 목록에서 제목과 작성자가 비어 있는 문제를 추적하고, 조회를 작은 묶음으로 나눠 운영에서 복구한 과정을 소개합니다.
CI에서 만든 JAR을 이미지 빌드에 재사용하고, 이미지에서 꺼낸 바이트를 SHA-256으로 대조한 과정입니다.
웹 배포를 전용 수동 잡으로 나누고, 검증한 소스 SHA와 운영 웹 릴리스가 일치하는지 확인했습니다.
Flyway를 앱 교체 직전에 실행하도록 배포를 바꾸고, 이전 앱이 새 스키마에서도 동작하도록 적용 범위와 실패 처리를 정한 과정입니다.
Nginx 설정을 파일 단위로 마운트한 환경에서 inode를 유지하며 변경을 반영하고, 컨테이너와 HTTP 응답에서 확인했습니다.
Jenkins의 단계별 시간으로 실행기 대기와 Wasm 최적화 병목을 구분하고, 같은 입력에서 최적화 시간과 파일 크기를 비교했습니다.
완료 조건과 재현 단계, 수행 결과를 같은 번호로 연결하고 경계값의 기대 결과가 빠진 시나리오를 찾았습니다.
키에 객체가 없을 때만 저장하는 PUT을 기본값으로 삼고, SDK가 보낸 HTTP 요청 세 건으로 원본 보존과 명시적 교체를 확인했습니다.
새 백업 도구 설치 직후의 오류를 같은 호스트에서 이전 버전으로 비교하고, 백업을 받는 쪽에서 상태를 확인했습니다.
운영 서버는 정상인데 Play 배포판만 App Links 문서에서 빠졌던 상황과, 공개 JSON에서 패키지 두 항목을 확인한 과정을 정리했습니다.
후보 JAR의 SQL을 Flyway 이력과 대조하면서 줄바꿈, BOM, 후행 공백을 구별하는 CRC32 검사를 운영 이력으로 검증했습니다.
약관 문서 배포와 시행 시각을 따로 관리하면서 생긴 4시간 반의 차이를 살펴봅니다.
로컬 브랜치의 현재 값과 커밋 관계를 검사해 빨리 감기하고, Push는 명시적인 refspec으로 목적지를 정했습니다.
zsh 변수 확장과 SSH 자동 포워딩을 거치며 명령이 예상보다 일찍 실패한 세 기록을 묶었습니다.
root의 Compose 검사는 통과하고 Jenkins는 같은 파일을 읽지 못했던 장애를 재현하고, 실제 실행 계정으로 검사하는 설치 절차를 만들었습니다.
분석 컨테이너의 첫 요청에서 Numba 캐시 오류를 재현하고, 실행 계정의 권한을 유지한 채 캐시 경로를 바꿔 확인했습니다.
같은 설치 명령을 다시 실행해 이전 사본을 덮은 경험에서, 재실행 전에 확인할 조건과 원본을 보존하는 방법을 정리했습니다.
인증을 추가한 뒤 배포 검사에 쓰던 404가 401로 바뀌었습니다. 후보의 liveness와 운영의 readiness를 나눠 배포를 검증한 과정입니다.
병합 직후 완료로 표시됐지만 운영에서는 404였던 약관 API를 계기로, 작업 상태와 실제 완료 조건을 따로 확인한 사례입니다.
생성 요청의 400, 요청과 달랐던 담당자, 7초 차이로 생긴 중복 작업을 살펴보고 실제 저장 상태를 확인한 방법을 정리했습니다.
작업 트리를 바꾸지 않는 병합 검사와, 실제 병합 뒤 스키마 제약까지 확인하는 DB 테스트를 구분했습니다.
운영 프로필에서 등록되지 않던 업무 API를 연결하고, 미리 마이그레이션한 MySQL에서 약관 HTTP 200과 Flyway 빈의 부재를 확인했습니다.
분석 이미지에서 Python과 FFmpeg의 버전을 맞추고, 실행 파일뿐 아니라 설치된 디코딩 라이브러리까지 확인했습니다.
Mac에서 Docker 이미지와 저장소 대역을 검증하며 VM 디스크 부족과 파일 공유 범위를 따로 확인했습니다.