Overview
- 인터넷은 가능하나 Inbound가 제한된 환경에 놓인 다수의 임베디드 또는 서버 형태의 Linux 머신들을 관리하기 위한 위한 OpenSSH server container 와 Node.js CLI
- 회사 특성 상 일부분만 자동화가 가능할 것이므로, 일반적인 SSH 접속과 자동화 모두 고려해 클라우드를 통한 SSH 연결을 기반으로 한 자동화를 기획했습니다.
- 다양한 컴퓨터 비전 솔루션 의 배포에 사용되었습니다.
Technology
- 접속 대상 머신에
autosshcontainer 를 docker와 podman으로 이중화된 형태로 설치해 가용성을 높일 수 있음 - 명령을 수행할 장치와 수행할 명령은 json 파일로 정의되고, Node.js CLI는 이 파일들의 경로를 지정해서 실행
- Redis에 stdout, stderr를 임시로 저장하고 SQLite에 영구 저장해 운영 상황을 기록
Lessons
- 저와 팀원들 모두 해당 tool을 사용하지 않더라도 SSH 터널링을 자유자재로 사용할 수 있게 되어 인프라 관리를 수월하게 할 수 있게 되었습니다.
- 팀에 이 tool을 제안하고 개발을 주도하면서 많은 시간과 노력을 아낄 수 있게 되어 뿌듯했습니다.
- CLI 형태를 넘어서 배포된 서비스들에 대한 주기적인 Health check 기능을 가진 웹 애플리케이션으로 확장을 고려했으나, 기회가 주어지지 않아서 아쉬움이 남습니다.