Search

Systems Manager

Systems Manager
여러 AWS 리소스를 그룹화하여 운영 및 유지보수를 자동화하고 효율적으로 관리하기 위한 서비스
Systems Manager는 "AWS 리소스" 또는 "온프레미스 서버""SSM Agent"가 설치되어 있어야 한다.
설치 방법

Systems Manager로 EC2 인스턴스에 접근하기 위해서

Systems Manager는 기본적으로 EC2 인스턴스에서 작업할 권한이 없음
IAM instance profile(인스턴스 프로파일)을 사용하여 권한을 부여해야 한다.
IAM instance profile : IAM Role을 EC2 인스턴스에 연결하는 컨테이너
EC2에 접근할 수 있는 IAM Role을 생성해 IAM instance profile에 연결해야 한다.

Systems Manage의 여러 서비스

Patch Manager
운영 체제(OS) 패치 관리 : Windows, Linux, Ubuntu, CentOS, RHEL등 다양한 OS를 지원
EC2 인스턴스나 온프레미스 서버OS(운영체제) 정보를 스캔하고 자동으로 Patch:패치(업데이트)를 하는 서비스이다.
Patch Baseline(패치 기준선, 규칙) 설정: 어떤 패치가 허용되거나 금지되는지 정의한다.
1)AWS 측에서 미리 정의된 기본 베이스라인2)사용자 정의 베이스라인이 있다.
OS의 종류에 따라 "어떤 패치를", "언제 적용할지" 등의 패치의 베이스라인(패치 적용 규칙)을 작성하여 자동으로 실행되도록 한다.

Patch Manager를 사용하는 방법

AWS Systems Manager에 EC2 인스턴스를 등록 (SSM Agent 활성화 필요)
Patch Manager에서 사전 정의된 Patch Baseline 사용
Maintenance Window를 생성하여 일정에 맞춰 자동 패치 수행
Session Manager 
Session Manager는 AWS Console이나 AWS CLI를 통해 EC2 인스턴스에 안전하게 로그인 할 수 있는 기능이다.
(특히 아주 쉽게 AWS Console에서 몇번의 클릭만으로 터미널로 EC2 인스턴스에 접속가능하다)
Session Manager를 통해 로그인하면, 로그인 대상 인스턴스에 대해 Security Group 등으로 SSH 통신 허가 설정
(포트 개방, whitelist관리)이 필요 없어져 보안이 강화된다.
보안 강화 : 즉, SSH나 RDP로 직접 인스턴스에 접속하지 않기 때문에 보안 관리에 있어서 더욱 안전하다.
키 페어(SSH 키) 관리가 필요 없어져 운영이 간편하다.
프라이빗 서브넷에 있는 인스턴스에도 중간 서버(bation server) 없이 접속이 가능하다.
Parameter Store
데이터베이스/애플리케이션 등에 접근할 때 필요한 파라미터(예: 로그인 인증 정보 등)를 관리하는 서비스이다.
애플리케이션에서 AWS 리소스에 접근할 때 Parameter Store에서 파라미터를 가져옴으로써 로그인 정보를 애플리케이션에 하드코딩하거나 평문으로 입력할 필요가 없다. → 좀 더 안전하다
Parameter Store에서는 "SecureString Parameter"을 사용하여 민감한 데이터를 암호화된 형태로 저장한다. (이 때 AWS KMS를 사용하여 암호화 복호화 한다.)
[Parameter Store의 파라미터 유형(Type)]
String : 일반 문자열 값을 저장한다
SecureString : 민감한 정보를 안전하게 저장한다 (AWS KMS를 사용하여 암호화된다) 
StringList : 문자열 목록을 저장한다 (여러 개의 값을 콤마(,)로 구분하여 저장할 수 있다) 
Run Command
EC2 인스턴스 또는 온프레미스의 서버에 원격으로 접속해 명령어/스크립트를 실행 할 수 있는 기능
SSH나 RDP로 접속하지 않고도 명령어를 실행하고, 이를 통해 명령어/스크립트 실행을 자동화할 수 있다.
보안 강화 : SSH 등을 애초에 사용하지 않기에 더욱 안전하다
Patch Manager와 차이점: Run Command는 명령어 실행에 적합하고 Patch Manager는 좀더 OS의 범위의 패치 적용적합하다.

사용 예시: EC2 인스턴스에서 yum update 명령 실행

Systems Manager → Run Command  → AWS-RunShellScript → Commands 필드
aws ssm send-command \ --instance-ids i-1234567890abcdef0 \ --document-name "AWS-RunShellScript" \ --parameters 'commands=["yum update -y"]' \ --comment "Running yum update to apply security patches"
Shell
복사
Automation
AWS 리소스에 대한 반복적인 관리 작업을 Runbook(workflow: 일련의 작업)에 따라 자동화 하는 기능이다.
AWS가 미리 정의된 작업(예: 인스턴스 재부팅) 또는 사용자가 커스터마이즈한 워크플로우를 생성할 수 있다.
Systems Manager Automation을 사용하면 수동 작업이 줄어들어 인적 오류의 위험이 감소하고, 운영 효율성과 보안이 향상되어 AWS 리소스 관리를 보다 효율적이고 안전하게 수행할 수 있다.
Systems Manager Automation은 EventBridge와 연동하여 특정 이벤트 발생 시 런북을 실행할 수 있다.
예를 들어, 매일 일정한 시간에 EC2 인스턴스를 자동으로 시작 및 중지할 수 있다.

사용 사례

EC2 인스턴스 자동 재부팅
특정 EC2 인스턴스가 비정상적으로 동작하면 자동으로 재부팅
특정 태그가 없는 리소스 삭제
EC2, RDS 등 태그가 없는 리소스를 자동 삭제 (비용 절감)
보안 그룹 규칙 제거
0.0.0.0/0(퍼블릭 접근)이 허용된 보안 그룹을 감지 후 자동 제거