System Manager 란?

System Manger는 수작업 스크립트 작성 등이 필요한 유지보수 작업을 돕는 도구로 다음과 같은 업무를 수행합니다.

참고 : https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/what-is-systems-manager.html
 

AWS Systems Manager란 무엇입니까? - AWS Systems Manager

AWS Systems Manager란 무엇입니까? AWS Systems Manager는 AWS 클라우드에서 실행되는 애플리케이션 및 인프라를 관리하는 데 도움이 되는 기능 모음입니다. Systems Manager는 애플리케이션 및 리소스 관리를

docs.aws.amazon.com

- 온프레미스와 EC2 패키지 업그레이드
- 설치 소프트웨어 목록 생성
- 새 애플리케이션 설치
- EBS 스냅샷을 이용한 AMI 이미지 생성
- IAM 인스턴스 프로파일 부착
- S3 버킷에 대한 퍼블릭 접근 차단 
System Manger 주요 기능
  • 액션 (Action)
  • 인사이트 (Insights)

 

액션 (Actions)
  • 자동화(Automation) 액션 : AWS 리소스에 대한 작업을 수행
    • 다수의 EC2 인스턴스 재시작 , CloudFormation 스택 업데이트 ,AMI 패치등의 작업을 일괄처리 가능
    • 또한, 개별 작업을 세분화 방식으로 처리 하거나 일괄적으로 전체 자동화 업무 처리 , 단계적 처리 등을 할 수 있습니다.
    • 자동화 액션은 한 번에 몇개의 리소스를 처리 대상으로 삼을지 숫자 or 퍼센트로 설정 가능
  • 명령 (Command) 액션 : Linux  or Windows 인스턴스에 대한 작업을 수행
    • 자동화 액션이 AWS리소스에 작업 수행이라면 Run 명령은 대상 인스턴스에 대한 작업 수행 <로그인 없이 접속 및 커스텀 스크립트 실행을 위해 서드파티 도구 실행>
    • EC2 인스턴스에 설치된 에이전트를 통해 관련 작업 수행 <Window Server / Amazon Linux / Ubuntu Server AMI등에 기본적 설치되어 있음 , 이외에는 수동 설치 가능>
    • 다양한 문서를 제공하고 있으며, AWS-InstallApplication 문서는 window 소프트웨어 / RunShellScript는 Linux등 소프트웨어별 다양한 문서를 제공한다.
    • 대상은 태그로 필터링 or 개별 선택 가능 , 자동화 옵션 사용시 , 한 번에 다중 인스턴스 지정 가능
  • 정책 (Policy) 액션 : 관리 중인 인스턴스로부터 목록 데이터를 수집하는 과정을 정의
  • Session Manager :  세션 매니저는 시큐리티 그룹, NACL에서 인바운드 포트 개방 없이 혹은 퍼블릭 서브넷에 인스턴스를 두지 않고도 Linux와 인스턴스에 대한 Bash 및 PowerShell 접속을 지원합니다.
    • Bastion 설정 및 SSH 키 없이 다이렉트로 SSM을 통해 접속이 가능합니다.(모든 Linux 버전 및 Window Server 2008 R2 부터 최신의 2016까지 지원합니다.)
    • 웹 콘솔 or AWS CLI로 시작 가능 <로컬 머신에 Session Manger 플로그인을 사전작업으로 설치 진행 해야 한다.
    • Session Manager를 이용한 연결은 TLS 1.2로 보호되며, 모든 로드는 CloudTrail에 저장하고, 세션에서 실행하는 모든 명령은 S3 버킷에 저장됩니다.
  • Patch Manger : 패치 매니저는 Linux 및 Windows 인스턴스 패치 업무의 자동화 도구이며, 다음과 같은 OS를 지원합니다. 
    • Windows Server ,Ubuntu Server, Red Hat Enterprise, Linux(RHEL)SUSE ,Linux Enterprise Server(SLES), CentOs, Amazon Linux ~2 
    • 패치 대상 인스턴스는 태그 등을 기준으로 선택할 수 있으며, 패치 그룹을 생성해서 작업을 진행할 수 있습니다. 패치 그룹은 Patch Group 태그 키를 지닌 인스턴스 모음입니다.
    • 예를 들어, Webservers라는 패치 그룹에 인스턴스 몇 개를 포함시키려는 경우 태그 키는 Patch Group으로 태그 밸류는 Webservers로 입력하면 됩니다. 이 때 태그 키는 대소문자를 구별합니다.
    • 패치 매니저는 패치 베이스라인을 통해 패치 작업을 수행할 대상을 정의하며, 이후 자동으로 패치 소프트웨어를 설치하거나 승인 후 설치 작업을 진행하도록 할 수 있습니다.
