시작 전
- 이전 포스팅 참고 : Auto Scaling 구성하기 [Auto Scaling 자동 동기화-2]
- 목적 : System Manager의 Run-Command 기능을 통해 인스턴스의 원격 관리 or 원하는 인스턴스들에게 일괄 명령을 수행하기
- 이 포스팅은 Run-Command 기능 확인을 위한 최소한의 환경만 구성하였다.
Run-Command
Commander 인스턴스 생성
- Commander 인스턴스의 AWS CLI명령을 통해 모든 AutoScaling Instance에 명령을 원격-일괄 실행한다.
- 공인 IP를 허용해주고 생성한 후에 SSH접속
- AWS cofigure 정보 입력
AutoScaling 인스턴스 웹서버 페이지 구성
- 현재 로드밸런서로 Auto Scaling 인스턴스 웹페이지에 접속하면 나오는 페이지(/var/www/html/index.html)
- /var/www/html/index.html2 의 내용을 다음과 같이 작성
- Run Command 명령 이후에 동일한 DNS로 접속했을 때 'Hello Test World!!!!!'에서 'Change test nn'이 출력되는지 확인해야한다.
Run-Command (AWS CLI)
- Run Command 사용을 위한 IAM Role 생성
- IAM 역할을 Commander 인스턴스에 연결
- Commander 인스턴스에 접속 후 다음 명령 입력
aws ssm send-command --targets Key=tag:'Name',Values='AS-EC2' --document-name "AWS-RunShellScript" --comment "COPY" --parameters commands='sudo cp -f /var/www/html/index.html2 /var/www/html/index.html' --output text
- 동일한 DNS로 접속했을 때 다음과 같이 기본페이지의 내용이 변경된 것을 확인할 수 있다.
- 아래 명령을 통해 다시 Hello World로 페이지를 변경할 수도 있다.
aws ssm send-command --targets Key=tag:'Name',Values='AS-EC2' --document-name "AWS-RunShellScript" --comment "COPY" --parameters commands='echo Hello World | sudo tee /var/www/html/index.html' --output text
- 아래 명령을 통해 다시 Hello World로 페이지를 변경할 수도 있다.
- Run-Command 동작 확인완료
Run-Command (AWS 콘솔)
- AWS 콘솔의 Systems Manager에서 Run Command를 직접 실행하는 방법도 있다.
- Systems Manager → Run Command → 명령 실행
- RunShellScript 정책을 적용한 후 원하는 명령 입력
- Run Command의 대상 Tag 지정 후 명령 실행
- 현재 실행중인 Auto Scaling 인스턴스가 모두 대상이 되었고 실행되었다면 정상동작 완료
결론
- Run-Command를 통해 EC2 인스턴스들에 대한 명령을 일괄적용, 원격적용할 수 있다.
- Auto Scaling 인스턴스가 몇개인지 상관없이 Tag값을 기반으로 Command를 입력하여 모든 인스턴스들에게 동일한 명령을 적용할 수 있다.
Uploaded by Notion2Tistory v1.1.0