AWS Systems Manager
1. 개요
1. 개요
AWS Systems Manager는 Amazon Web Services가 제공하는 클라우드 관리 서비스이다. 이 서비스는 사용자가 AWS 리소스와 온프레미스 시스템을 포함한 IT 인프라를 운영, 관리, 자동화할 수 있도록 설계되었다.
주요 용도는 AWS 및 온프레미스 리소스로부터 운영 데이터를 수집하고, 이에 대한 조치를 수행하는 것이다. 이를 통해 사용자는 서버와 애플리케이션의 상태를 중앙에서 모니터링하고, 운영 작업을 자동화하며, 보안 및 규정 준수 정책을 일관되게 적용할 수 있다.
이 서비스는 클라우드 컴퓨팅 환경에서 IT 운영 관리의 복잡성을 줄여주는 도구로, DevOps 관행과 보안 관리를 강화하는 데 널리 활용된다.
2. 주요 기능
2. 주요 기능
2.1. 운영 관리
2.1. 운영 관리
AWS Systems Manager의 운영 관리 기능은 AWS 및 온프레미스 환경에 배포된 컴퓨팅 리소스의 운영 상태를 통합적으로 가시화하고 관리하는 데 중점을 둔다. 이 기능은 인프라스트럭처 전반에 걸친 운영 데이터를 중앙에서 수집하여 관리자가 시스템의 건강 상태를 실시간으로 파악하고, 문제 발생 시 신속하게 대응할 수 있도록 지원한다.
주요 구성 요소로는 운영 데이터를 수집하는 Inventory와 시스템 상태를 원하는 구성으로 유지하는 State Manager가 포함된다. Inventory는 관리 대상 인스턴스의 소프트웨어, 애플리케이션, 파일, 윈도우 서비스, 네트워크 구성 등에 대한 상세 정보를 자동으로 수집하여 보고서를 생성한다. 이를 통해 조직의 자산 관리와 라이선스 관리, 보안 취약점 평가를 효율적으로 수행할 수 있다.
한편, State Manager는 EC2 인스턴스나 온프레미스 서버와 같은 관리형 노드들에 대해 원하는 구성 상태를 정의하고 자동으로 유지하도록 한다. 예를 들어, 특정 보안 에이전트의 실행 여부나 방화벽 규칙 설정을 상태 문서로 정의하면, State Manager가 주기적으로 점검하여 규정된 상태와 다른 노드를 자동으로 수정한다. 이를 통해 규정 준수를 지속적으로 유지하고 구성의 일관성을 보장하는 DevOps 실천이 가능해진다.
이러한 운영 관리 기능들은 관리자의 수동 개입을 최소화하면서도 IT 운영의 효율성과 안정성을 높이며, 궁극적으로 클라우드 운영의 복잡성을 줄이는 데 기여한다.
2.2. 애플리케이션 관리
2.2. 애플리케이션 관리
애플리케이션 관리는 AWS Systems Manager의 핵심 기능 영역 중 하나로, AWS 상에서 실행되는 애플리케이션의 구성, 배포, 상태 모니터링 및 문제 해결을 중앙에서 관리할 수 있게 해준다. 이 기능을 통해 운영 팀은 애플리케이션의 라이프사이클을 효율적으로 관리하고, 일관된 상태를 유지하며, 장애 발생 시 신속하게 대응할 수 있다.
주요 도구로는 Parameter Store가 있다. 이 서비스는 암호, 데이터베이스 연결 문자열, 라이선스 코드와 같은 구성 데이터를 안전하게 저장하고 버전을 관리한다. 애플리케이션 코드 내에 하드코딩된 민감한 정보를 제거함으로써 보안을 강화하고, 구성 값을 중앙에서 변경하여 여러 인스턴스에 걸쳐 일관된 설정을 적용할 수 있다. 또한 State Manager를 사용하면 애플리케이션이 의존하는 소프트웨어나 에이전트의 설치 및 구성 상태를 원하는 상태로 정의하고 자동으로 유지할 수 있다.
애플리케이션 배포 및 업데이트 과정에서는 Automation 문서를 활용해 복잡한 작업 흐름을 자동화할 수 있다. 예를 들어, 새로운 애플리케이션 버전을 Amazon S3나 GitHub에서 다운로드하고, 서비스 중단 없이 롤링 업데이트를 수행하는 작업을 코드로 정의하여 반복 실행할 수 있다. Inventory 기능을 통해 애플리케이션이 설치된 서버의 소프트웨어 목록, 네트워크 구성, Windows 업데이트 상태 등을 수집하면, 애플리케이션 환경에 대한 가시성을 확보하고 규정 준수 여부를 검증하는 데 도움이 된다.
이러한 기능들은 DevOps 관행의 구현을 지원하며, 인프라 관리와 애플리케이션 관리를 분리하여 개발자와 운영자의 협업을 용이하게 한다. 결과적으로 애플리케이션의 가용성과 안정성을 높이고, 운영 오버헤드를 줄이는 데 기여한다.
2.3. 변경 관리
2.3. 변경 관리
AWS Systems Manager의 변경 관리 기능은 인프라 및 애플리케이션에 대한 변경을 안전하게 계획, 실행, 추적 및 검증하는 데 중점을 둔다. 이는 시스템 변경으로 인한 예상치 못한 중단이나 보안 취약점 발생을 방지하고, 규정 준수를 유지하는 데 핵심적인 역할을 한다.
주요 도구로는 Patch Manager가 있다. 이 구성 요소를 통해 사용자는 운영 체제 및 소프트웨어에 대한 패치 정책을 정의하고, 패치 적용 일정을 자동화하며, 광범위한 EC2 인스턴스와 온프레미스 서버에 걸쳐 패치 상태를 중앙에서 관리할 수 있다. 이를 통해 알려진 취약점에 대한 시기적절한 대응이 가능해지며, 보안 위험을 효과적으로 줄일 수 있다.
또한 State Manager는 인스턴스의 구성 상태를 지속적으로 원하는 상태로 유지하도록 보장한다. 예를 들어, 특정 보안 에이전트의 설치, 방화벽 규칙 구성, 또는 소프트웨어 버전 관리를 자동화된 연관 문서를 통해 정의하고 적용할 수 있다. 이를 통해 구성 드리프트를 방지하고, 모든 시스템이 일관된 보안 및 운영 기준을 준수하도록 한다.
변경 관리 과정에서 Systems Manager는 Change Manager와 같은 기능을 통해 변경 요청의 승인 워크플로를 구성하고, 변경 실행 전후의 시스템 상태를 자동으로 캡처하여 감사 추적을 제공한다. 이는 ITIL 프레임워크 하에서의 통제된 변경 관리를 구현하는 데 도움이 되며, DevOps 팀의 안전한 지속적 배포를 지원한다.
2.4. 노드 관리
2.4. 노드 관리
노드 관리 기능은 AWS 및 하이브리드 클라우드 환경에 배포된 서버와 가상 머신을 중앙에서 관리할 수 있게 해준다. 이 기능을 통해 관리자는 온프레미스 데이터 센터나 다른 클라우드 환경에서 실행되는 EC2 인스턴스가 아닌 서버들도 AWS Systems Manager의 통합 관리 대상으로 등록하고 운영할 수 있다. 이를 위해서는 각 노드에 Systems Manager Agent를 설치해야 하며, AWS Identity and Access Management를 통한 적절한 권한 설정이 필요하다.
노드 관리의 핵심은 인벤토리 수집, 패치 관리, 구성 관리 등이다. Systems Manager는 등록된 모든 노드로부터 운영 체제, 설치된 애플리케이션, 네트워크 구성 등에 대한 상세한 인벤토리 정보를 자동으로 수집한다. 또한 Patch Manager를 이용해 운영 체제와 소프트웨어의 보안 패치 및 업데이트를 일괄적으로 배포하고 관리할 수 있으며, State Manager를 통해 노드의 원하는 구성 상태를 정의하고 유지하도록 할 수 있다. 이는 규모에 상관없이 인프라의 일관성과 보안을 유지하는 데 필수적이다.
2.5. 공유 및 자동화
2.5. 공유 및 자동화
공유 및 자동화는 AWS Systems Manager가 제공하는 핵심 가치 중 하나로, 운영 지식과 작업 절차를 팀 및 조직 전체에서 재사용 가능한 자산으로 전환하는 데 중점을 둔다. 이 기능을 통해 DevOps 팀과 IT 운영 관리 담당자는 반복적이고 수동적인 작업을 자동화하고, 검증된 운영 절차를 문서화하여 팀원들 간에 공유할 수 있다. 이를 통해 운영 효율성을 극대화하고, 인간의 실수를 줄이며, 조직 전체에 일관된 운영 표준을 확산시킬 수 있다.
이를 실현하는 주요 구성 요소는 Automation과 Documents이다. Automation은 AWS 리소스에 대한 운영 및 유지 관리 작업을 자동화하는 엔진으로, 미리 정의된 스크립트나 단계를 실행하여 패치 적용, 인스턴스 생성/종료, 백업 수행 등의 작업을 자동으로 처리한다. Documents는 이러한 자동화 작업이나 Run Command를 통해 실행할 수 있는 스크립트와 명령어, 절차를 JSON 또는 YAML 형식으로 정의한 템플릿이다. AWS에서 제공하는 사전 정의 문서를 사용하거나, 조직의 특정 요구사항에 맞게 커스텀 문서를 생성하여 공유할 수 있다.
이러한 공유 및 자동화 기능은 특히 규모가 크고 복잡한 환경에서 빛을 발한다. 예를 들어, 수백 대의 서버에 대한 보안 업데이트를 적용하거나, 특정 애플리케이션 스택을 반복적으로 배포해야 하는 경우, 한 번 작성된 자동화 문서를 통해 안전하고 일관된 방식으로 작업을 수행할 수 있다. 또한 Parameter Store와 연동하여 자동화 스크립트에 필요한 구성 값이나 비밀번호를 안전하게 관리하며 주입할 수 있어 보안성을 강화한다. 결과적으로 팀은 운영 노하우를 코드화하고 공유함으로써 협업 효율을 높이고, 더 빠르고 안정적인 서비스 운영을 가능하게 한다.
3. 핵심 구성 요소
3. 핵심 구성 요소
3.1. Session Manager
3.1. Session Manager
Session Manager는 AWS Systems Manager의 핵심 구성 요소로서, EC2 인스턴스, 온프레미스 서버, 가상 머신 등 관리형 노드에 대한 보안 셸(SSH) 또는 원격 데스크톱 프로토콜(RDP) 클라이언트 없이도 안전한 브라우저 기반 셸 액세스와 CLI 세션 관리를 제공한다. 이를 통해 사용자는 퍼블릭 IP 주소를 노출하거나 바스티온 호스트를 유지 관리할 필요 없이, AWS Management Console, AWS CLI, 또는 AWS Tools for PowerShell을 통해 직접 리소스에 연결하여 운영 작업을 수행할 수 있다.
이 서비스는 세션 활동을 자동으로 로그에 기록하고 Amazon S3 버킷이나 Amazon CloudWatch Logs에 저장할 수 있으며, 모든 세션 데이터는 TLS 1.2를 사용하여 암호화되어 전송된다. 또한 AWS Identity and Access Management 정책을 통해 특정 사용자나 리소스에 대한 세션 시작 권한을 세밀하게 제어할 수 있어, 보안 및 규정 준수 요구사항을 강화하는 데 기여한다. Session Manager는 인스턴스에 에이전트만 설치하면 되므로, 네트워크 구성 변경이나 방화벽 규칙 개방이 최소화되어 운영 부담을 줄인다.
3.2. Run Command
3.2. Run Command
Run Command는 AWS Systems Manager의 핵심 구성 요소 중 하나로, AWS 인스턴스와 온프레미스 서버를 포함한 관리형 노드에서 원격으로 명령을 안전하게 실행할 수 있는 기능이다. 이 서비스를 통해 시스템 관리자는 SSH나 원격 데스크톱 프로토콜과 같은 직접적인 연결 없이도 대규모 서버 그룹에 대해 스크립트나 명령을 일괄적으로 수행할 수 있다. 이를 통해 패치 적용, 소프트웨어 설치, 구성 변경, 서비스 재시작 등 일상적인 운영 작업을 자동화하고 효율화할 수 있다.
Run Command를 사용하려면 먼저 대상이 되는 EC2 인스턴스나 하이브리드 환경의 서버에 Systems Manager Agent가 설치되어 있어야 한다. 관리자는 AWS Management Console, AWS CLI, 또는 AWS SDK를 통해 실행할 명령과 대상 노드를 지정한다. 지원되는 명령은 운영 체제별로 미리 정의된 AWS Systems Manager 문서 형태로 제공되며, 사용자가 직접 쉘 스크립트나 PowerShell 스크립트를 포함한 사용자 정의 문서를 생성하여 사용할 수도 있다.
이 서비스의 주요 장점은 실행 결과에 대한 높은 가시성과 안전한 접근 제어에 있다. 모든 명령 실행은 AWS CloudTrail에 기록되어 감사 추적이 가능하며, 명령 출력은 Amazon S3 버킷이나 Amazon CloudWatch Logs에 저장되어 나중에 검토할 수 있다. 또한 AWS Identity and Access Management를 통해 특정 사용자나 역할이 어떤 명령을 어떤 리소스에 대해 실행할 수 있는지를 세밀하게 제어할 수 있어 보안을 강화한다.
Run Command는 Patch Manager나 State Manager 같은 다른 Systems Manager 기능의 기반이 되기도 한다. 예를 들어, Patch Manager는 내부적으로 Run Command를 활용하여 패치를 배포한다. 이를 통해 DevOps 팀은 운영 작업을 코드로 정의하고, 일관된 방식으로 배포하며, 인프라의 규정 준수 상태를 지속적으로 유지 관리할 수 있다.
3.3. State Manager
3.3. State Manager
State Manager는 AWS Systems Manager의 핵심 구성 요소 중 하나로, EC2 인스턴스 및 온프레미스 서버와 같은 관리형 노드의 구성 상태를 원하는 상태로 정의하고 자동으로 유지 관리하는 서비스이다. 사용자는 JSON 또는 YAML 형식으로 작성된 문서인 상태 관리자 연결(State Manager Association) 을 생성하여, 특정 소프트웨어의 설치, 윈도우 레지스트리 설정 구성, 스크립트 실행 등 원하는 구성 상태를 정의한다. 이 연결은 대상 노드 그룹에 적용되며, Systems Manager 에이전트가 설치된 노드는 정기적으로 자신의 상태를 정의된 상태와 비교하여 차이가 발생하면 자동으로 수정 작업을 수행한다.
주요 기능은 크게 구성 기준선 관리와 지속적인 규정 준수 유지로 구분된다. 예를 들어, 보안 강화를 위해 모든 서버에 특정 안티바이러스 소프트웨어가 항상 실행되도록 하거나, 애플리케이션 서버군의 웹 서버 구성 파일을 일관되게 유지하는 데 사용할 수 있다. State Manager는 패치 관리나 일회성 명령 실행과 달리, 시간이 지나도 설정된 정책이 지속적으로 적용되어 구성 드리프트를 방지한다.
이 서비스는 크론 표현식을 이용한 스케줄링이 가능하여, 특정 시간에만 구성이 적용되도록 하거나 주기적인 점검을 자동화할 수 있다. 또한 IAM을 통한 세밀한 접근 제어를 지원하며, AWS CloudTrail과 통합되어 모든 구성 변경 사항을 감사 로그로 기록할 수 있어, IT 감사 및 규정 준수 요구사항을 충족하는 데 도움을 준다. 이를 통해 운영 팀은 수동 개입을 최소화하면서 대규모 인프라의 일관성과 보안을 효율적으로 관리할 수 있다.
3.4. Patch Manager
3.4. Patch Manager
AWS Systems Manager의 Patch Manager는 AWS 및 온프레미스 서버와 가상 머신에 대한 운영 체제 및 애플리케이션 패치 관리를 자동화하는 핵심 구성 요소이다. 이를 통해 시스템 관리자는 보안 업데이트와 기능 패치를 대규모로 일관되게 배포하고, 패치 준수 상태를 중앙에서 모니터링할 수 있다.
Patch Manager는 Windows Server와 다양한 Linux 배포판을 지원하며, AWS EC2 인스턴스뿐만 아니라 하이브리드 클라우드 환경의 물리적 서버 및 VMware 가상 머신에도 패치를 적용할 수 있다. 관리자는 사전 정의된 패치 기준을 사용하거나 자체적인 패치 정책을 구성하여 특정 유형의 업데이트만 선택적으로 설치하도록 제어할 수 있다. 패치 작업은 유지 관리 기간을 예약하여 실행할 수 있어, 애플리케이션 가용성에 미치는 영향을 최소화한다.
이 서비스는 패치 배포의 전 과정을 추적하고 상세한 보고서를 생성한다. 이를 통해 관리자는 어떤 인스턴스에 패치가 성공했는지, 실패한 경우 그 원인은 무엇인지 쉽게 파악할 수 있다. 또한 규정 준수 보고 기능을 통해 조직의 내부 보안 정책이나 GDPR, HIPAA와 같은 외부 규제 요구사항을 충족하는지 지속적으로 점검할 수 있다.
Patch Manager의 자동화된 접근 방식은 IT 운영 팀의 수작업 부담을 크게 줄여주며, 시스템의 보안 취약점을 신속하게 해결함으로써 잠재적인 보안 위협으로부터 인프라를 보호하는 데 기여한다. 이는 DevOps 문화에서 강조하는 안정성과 보안을 유지하면서도 운영 효율성을 높이는 데 핵심적인 역할을 한다.
3.5. Inventory
3.5. Inventory
Inventory는 AWS Systems Manager의 핵심 구성 요소 중 하나로, AWS 및 온프레미스 환경에 배포된 컴퓨팅 리소스에 대한 상세한 메타데이터를 자동으로 수집, 정리 및 시각화하는 서비스이다. 이를 통해 관리자는 서버(EC2 인스턴스), 가상 머신, 컨테이너 인스턴스 등 모든 관리 노드에 설치된 소프트웨어, 운영체제 구성, 네트워크 설정, 애플리케이션 목록 등의 정보를 중앙 집중식으로 확인할 수 있다.
이 서비스는 정기적으로 또는 온디맨드 방식으로 인벤토리 데이터를 수집하며, 수집된 정보는 Amazon S3 버킷이나 Systems Manager 콘솔에 저장되어 조회 및 분석이 가능하다. 사용자는 사전 정의된 여러 인벤토리 유형(예: 애플리케이션, AWS 구성 요소, 파일, 윈도우 레지스트리 키 등)을 통해 필요한 정보를 체계적으로 수집할 수 있으며, 사용자 정의 인벤토리 유형을 생성하여 특정 요구사항에 맞는 데이터를 수집할 수도 있다.
주요 활용 목적은 IT 자산 가시성 확보, 보안 및 규정 준수 상태 평가, 운영 효율성 향상에 있다. 예를 들어, 특정 보안 패치가 적용되지 않은 시스템을 빠르게 식별하거나, 라이선스 관리가 필요한 특정 버전의 소프트웨어가 설치된 인스턴스를 찾는 데 유용하게 사용된다. 수집된 인벤토리 데이터는 AWS Security Hub나 Amazon Athena 같은 다른 AWS 서비스와 통합되어 더 포괄적인 분석 및 대응을 가능하게 한다.
3.6. Automation
3.6. Automation
AWS Systems Manager의 Automation은 AWS 리소스에 대한 반복적이고 수동적인 운영 및 관리 작업을 자동화하는 기능이다. 사용자가 정의한 플레이북을 실행하여 인스턴스의 패치 적용, AMI 생성, EC2 인스턴스 시작 및 중지와 같은 작업을 자동으로 수행할 수 있다. 이를 통해 운영 효율성을 높이고 인적 오류를 줄일 수 있다.
Automation은 문서 형식으로 정의된 플레이북을 사용하며, AWS에서 제공하는 사전 정의된 문서를 사용하거나 사용자가 직접 JSON 또는 YAML 형식으로 커스텀 문서를 작성할 수 있다. 실행은 일정에 따라, EventBridge를 통한 이벤트에 의해, 또는 수동으로 트리거될 수 있다. 실행 중인 작업의 진행 상태는 실시간으로 모니터링할 수 있다.
이 기능은 특히 데브옵스 및 지속적 통합/지속적 배포 파이프라인에서 유용하게 활용된다. 예를 들어, 새로운 애플리케이션 버전 배포 시 자동으로 로드 밸런서에서 인스턴스를 순차적으로 제거하고 업데이트한 후 다시 등록하는 롤링 업데이트 프로세스를 구현할 수 있다. 또한 보안 정책에 따라 불필요한 IAM 사용자 액세스 키를 주기적으로 비활성화하는 등의 규정 준수 작업도 자동화할 수 있다.
Automation 실행은 AWS Identity and Access Management를 통해 세부적으로 제어할 수 있으며, 실행 내역과 결과는 AWS CloudTrail 및 Amazon CloudWatch와 통합되어 감사 및 모니터링에 활용된다. 이를 통해 조직은 복잡한 운영 작업을 안전하고 추적 가능한 방식으로 자동화할 수 있다.
3.7. Parameter Store
3.7. Parameter Store
AWS Systems Manager의 Parameter Store는 구성 데이터 관리와 비밀 관리(Secrets Management)를 위한 안전한 계층적 스토리지 서비스이다. 애플리케이션 코드에 하드코딩된 데이터베이스 연결 문자열, 라이선스 코드, 서버 구성 설정과 같은 민감한 정보를 일반 텍스트나 일반 설정 파일에 저장하는 대신, 암호화된 상태로 중앙 집중식으로 안전하게 저장하고 관리할 수 있도록 설계되었다.
이 서비스는 표준 파라미터와 고급 파라미터로 구분된다. 표준 파라미터는 무료로 제공되며, 고급 파라미터는 AWS Key Management Service를 이용한 암호화, 파라미터 정책을 통한 버전 관리 및 만료 일자 설정, 대규모 파라미터 처리 성능 향상 등의 고급 기능을 제공한다. 저장된 파라미터는 폴더와 같은 계층적 구조로 구성할 수 있어, 애플리케이션, 환경(개발/스테이징/운영), 지역별로 설정값을 효율적으로 그룹화하고 관리하는 데 유용하다.
Parameter Store는 AWS Lambda, Amazon Elastic Compute Cloud, 컨테이너 오케스트레이션 서비스 등 다른 AWS 서비스와 긴밀하게 통합되어 있다. 예를 들어, AWS CloudFormation 템플릿에서 직접 파라미터를 참조하여 인프라 배포 시 필요한 설정값을 동적으로 주입하거나, AWS CodeBuild 및 AWS CodePipeline에서 빌드 및 배포 파이프라인의 설정값을 관리하는 데 활용할 수 있다. 또한 Systems Manager의 Run Command나 State Manager 같은 다른 기능과 연동되어 운영 자동화 스크립트에 필요한 구성 값을 안전하게 제공하는 역할도 수행한다.
이를 통해 개발 및 운영 팀은 애플리케이션의 비밀 정보와 구성 데이터를 코드와 분리할 수 있어, DevOps 실천법 중 하나인 구성 관리의 효율성을 높이고 보안 위험을 줄일 수 있다. 또한 중앙에서 값을 한 번만 변경하면 이를 참조하는 모든 애플리케이션과 리소스에 자동으로 반영되므로, 설정 변경 관리의 정확성과 운영 효율성을 크게 향상시킨다.
4. 이점
4. 이점
AWS Systems Manager를 도입하면 IT 운영 및 관리 효율성을 크게 높일 수 있다. 가장 큰 이점은 AWS와 온프레미스에 걸쳐 있는 서버, 가상 머신, 컨테이너 등 컴퓨팅 리소스를 단일 대시보드에서 통합적으로 관리할 수 있다는 점이다. 이를 통해 운영 팀은 복잡한 다중 환경 인프라를 일관된 방식으로 제어하고, 수동 작업을 줄이며, 운영 오류를 최소화할 수 있다.
또한, 자동화 기능을 통해 반복적이고 시간 소모적인 운영 작업을 스크립트나 플레이북 형태로 정의하여 실행할 수 있다. 예를 들어, 패치 적용, 소프트웨어 설치, 구성 변경과 같은 작업을 자동화함으로써 운영 효율성을 극대화하고, 인적 실수를 줄이며, 규정 준수 상태를 지속적으로 유지할 수 있다. 이는 DevOps 문화를 실천하는 데 핵심적인 도구가 된다.
보안과 관련하여 Systems Manager는 중요한 구성 정보나 암호와 같은 데이터를 안전하게 저장하고 관리하는 Parameter Store와 같은 기능을 제공한다. 또한, Session Manager를 통해 SSH나 원격 데스크톱 프로토콜과 같은 전통적인 포트 개방 없이도 인스턴스에 대한 보안 세션을 수립할 수 있어, 인프라의 공격 표면을 줄이고 보안 상태를 강화하는 데 기여한다.
5. 작동 방식
5. 작동 방식
AWS Systems Manager는 AWS 계정 내에서 관리하는 EC2 인스턴스, 온프레미스 서버, 가상 머신과 같은 컴퓨팅 리소스를 통합적으로 제어하기 위한 프레임워크를 제공한다. 작동의 핵심은 관리 대상 노드에 설치되는 SSM 에이전트이다. 이 에이전트는 AWS 관리 콘솔, AWS CLI, 또는 SDK를 통해 Systems Manager로부터 전달되는 명령과 정책을 수신하고 실행하며, 노드의 구성 및 상태 정보를 다시 Systems Manager에 보고하는 역할을 한다.
Systems Manager의 기능은 대부분 문서라는 JSON 또는 YAML 형식의 템플릿을 통해 정의되고 실행된다. 예를 들어, Run Command로 명령을 실행하거나, State Manager로 원하는 구성을 유지할 때, 혹은 Automation으로 복잡한 작업을 자동화할 때 이 문서가 사용된다. 사용자는 AWS가 제공하는 미리 정의된 문서를 사용하거나, 자신의 운영 절차에 맞게 커스텀 문서를 작성하여 재사용할 수 있다.
관리되는 노드들의 세부 정보는 Systems Manager 인벤토리에 자동으로 수집된다. 이 인벤토리는 설치된 응용 프로그램, 운영 체제 패치 수준, 네트워크 구성 등 다양한 메타데이터를 중앙에서 조회할 수 있게 하여, 자산 관리와 규정 준수 평가의 기초를 제공한다. 또한, Parameter Store를 통해 패스워드, 데이터베이스 연결 문자열 등의 구성 데이터를 안전하게 저장하고 버전을 관리하여, 에이전트가 필요한 시점에 이러한 파라미터를 안전하게 참조할 수 있도록 한다.
이러한 구성 요소들은 AWS Identity and Access Management와 통합되어 세분화된 접근 제어가 가능하며, Amazon CloudWatch 및 AWS CloudTrail과 같은 서비스와 연동되어 작업 실행 이력 모니터링과 감사 추적을 제공한다. 결과적으로 Systems Manager는 분산된 리소스에 대한 가시성을 확보하고, 수동 개입을 줄이며, 안전하고 일관된 운영 상태를 유지할 수 있도록 하는 중앙 관리 플랫폼으로 작동한다.
6. 사용 사례
6. 사용 사례
AWS Systems Manager는 다양한 IT 운영 시나리오에서 광범위하게 활용된다. 대표적인 사용 사례로는 하이브리드 클라우드 및 멀티 클라우드 환경에서의 통합 관리가 있다. Systems Manager 에이전트를 통해 AWS EC2 인스턴스뿐만 아니라 온프레미스 서버, VMware 가상 머신, Amazon EC2 외의 다른 클라우드 공급자 인스턴스까지도 하나의 통합된 인터페이스에서 운영 데이터를 수집하고 관리 작업을 수행할 수 있다. 이를 통해 기업은 분산된 인프라를 일관된 방식으로 제어할 수 있다.
보안 및 규정 준수 강화 또한 주요 사용 사례이다. Patch Manager를 이용해 운영 체제 및 애플리케이션에 대한 보안 패치 배포를 자동화하고, Inventory를 통해 인스턴스에 설치된 소프트웨어와 구성 관리 상태를 지속적으로 추적할 수 있다. State Manager는 서버의 보안 구성, 방화벽 설정, 안티바이러스 상태 등을 원하는 기준 상태로 자동 유지하도록 구성하여, 보안 정책 위반을 사전에 방지하고 감사 요구 사항을 충족하는 데 도움을 준다.
DevOps 및 자동화 워크플로우에의 통합도 빈번하게 이루어진다. Automation 문서를 사용하여 인스턴스 생성, AMI 생성, 로드 밸런서에 인스턴스 등록과 같은 반복적인 작업을 자동화할 수 있다. Run Command는 대규모 서버 군집에 대해 스크립트 명령을 원격으로 안전하게 실행하여 배포나 문제 해결 작업을 단순화한다. 또한 Parameter Store에 애플리케이션 구성 정보와 데이터베이스 연결 문자열, 라이선스 키 같은 민감한 데이터를 안전하게 저장하고 버전을 관리하여, 코드 배포 시 구성 관리를 효율적으로 할 수 있게 지원한다.
7. 관련 서비스
7. 관련 서비스
AWS Systems Manager는 Amazon Web Services 생태계 내에서 여러 다른 AWS 서비스와 긴밀하게 통합되어 작동한다. 이 통합을 통해 사용자는 Systems Manager의 관리 및 자동화 기능을 다양한 AWS 리소스에 쉽게 적용할 수 있다.
주요 통합 서비스로는 Amazon Elastic Compute Cloud가 있다. Systems Manager 에이전트를 EC2 인스턴스에 설치하면 해당 인스턴스를 관리 노드로 등록하여 패치 적용, 구성 관리, 인벤토리 수집 등을 수행할 수 있다. 또한 AWS Identity and Access Management와의 통합은 Systems Manager 작업 실행에 필요한 세분화된 접근 권한을 관리하는 데 필수적이다.
Amazon CloudWatch와의 통합을 통해 Systems Manager는 운영 데이터를 수집하고, CloudWatch 지표와 로그를 모니터링하며, 설정된 알람 조건에 따라 자동화된 조치를 실행할 수 있다. AWS CloudTrail을 사용하면 Systems Manager API 호출을 기록하여 감사 및 규정 준수 요구사항을 충족하는 데 도움이 된다.
이 외에도 AWS Config를 통한 리소스 구성 변경 추적, Amazon Simple Storage Service를 이용한 명령 실행 결과 또는 인벤토리 데이터 저장, AWS Key Management Service와 통합된 Parameter Store를 통한 안전한 구성 데이터 관리 등 광범위한 연동이 가능하다. 이러한 관련 서비스들과의 긴밀한 협업을 통해 Systems Manager는 클라우드 컴퓨팅 환경의 IT 운영 관리와 DevOps 워크플로우를 강력하게 지원한다.
8. 여담
8. 여담
AWS Systems Manager는 아마존 웹 서비스의 광범위한 관리 서비스 포트폴리오의 일부를 구성한다. 이 서비스는 클라우드 컴퓨팅 환경과 하이브리드 클라우드 환경에서의 IT 운영 관리 복잡성을 줄이기 위해 지속적으로 진화하고 있으며, DevOps 문화와 자동화 원칙을 실천하는 데 중요한 도구로 자리 잡았다.
서비스의 발전 과정에서 온프레미스 서버 및 가상 머신과 같은 AWS 외부 리소스까지 관리 범위를 확장한 점이 주목할 만하다. 이를 통해 고객은 단일 관리 창구를 통해 통합된 운영 체계를 구축할 수 있게 되었다. 또한, Parameter Store와 같은 기능은 애플리케이션 구성 정보와 암호를 안전하게 저장하는 중앙 저장소 역할을 하여, 보안 관리와 규정 준수 요구사항을 충족시키는 데 기여한다.
Systems Manager는 단독으로 사용되기보다는 AWS Config, AWS CloudTrail, Amazon CloudWatch 등의 다른 AWS 관리 및 모니터링 서비스와 긴밀하게 통합되어 작동한다. 이러한 조합을 통해 사용자는 인프라의 구성 변경 사항을 추적하고, 사용자 활동을 로깅하며, 리소스 성능을 모니터링하는 등 포괄적인 운영 가시성을 확보할 수 있다. 이는 현대적인 클라우드 네이티브 애플리케이션 운영에 필수적인 요소이다.
