연습: Run Command에서 AWS CLI 사용
다음 예제 시연에서는 AWS Command Line Interface(AWS CLI)를 사용하여 명령 및 명령 파라미터에 대한 정보를 보는 방법, 명령을 실행하는 방법, 해당 명령의 상태를 보는 방법을 보여줍니다.
중요
신뢰할 수 있는 관리자만 이번 주제에서 언급하는 AWS Systems Manager 사전 구성 문서를 사용할 수 있도록 허용해야 합니다. Systems Manager 문서에서 지정하는 명령 또는 스크립트는 관리형 노드에 대한 관리자 권한으로 실행됩니다. 미리 정의된 Systems Manager 문서(AWS-
로 시작하는 모든 문서)를 실행할 권한이 있는 사용자는 해당 노드에 대한 관리자 권한도 보유합니다. 그 밖의 모든 사용자들에 대해서는 제한된 문서를 생성하여 그 문서를 특정 사용자와 공유해야 합니다.
주제
1단계: 시작하기
구성할 관리형 노드에 대한 관리자 권한이 있거나 AWS Identity and Access Management(IAM)에서 적절한 권한을 부여받아야 합니다. 또한 이 예제에서는 미국 동부(오하이오) 리전(us-east-2)을 사용합니다. Run Command는 Amazon Web Services 일반 참조의 Systems Manager 서비스 엔드포인트에 나열된 AWS 리전에서 사용할 수 있습니다. 자세한 내용은 AWS Systems Manager에 대한 관리형 노드 설정 단원을 참조하십시오.
AWS CLI을 사용하여 명령을 실행하려면
아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)를 설치하고 구성합니다.
자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.
-
사용할 수 있는 모든 문서를 나열합니다.
이 명령을 실행하면 IAM 권한에 따라 계정에 사용할 수 있는 문서를 모두 나열합니다.
aws ssm list-documents
-
관리형 노드가 명령을 수신할 준비가 되었는지 확인합니다.
다음 명령의 출력은 관리형 노드가 온라인 상태인지 여부를 보여줍니다.
-
다음 명령을 실행하여 특정 관리형 노드에 대한 세부 정보를 봅니다.
참고
이 시연에서 명령을 실행하려면 인스턴스 및 명령 ID를 바꿉니다. 관리형 AWS IoT Greengrass 코어 디바이스에서, 인스턴스 ID로 mi-
ID_number
를 사용합니다. send-command의 응답으로 명령 ID가 반환됩니다. AWS Systems Manager의 기능인 Fleet Manager에서 인스턴스 ID를 사용할 수 있습니다.
2단계: 셸 스크립트를 실행하여 리소스 세부 정보 보기
Run Command 및 AWS-RunShellScript
문서를 사용하면 로컬로 로그인한 것처럼 관리형 노드에서 명령이나 스크립트를 실행할 수 있습니다.
설명 및 사용 가능한 파라미터 보기
다음 명령을 실행하여 Systems Manager JSON 문서에 대한 설명을 봅니다.
다음 명령을 실행하여 사용 가능한 파라미터 및 해당 파라미터에 대한 세부 정보를 봅니다.
3단계: AWS-RunShellScript
문서를 사용하여 간단한 명령 전송
다음 명령을 실행하여 관리형 노드에 대한 IP 정보를 가져옵니다.
Windows Server 관리형 노드를 대상으로 지정했다면, document-name
을 AWS-RunPowerShellScript
로 바꾸고 command
를 ifconfig
에서 ipconfig
로 바꿉니다.
응답 데이터와 함께 명령 정보 가져오기
다음 명령은 이전 명령에서 반환된 명령 ID를 사용하여 명령 실행의 세부 정보와 응답 데이터를 가져옵니다. 명령이 완료되면 시스템에서 응답 데이터가 반환됩니다. 명령 실행에서 "Pending"
또는 "InProgress"
가 표시되는 경우, 이 명령을 다시 실행하여 응답 데이터를 확인하십시오.
사용자 식별
다음 명령은 명령을 실행하는 기본 사용자를 표시합니다.
명령 상태 가져오기
다음 명령은 명령 ID를 사용하여 관리형 노드에서 명령 실행 상태를 가져옵니다. 이 예에서는 이전 명령에서 반환된 명령 ID를 사용합니다.
명령 세부 정보 가져오기
다음 명령은 이전 명령의 명령 ID를 사용하여 관리형 노드 단위로 명령 실행 상태를 가져옵니다.
특정 관리형 노드에 대한 응답 데이터로 명령 정보 가져오기
다음 명령은 특정 관리형 노드에 대한 원래 aws ssm
send-command
요청을 반환합니다.
Python 버전 표시
다음 명령은 노드에서 실행되는 Python의 버전을 반환합니다.
4단계: Run Command을 사용하여 간단한 Python 스크립트 실행
다음 명령은 Run Command을 사용하여 간단한 Python “Hello World” 스크립트를 실행합니다.
5단계: Run Command를 사용하여 Bash 스크립트 실행
이 섹션의 예에서는 Run Command를 사용하여 다음 bash 스크립트를 실행하는 방법을 보여줍니다.
Run Command를 사용하여 원격 위치에 저장된 스크립트를 실행하는 예는 Amazon S3에서 스크립트 실행 및 GitHub에서 스크립트 실행를 참조하세요.
#!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install chmod +x ./install ./install auto
이 스크립트는 AWS CodeDeploy User Guide의 Create an Amazon EC2 instance for CodeDeploy에 설명된 대로 Amazon Linux 및 Red Hat Enterprise Linux(RHEL) 인스턴스에 AWS CodeDeploy 에이전트를 설치합니다.
이 스크립트는 미국 동부(오하이오) 리전(us-east-2)인 aws-codedeploy-us-east-2
의 AWS 관리형 S3 버킷에서 CodeDeploy 에이전트를 설치합니다.
AWS CLI 명령에서 bash 스크립트 실행
다음 샘플은 --parameters
옵션을 사용하여 CLI 명령에 bash 스크립트를 포함하는 방법을 보여줍니다.
JSON 파일에서 bash 스크립트 실행
다음 예에서는 bash 스크립트의 내용을 JSON 파일로 저장하고, --cli-input-json
옵션을 사용하여 해당 파일을 명령에 포함합니다.
참조되는 installCodeDeployAgent.json
파일의 내용이 다음 예제에 나와 있습니다.
{ "Parameters": { "commands": [ "#!/bin/bash", "yum -y update", "yum install -y ruby", "cd /home/ec2-user", "curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install", "chmod +x ./install", "./install auto" ] } }