본문으로 건너뛰기
김신건의 로그

[AWS] Systems Manager: 노드 운영 도구 모음 (인덱스)

· 수정 · 📖 약 5분 · 1,902자/단어 #aws #cloud #ssm #systems-manager #operations #management
AWS Systems Manager, Systems Manager, SSM, SSM overview, AWS SSM

정의

AWS Systems Manager (SSM) 는 AWS / 온프레미스 / 멀티클라우드에 걸친 노드 (서버, 인스턴스, VM, IoT 등) 를 대규모로 안전하게 관리 / 운영 하는 도구 모음. 접속, 실행, 패치, 구성, 감사, 자동화, 인벤토리 등 서버 라이프사이클 전반을 다루는 여러 기능이 하나의 우산 (SSM) 아래 묶여 있다.

핵심 정체성: “SSH / RDP 로 서버에 로그인해서 손으로 하던 모든 것” 을 대체 하는 관리 플랫폼.

대부분 기능은 무료. 일부 고급 옵션 (Advanced Parameter Store, Change Manager 등) 만 과금.

왜 필요한가

전통 서버 운영의 문제:

  • SSH / RDP 열어놔야 접속 가능 = 공격 표면 증가
  • 배스천 호스트 = 별도 인프라 유지 비용
  • 자격증명 관리 = SSH 키, 비밀번호 유출 위험
  • 수동 반복 작업 (패치, 재시작, 로그 수집 등) = 규모 불가
  • 온프레미스 + 클라우드 혼재 = 도구 분산
  • 감사 = 누가 언제 무엇을 했는지 추적 어려움

SSM 의 답: 이 모든 것을 한 서비스 + IAM 권한 + SSM Agent + 아웃바운드 HTTPS 하나 로 통합.

관리형 노드 (Managed Node) 라는 전제

SSM 의 모든 기능은 관리형 노드 에 대해 작동. 세 가지 요건.

flowchart LR
    Node["EC2 / 온프레미스 서버 / 타 클라우드 VM"]

    Node --> Agent["SSM Agent 설치<br/>(대부분 AWS AMI 는 기본 포함)"]
    Node --> Role["IAM 역할<br/>AmazonSSMManagedInstanceCore"]
    Node --> Net["아웃바운드 HTTPS<br/>(인터넷 or VPC Endpoint)"]

    Agent -.->|"이 세 가지 갖춰지면"| Managed["관리형 노드로 등록"]
    Role -.-> Managed
    Net -.-> Managed

    Managed --> Features["모든 SSM 기능 사용 가능"]

핵심 통찰: SSM 은 인바운드 포트를 열지 않는다. SSM Agent 가 아웃바운드 HTTPS 로 SSM 서비스에 지속 연결해두고, 관리자는 SSM 서비스를 통해 명령을 보낸다. 이 방향 역전이 배스천 없는 접근을 가능하게 한다.

프라이빗 서브넷 노드의 경우 인터넷 접근 대신 VPC Endpoint 3 개 (ssm, ssmmessages, ec2messages) 로 프라이빗 통신 가능.

SSM 기능 지도

SSM 은 여러 독립 기능의 집합. 각 기능은 아래 표로 정리하되, 상세는 각 위키에서.

핵심 기능 (주요 dedicated wiki)

기능한 줄 요약자세히
Session Manager배스천/포트 없이 브라우저·CLI 셸 접속, 완전 감사Session Manager
Run Command다수 노드에 명령을 원격 병렬 실행 (SSH X)Run Command
Patch ManagerPatch Baseline 기반 OS 패치 정기 자동화Patch Manager
Parameter Store계층적 구성값 + 경량 비밀 (KMS SecureString)Parameter Store
Automation여러 단계 운영 워크플로 (런북) + 승인 게이트Automation
State Manager노드가 원하는 상태를 지속 유지 (드리프트 방지)State Manager

보조 기능 (개요)

주요 기능만큼 큰 페이지가 필요하지 않은 소단위 기능들.

기능정리
Maintenance Window작업 실행 시간 창 예약. Patch Manager / Automation / Run Command 의 스케줄러 역할. cron 표현으로 매주 일요일 03:00 UTC 4시간 창 등을 정의하고, 그 안에서 태스크가 순차/병렬 실행.
Inventory각 노드의 설치된 SW / 서비스 / 파일 / 레지스트리 인벤토리를 자동 수집. AWS-GatherSoftwareInventory 문서로 실행되며 결과는 Athena 로 조회 가능. “우리 조직에 OpenSSL 몇 대에 어떤 버전이?” 같은 질문에.
Fleet Manager관리형 노드를 웹 UI 로 원격 관리 (파일시스템 탐색, 로그, 성능, 프로세스, RDP 등). SSH / RDP 없이 콘솔에서.
Distributor커스텀 소프트웨어 패키지를 노드에 배포/버전 관리. Chef/Puppet/Ansible 없이 표준 방식으로. AWS-ConfigureAWSPackage 로 실행.
OpsCenter / Explorer운영 이슈 (OpsItem) 를 중앙 집계 + 조사 대시보드. CloudWatch Alarm, Config, Security Hub 발견을 통합 티켓처럼.
Incident Manager인시던트 자동 대응 (런북 실행, 담당자 호출, 채팅 통합). PagerDuty 대안.
Change Manager / Change Calendar변경 승인 워크플로 + 변경 금지/허용 일정. 특정 기간 (블랙아웃) 동안 프로덕션 변경 자동 차단.

