"prod 서버 전체에 새 환경 변수 추가해야 해요. 지금 바로요." 개발팀 리더의 메시지다. EC2 인스턴스 150대, 모두 Environment=prod 태그가 붙어 있다. SSH로 한 대씩? 불가능한 일정이다. 이때 운영자가 꺼내는 것이 Run Command다. 명령을 정의하고, 대상을 태그로 지정하고, 동시성과 에러 한도를 설정한 뒤 실행 버튼을 누르면 150대에 동시에 배포된다. 결과는 S3와 CloudWatch Logs에 자동으로 저장되고, 실패한 인스턴스는 OpsCenter에 OpsItem으로 자동 생성된다.
오늘 다루는 Run Command, State Manager, Maintenance Window는 "SSM 운영 자동화 3종 세트"다. 이 세 도구는 각각 "지금 한 번(Run Command)", "항상 이 상태로(State Manager)", "이 시간에 이 작업(Maintenance Window)"을 담당한다. 셋의 역할을 명확히 구분하는 것이 SOA-C02 시험의 핵심 포인트 중 하나다.
Run Command는 단순해 보이지만 내부적으로 정교한 분산 시스템이다. 운영자가 send-command를 호출하면 어떤 일이 일어나는가.