본문 바로가기

AWS/EC2

[AWS] System Manager의 Run Command 기능을 통해 S3에 저장된 스크립트 일괄 실행

반응형

 

System Manager의 Run Command 기능을 통해 S3에 저장된 스크립트 일괄 실행

 

1. AWS System Manager에서 인스턴스에 접근하여 명령어를 실행하기 위해 아래와 같은 설정이 필요합니다.

1) 엔드포인트 생성
- com.amazonaws.ap-northeast-2.ssm
- com.amazonaws.ap-northeast-2.ssmmessages
- com.amazonaws.ap-northeast-2.ec2messages
2) 아래 권한에 대한 인스턴스 IAM Role 추가 필요
- AmazonSSMManagedInstanceCore

2. 인스턴스에서 S3에 있는 스크립트를 다운로드하고, 실행 결과를 S3로 업로드하기 위해 아래와 같은 설정이 필요합니다.

1) 엔드포인트 생성
- com.amazonaws.ap-northeast-2.s3 (*Gateway Endpoint)
2) 아래 권한에 대한 인스턴스 IAM Role 추가 필요
- AmazonS3FullAccess

 

3. S3에 스크립트 파일 업로드

 

4. 스크립트를 인스턴스에 다운로드 후 원으로 실행

1) AWS System Manager - Run Command(명령 실행) - AWS-RunRemoteScript 문서 선택
2) 아래와 같이 파라미터를 설정하고 실행할 대상 인스턴스 선택 후 실행

 

명령 파라미터

파라미터

commandLine :  "./test.sh" 

executionTimeout : "300"

sourceInfo : "{"path:https:// test.s3.ap-northeast-2.amazonaws.com/test.sh}"

sourceType : "S3"

workingDirectory : "/root"

 

5. 인스턴스 내 스크립트 실행 결과 확인

 

6. 실행 결과를 S3로 업로드 합니다.
1) AWS System Manager - Run Command - AWS-RunShellScript 문서 선택
2) 아래와 같이 파라미터를 설정하고 실행할 대상 인스턴스 선택 후 실행

 

명령 파라미터

파라미터

commands : "echo -e "[default]\noutput = json\nregion = ap-northeast-2" > .aws/config", "aws s3 cp /root s3://test-result/ --recursive --exclude "*" --include "test_*""

executionTimeout "300"

workingDirectory : "/root"

 

7. S3 업로드 확인

 

 

반응형