AWS 기본 베이스라인을 통해 보안 수준, 민감성 , 중요성 ,필요성 등을 기준으로 패치 소프트웨어를 분류합니다.
베이스라인은 Ubuntu를 제외한 다른 모든 OS에서 7일 후 자동으로 승인 및 설치되며 , 이를 자동 승인 지연이라 칭합니다. < 베이스라인은 커스텀 또한 가능합니다.>

패치가 승인되면 설정한 유지보수 일정에 패치 작업이 진행되도록 하거나, 유지보수 일정이 도래하기 전에 즉각적으로 인스턴스에 대한 패치 작업을 실행할 수 있습니다. 패치 매니저는 패치 작업 수행을 위해 AWS-RunPatchBaseline 도큐먼트를 실행합니다.

  • State Manager
    • 스테이트 매니저는 인스턴스에 대해 일회성으로, 혹은 미리 정해진 일정에 따라, 자동으로 명령 및 정책 도큐먼트를 실행합니다. 예를 들어, 스테이트 매니저를 이용해서 인스턴스에 안티바이러스 소프트웨어를 설치한 뒤 관련 인벤토리를 가져올 수 있습니다.
    • 스테이트 매니저를 사용하려면, 우선 실행할 명령 도큐먼트를 정의한 연계(association) 객체를 생성한 뒤, 전달할 파라미터, 타겟 인스턴스, 스케줄을 설정합니다. 스테이트 매니저는 타겟 인스턴스에 대해 온라인으로 즉시 실행된 뒤 이후 스케줄에 따라 실행됩니다.
    • 현재 스테이트 매니저와 함께 사용할 수 있는 정책 도큐먼트로 AWS-Gather SoftwareInventory가 있습니다. 이 도큐먼트는 인스턴스로 부터 소프트웨어 인벤토리 등 특정 메타데이터를 수집하도록 하며, 여기엔 네트워크 환경설정, 파일 정보, CPU 정보 그리고 Windows의 경우 레지스트리 값 등이 포함됩니다.
패치 매니저가 인스턴스에 대한 동일한 패치 수준을 유지하도록 돕는 도구라면, 스테이트 매니저는 여러분이 정의한 방식대로 소프트웨어를 가져오고 환경을 설정하는 환경설정 도구라고 할 수 있습니다.

 

인사이트 (Insights)
인사이트는 AWS 리전 내 리소스 모음인 AWS 리소스 그룹에 따라 카테고리화 되며, 사용자는 tag : Value 를 이용해서 리소스 그룹을 정의할 수 있습니다.
ex ) EC2 인스턴스 , S3버킷 , EBS 볼륨 , SG 그룹 등 특정 애플리케이션과 관련된 모든 리소스에 동일 태그 적용 가능
  • 빌트인 인사이트 : 빌트인 인사이트는 System Manager가 기본적으로 제공하는 모니터링 내경을 담고 있다.
    • AWS Config Compliance : AWS Role 및 리소스별 Config 가 추적한 환경설정에 대한 변경 이력
    • AWS CloudTrail Events : 리소스 그룹 , 타입 , 해당 리소스에 대해 CloudTrail이 기록한 마지막 이벤트 이력
    •  AWS Personal Health Dashboard : 리소스에 영향을 미칠 수 있는 각종 이슈에 대한 경고 제공 
    • AWS Trusted Advisor Recommendations : 비용최적화 , 성능 , 보안 , 내 오류성 등의 측면에서 최적화 및 권장 사항 제공에 대한 이력