어떤 기능을 언제 쓰나 (요약)

목적별 즉답 매핑.

상황해당 기능
SSH 포트 안 열고 접속 / 배스천 제거Session Manager
다수 서버에 지금 스크립트 일괄 실행Run Command
매주 정기 보안 패치 자동Patch Manager + Maintenance Window
설정값 저장 + 비용 최소Parameter Store
DB 비밀번호 자동 회전 필요Secrets Manager (SSM 아님)
AMI 만들고 인스턴스 교체하고 DNS 업데이트Automation
인스턴스가 항상 특정 에이전트 설치 유지State Manager
AMI ID 하드코딩 없이 참조Parameter Store Public Parameter
조직 내 특정 SW 몇 대에 설치?Inventory
GUI 로 원격 노드 관리Fleet Manager
정해진 시간에만 패치 실행Maintenance Window
커스텀 SW 패키지 배포/업데이트Distributor
인시던트 자동 대응Incident Manager
프로덕션 변경 승인 워크플로Change Manager

전체 아키텍처

flowchart TB
    subgraph Users["사용자"]
        Adm["관리자<br/>(콘솔/CLI/SDK)"]
        App["애플리케이션<br/>(Lambda/ECS 등)"]
    end

    subgraph SSM["Systems Manager"]
        SM["Session Manager"]
        RC["Run Command"]
        PM["Patch Manager"]
        PS["Parameter Store"]
        AU["Automation"]
        StM["State Manager"]
        MW["Maintenance Window"]
        Inv["Inventory"]
        FM["Fleet Manager"]
    end

    subgraph Managed["관리형 노드"]
        EC2["EC2"]
        OnPrem["온프레미스"]
        Other["타 클라우드"]
    end

    Adm --> SSM
    App --> PS

    SSM <-->|"아웃바운드 HTTPS<br/>(SSM Agent 지속 연결)"| Managed

    SSM --> Audit["CloudTrail (감사)"]
    SSM --> Log["CloudWatch / S3 (로그)"]
    SSM --> Compl["Compliance Dashboard"]

설계 원칙:

  • 모든 통신은 SSM Agent 아웃바운드 → SSM 서비스
  • 관리자는 SSM 서비스로만 명령 (직접 노드 접근 없음)
  • IAM 정책이 유일한 인증
  • 모든 활동은 CloudTrail 감사

요금

  • 대부분 무료: Session Manager, Run Command, State Manager, Patch Manager, Standard Parameter Store, Compliance, Inventory, Fleet Manager 등
  • 일부 유료:
    • Automation: 월 100,000 스텝 무료, 초과 스텝당 과금
    • Advanced Parameter Store: 파라미터당 월 요금
    • Change Manager, Incident Manager: 별도 요금
  • 하위 서비스 (S3, CloudWatch Logs, KMS 등) 요금 별도

시작 (최소 준비)

새 계정에서 SSM 을 처음 활성화하는 순서.

  1. IAM Instance Profile 생성: AmazonSSMManagedInstanceCore 정책 부착
  2. EC2 에 profile 부착: 신규는 시작 시, 기존은 attach
  3. SSM Agent 확인: Amazon Linux 2/2023, Ubuntu 최신 AMI 는 기본. 아니면 수동 설치
  4. 프라이빗 서브넷의 경우: VPC Endpoint 3 개 (ssm, ssmmessages, ec2messages)
  5. 테스트: aws ssm start-session --target i-xxx 로 셸 접속 성공하면 완료
  6. 필요 기능 활성화: Patch Manager baseline, Parameter Store 계층 등 순차 도입

함정

WARNING

SSM Agent + IAM Instance Profile 이 없으면 관리형 노드 아님. 두 조건 동시 확인.

CAUTION

프라이빗 서브넷 노드는 VPC Endpoint 3개 (ssm, ssmmessages, ec2messages) 필수. 없으면 관리 불가.

WARNING

관리 계정만 SCP 미적용. 조직에서 관리 계정이 곧 SSM 통제 대상에서 예외라는 의미. 관리 계정 최소 사용.

