본문 바로가기

자격증/AWS Certified Security - Specialty

[AWS SCS] SSM 문서와 SSM Run 커맨드

728x90
반응형

AWS Systems Manager(SSM) 문서 중심의 활용법 - Run Command로 EC2 관리하기

 

AWS Systems Manager(SSM)는 다양한 관리 작업을 자동화하고 효율적으로 수행할 수 있도록 돕는 강력한 도구입니다. 그 중심에는 **문서(Documents)**가 있으며, 이를 통해 SSM의 기능을 정의하고 실행할 수 있습니다. 이번 포스팅에서는 SSM 문서를 활용한 EC2 관리와, Run Command를 이용한 HTTP 서버 설치 과정을 단계별로 살펴보겠습니다.


SSM 문서란?

SSM 문서는 JSON 또는 YAML 형식으로 작성되며, 다음과 같은 요소를 포함합니다:

  1. 설명(Description): 문서의 목적을 설명
  2. 매개변수(Parameters): 문서 실행 시 필요한 입력값 정의
  3. 단계(Steps): 실행할 작업 및 명령을 정의

AWS에서는 이미 다양한 기본 문서를 제공하며, 이를 활용해 빠르고 효율적으로 작업할 수 있습니다. 필요에 따라 커스텀 문서를 작성하여 고유한 작업을 실행할 수도 있습니다.


Run Command로 문서 실행하기

Run Command는 SSM 문서를 활용하여 단일 명령이나 스크립트를 EC2 인스턴스에 실행할 수 있는 기능입니다.

  • 속도 제어(rate control): 대규모 인스턴스에서 명령을 점진적으로 실행
  • 오류 제어(error control): 오류 발생 시 작업 중단 설정 가능
  • 보안 강화: SSH 액세스 없이 SSM 에이전트를 통해 명령 실행

Run Command는 CloudWatch Logs와 SNS 알림, EventBridge와 통합되어 강력한 관리 도구로 활용할 수 있습니다.


HTTP 서버 설치 예제: 단계별 구현

이제 Run Command와 SSM 문서를 활용하여 HTTP 서버를 설치하는 실습을 진행합니다.

1. 보안 그룹 설정

EC2 인스턴스에서 HTTP(포트 80) 트래픽을 허용하기 위해 보안 그룹의 인바운드 규칙에 HTTP 규칙을 추가합니다.

2. SSM 문서 생성

SSM 문서를 YAML 형식으로 작성합니다. 이 문서는 EC2 인스턴스에 Apache HTTP 서버를 설치하고, HTML 파일에 "Hello World" 메시지를 추가하는 작업을 정의합니다.

schemaVersion: "2.2"
description: "Install Apache HTTP server and set a custom message"
parameters:
  message:
    type: String
    default: "Hello World"
mainSteps:
  - action: "aws:runShellScript"
    name: "InstallApache"
    inputs:
      runCommand:
        - "yum update -y"
        - "yum install -y httpd"
        - "systemctl start httpd"
        - "systemctl enable httpd"
        - "echo '{{ message }}' > /var/www/html/index.html"

3. Run Command 실행

AWS Management Console에서 Run Command를 실행합니다.

  • 대상(Targets): EC2 인스턴스 3개
  • 속도 제어(Concurrency): 한 번에 1개의 인스턴스에서 명령 실행
  • 오류 임계값(Error Threshold): 0 (오류 발생 시 작업 중단)
  • 출력 옵션: CloudWatch Logs로 출력 전송

4. 결과 확인

명령 실행 후 브라우저에서 EC2 인스턴스의 IP 주소로 접속하면, "Custom Hello World" 메시지가 표시됩니다. 이는 각 인스턴스에서 문서가 정상적으로 실행되었음을 의미합니다.


Run Command의 장점

  1. 보안 강화: SSH 액세스 없이 SSM 에이전트를 통해 명령 실행
  2. 효율성: 다수의 인스턴스에 명령을 일괄적으로 실행 가능
  3. 추적 가능: IAM과 CloudTrail 통합으로 작업 이력 관리

결론

AWS SSM의 Run Command와 문서는 대규모 클라우드 환경에서 관리 작업을 단순화하고, 효율적으로 처리할 수 있도록 돕습니다. 특히 보안과 자동화를 강조하는 환경에서 매우 유용합니다.

728x90
반응형