Amazon Web Services 한국 블로그

EC2 Run Command와 CloudWatch Events 함께 사용해 보기

오늘은 EC2 Run Command (대규모 원격 인스턴스 관리 )와 CloudWatch Events (AWS 자원 변경에 대한 실시간 추적 기능) 기능을 함께 사용하는 방법에 대해 알아보겠습니다.

  • EC2 Run CommandEC2 Systems Manager의 일부입니다. EC2 인스턴스 및 기존 사내 서버를 함께 안정적으로 대량 통제 및 선택적으로 운용할 수 있습니다. Windows 및 Linux에서 스크립트 실행, 소프트웨어 설치, 통계 및 로그 파일 수집 및 패치 등의 관리 작업을 수행 할 수 있습니다.
  • CloudWatch Events를 사용하면 거의 실시간으로 AWS 자원의 변경 사항을 추적 할 수 있습니다. AWS Lambda 함수, Amazon Kinesis 스트림, Amazon SNS 토픽, 내부 EC2 인스턴스 및 EBS를 포함하여 원하는 곳으로 변경 내역을 쉽게 보낼 수 있는 이벤트 스트림을 만들 수 있습니다.

함께 사용해 보기
두 가지 서비스를 함께 동작할 수 있는 아이디어를 생각해 보겠습니다. EC2 Run Command를 사용하여 EC2 인스턴스 또는 사내 서버에서 작업을 수행하는 CloudWatch 이벤트 규칙을 만들 수 있고, 다음과 같은 활용 사례가 있습니다.

  • 최종 로그 수집 – 종료될 인스턴스에서 애플리케이션이나 시스템 로그를 수집합니다 (수동 또는 오토 스케일링을 통해 생성된 인스턴스를 종료하게 될때)
  • 오류 로그 상태 수집 – 애플리케이션 충돌 또는 보안 문제 발생 후 로그를 수집합니다.
  • 인스턴스 설정 – 인스턴스가 시작된 후, 애플리케이션을 다운로드 및 설치한 뒤에 파라미터 및 시스템 구성을 설정하고 프로세스를 시작할 수 있습니다.
  • 구성 업데이트 – S3에서 구성 파일을 변경하면, 적용 가능한 인스턴스 (태그 설정)에 설치할 수 있습니다. 예를 들어,  특정 태깅을 한 인스턴스 그룹에 Apache 웹 서버 구성 파일을 업데이트 하여 설치 한 후, 웹 서버를 다시 시작하여 변경 사항을 적용 할 수 있습니다. 또는 AWS IP 주소 범위가 업데이트 될 때마다 인스턴스 방화벽을 업데이트 하는 것도 가능합니다.
  • EBS 스냅샷 테스트 및 오류 확인 – 새로운 스냅샷을 만든 후 테스트 인스턴스에 마운트하고, 파일 시스템에서 오류를 확인할 수 있습니다.
  • 인스턴스 부하 조정 – 인스턴스가 시작되거나 종료 될 때마다 내부 추적 정보를 업데이트하거나 작업 부하의 균형을 조정할 수 있도록 다른 사람에게 알릴 수 있습니다.

직접 해보기
오토 스케일링을 통해 새로운 인스턴스를 오토 스케일링 그룹에 추가 할 때마다 특정 PowerShell 스크립트를 실행하는 기능을 만들어 보겠습니다.

먼저 CloudWatch 이벤트 콘솔을 열고 Create rule를 클릭합니다.

내 이벤트 소스를 자동 자동 확장 그룹 (AS-Main-1)으로 구성하고 EC2 인스턴스가 성공적으로 시작될 때, 기능을 수행하겠다고 표시합니다.

이제 타겟을 설정합니다. SSM 실행 명령을 선택하고 AWS-RunShellScript 문서를 선택한 다음, 자동 확장 그룹에서 태그가 지정된 인스턴스에서 명령을 실행하도록 지정합니다.

그런 다음 Configure details을 클릭하고 내 규칙에 이름과 설명을 입력 한 다음 Create rule를 클릭합니다.

모든 것이 설정되면 스케일 아웃 작업의 결과로 시작된 각 인스턴스에서 명령 service httpd start이 실행됩니다.

정식 출시
본 새로운 기능은 현재 사용할 수 있으며 지금 바로 사용할 수 있습니다.

Jeff;

이 글은 EC2 Run Command is Now a CloudWatch Events Target의 한국어 번역입니다.