Trusted Advisor는 Business and Enterprise 지원 가능 하며 , 그 이외에는 서비스가 제한된다.
  • 인벤토리 매니저 : 인벤토리 매니저는 OS, 애플리케이션 버전 등 인스턴스의 데이터를 수집하며, 수집 내역은 다음과 같습니다.
OS 이름 및 버전애플리케이션 및 파일네임, 버전, 사이즈IP 및 MAC 주소 등 네트워크 환경설정Windows 업데이트, 롤, 서비스, 레지스트리 밸류CPU 모델, 코어, 스피드
  • 컴플라이언스 : 컴플라이언스 인사이트는 사용자가 정한 환경 설정 규칙이 인스턴스의 패치 및 상태 관리에 어떻게 적용되고 있는지 보여줍니다.
    • 패치 컴플라이언스(Patch Compliance)는 패치 베이스라인이 적용된 인스턴스의 수 및 설치된 패치의 세부 정보를 보여줍니다.
    • 어소시에이션 컴플라이언스(Association Compliance)는 패치 작업이 성공적으로 실행된 인스턴스의 수를 보여줍니다.

 

이전의 실습을 통하여 EC2 인스턴스를 스케줄링을 통하여 자동화 프로세스를 구현해 보았다.
보다 간편한 방법을 찾고자 AWS의 System Manger Automation 문서를 통하여 자동화를 구현해 보겠다.

 

사전 사항
  • EC2 인스턴스 생성
  • EC2 인스턴스에게 IAM 역할 할당
  • EC2 인스턴스의 Agent 미설치 시 설치 진행
  • AWS SSM 플릿 매니저의 인스턴스 등록 확인 

 

테스트

1. EC2 생성 및 Role 부여

SSM에서 EC2의 접근하기 위한 다음과 같은 정책을 부여하여 Role 위임
임의의 EC2 인스턴스를 다음과 같이 생성

 

2. Cloudwatch EventBridge 생성

  • 이전 실습 처럼 지정할 특정 시간 설정

  • 대상 설정

SSM Automation 문서인 AWS-StopEC2instance  설정 특정 인스턴스 지정 위에서 만든 IAM Role arn 기입

  • 테스트 진행

다음처럼 지정된 인스턴스가 SSM 자동화 문서를 통하여 stop 됨을 확인 할 수 있었다.

 

3. SSM - State Manager를 통한 자동화

  • State Manager 생성대상 지정

대상을 여러개 지정 가능합니다.
Tag를 지정하여 여러개를 컨트롤 할것입니다.

  • 일정 지정

Crontab을 이용하여 시간 일정 지정
대상 및 오류 시 작업 중지 커스텀 설정이 가능

  • 동작 확인

 

결론

이전 실습에서 Lambda 와 달리 해당 실습에서 SSM을 통해서 정해진 문서를 통해서 별도의 작업 없이 프로세스 과정만 간단하게 연결 하면 되서 편리하였다. 다만 문서가 정해져 있는 것으로 이용하였기에 코드를 잘 다룰수 있다면 Lambda가 좀더 용이할 것이라고 판단이 된다. SSM에는 다양한 문서가 존재하여 SSM을 잘 다룰수 있으면 용이 할 것이다.

'Automation' 카테고리의 다른 글

image builder 2  (0) 2021.06.16
Image Builder -golden ami 생성  (0) 2021.03.29
auto-scaling scale-out시 run-command동작  (0) 2021.03.29
Lambda Ec2 start / stop Tag기반  (0) 2021.01.20

+ Recent posts