IMPORTANT

한 SSM 안에 기능이 너무 많음. 어떤 기능이 뭘 하는지 명확히 하지 않고 도입하면 이 기능 저 기능 흩어져 관리 어려움. 각 기능별 wiki 로 나눠서 이해 필요.

CAUTION

관리자 IAM 권한 남용. ssm:* + Resource: * 는 곧 조직 모든 노드 셸 접근권. 최소 권한 + 태그 조건 필수.

WARNING

자동 회전 기능은 SSM 에 없음. DB 비밀번호 등 자동 회전 필요하면 Secrets Manager.

관련 위키 (SSM 기능 상세)

주요 dedicated wiki

상호작용 서비스

이 글의 용어 (16개)
[AWS] CloudTrail (API Activity Logging)cloud
정의 AWS CloudTrail 은 AWS 계정의 API 호출 및 사용자 활동을 기록 하는 감사 로깅 서비스입니다. "누가, 언제, 어디서, 어떤 API 를, 어떤 리소스에 대해…
[AWS] CloudWatch: 메트릭, 로그, 알람cloud
정의 CloudWatch = AWS 의 모니터링 + 로그 + 알람 통합 서비스. 메트릭 수집, 로그 집계, 대시보드, 알람, 이상 감지를 하나의 서비스에서 제공. 사용 상황 | …
[AWS] Config (Resource Configuration Tracking)cloud
정의 AWS Config 는 AWS 계정 안 리소스의 구성 (configuration) 상태를 지속 기록 하고, 정책 규칙 (Config Rules) 위반을 자동 감지하는 서비스…
[AWS] EC2: 인스턴스 타입, AMI, EBScloud
정의 EC2 (Elastic Compute Cloud) = AWS 의 VM 서비스. instance type (CPU / RAM / NW) 결정 + AMI (OS 이미지) + E…
[AWS] EventBridge: 이벤트 버스, 스케줄러, partner sourcescloud
정의 EventBridge = AWS 의 통합 event bus. 옛 CloudWatch Events 의 후계. AWS service 이벤트 + custom 이벤트 + SaaS …
[AWS] IAM: User, Role, Policy, STScloud
정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy 로 구성. "누가 어떤 리소…
[AWS] KMS: 암호화 키 관리, envelope encryptioncloud
정의 KMS (Key Management Service) = 암호화 키 중앙 관리. envelope encryption + IAM 통합 + 감사 로그. 키 종류 | 종류 | 의미…
[AWS] S3: object storage, storage classes, lifecyclecloud
정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability (99.999999999%), 무한 확장. 2026…
[AWS] Secrets Manager + Parameter Storecloud
정의 AWS Secrets Manager = 회전이 필요한 비밀 (DB 패스워드, API key) 을 안전하게 저장/관리하는 서비스. Lambda 기반 자동 회전과 암호화 내장.…
[AWS] SSM Automation: 운영 워크플로 런북cloud
정의 AWS SSM Automation 은 여러 단계로 이루어진 운영 워크플로를 런북 (runbook) 이라는 문서로 정의하고 실행 하는 Systems Manager 기능. 각 …
[AWS] SSM Parameter Store: 계층적 구성/비밀 저장cloud
정의 AWS SSM Parameter Store 는 구성 값 (configuration) 과 경량 비밀 (secret) 을 계층적 이름으로 저장하는 관리형 키-값 저장소. 처럼 …
[AWS] SSM Patch Manager: OS 패치 자동화cloud
정의 AWS SSM Patch Manager 는 수십 - 수천 개의 EC2 / 온프레미스 서버에 OS 및 애플리케이션 패치를 정책 기반으로 자동 적용 하는 Systems Mana…
[AWS] SSM Run Command: 다수 서버 명령 실행cloud
정의 AWS SSM Run Command 는 하나의 API 호출로 수십 - 수천 개의 EC2 및 온프레미스 서버에 명령을 원격 실행 하는 Systems Manager 기능. SS…
[AWS] SSM Session Manager: 배스천 없는 셸 접속cloud
정의 AWS SSM Session Manager 는 Systems Manager 의 셸 접속 기능. SSH / RDP 포트를 열지 않고, 배스천 호스트도 없이, 브라우저 / CL…
[AWS] SSM State Manager: 원하는 상태 유지cloud
정의 AWS SSM State Manager 는 관리형 노드 (EC2, 온프레미스) 가 항상 정의된 상태를 유지하도록 정기적으로 확인 + 적용 하는 Systems Manager …
[AWS] VPC: Virtual Private Cloudcloud
정의 VPC (Virtual Private Cloud) = AWS 안의 논리적 격리 네트워크. CIDR 정의 + subnet 분할 + 라우팅. AWS 리소스를 격리된 네트워크에 …

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기