← 전체 글 보기

ROS와 인증을 분리하다: 디바이스 등록 CLI로 복구 시간을 줄인 설계

로봇 등록 로직이 ROS 프로세스 안에 깊게 묶여 있으면, 인증서 문제 하나가 전체 서비스 가용성 문제로 번진다.

그래서 등록/인증 기능을 별도 CLI 모듈로 분리하는 방향을 선택했다. 목표는 하나였다. ROS 상태와 무관하게 등록 상태를 제어할 수 있는 구조.

문제 정의

기존 방식의 한계는 분명했다.

운영 관점에서는 이 세 가지가 모두 치명적이다.

분리 전략

핵심은 책임을 분리하는 것이다.

이렇게 나누면 등록 실패를 런타임과 독립적으로 처리할 수 있다.

설계 기준

CLI 모듈은 아래 조건을 만족해야 한다.

  1. Python 의존성 최소화 및 단독 실행 가능
  2. 인증서 상태 조회/검증 명령 제공
  3. 등록 실패 시 재시도 정책과 에러 코드 표준화
  4. 배포 파이프라인에서 비대화형 실행 가능

CLI 인터페이스 예시

agent-cert register --device-id robot-001 --profile standard
agent-cert verify --device-id robot-001
agent-cert rotate --device-id robot-001 --non-interactive

에러코드를 고정해두면 자동 복구 파이프라인이 단순해진다.

기대 효과

이 구조를 적용하면 운영에서 바로 이점이 생긴다.

결과적으로 같은 기능을 더 빨리 만드는 것이 아니라, 같은 기능을 더 안정적으로 운영할 수 있게 된다.

복구 런북

등록/인증을 CLI로 분리하면 현장 접근 없이도 원격 복구 시나리오를 안정적으로 실행할 수 있다.

참고 및 인용

참고: AWS Fleet Provisioning은 디바이스 등록/인증서 발급 자동화 흐름을 공식 지원한다. Provisioning devices that don’t have device certificates

참고: X.509 클라이언트 인증서는 디바이스 신뢰 체계와 정책 기반 접근 제어의 핵심 요소다. X.509 client certificates

참고: ROS 문서는 런타임 책임 분리와 노드 경계 설계를 위한 기초 참조다. ROS Documentation