Amazon Elastic Compute Cloud
User Guide for Linux Instances

자습서: Amazon EC2 인스턴스 원격 관리

이 자습서에서는 로컬 시스템에서 시스템 관리자 Run Command를 사용하여 Amazon EC2 인스턴스를 원격으로 관리하는 방법을 보여 줍니다. 이 자습서에는 Amazon EC2 콘솔, Windows PowerShell용 AWS 도구, 및 AWS Command Line Interface를 사용하여 명령을 실행하는 절차가 나와 있습니다.

참고

Run Command로 온프레미스 환경 또는 다른 클라우드 공급자가 제공하는 환경에서 서버 및 VM(가상 머신)을 관리할 수도 있습니다. 자세한 내용은 Setting Up 시스템 관리자 in Hybrid Environments 단원을 참조하십시오.

시작하기 전

시스템 관리자에 AWS Identity and Access Management(IAM) 인스턴스 프로파일 역할을 구성해야 합니다. 관리형 정책 AmazonEC2RoleforSSM이 포함된 IAM 역할을 Amazon EC2 인스턴스와 연결합니다. 이 역할을 사용하면 인스턴스가 Systems Manager API와 통신할 수 있습니다. 역할을 기존 인스턴스에 추가하는 방법에 대한 자세한 내용은 IAM 역할을 인스턴스에 연결 단원을 참조하십시오.

또한 다음 섹션에서 설명하겠지만 시스템 관리자에 IAM 사용자 계정을 구성해야 합니다.

사용자 계정에 시스템 관리자 액세스 권한 부여

사용자 계정이 SSM API와 통신하도록 구성되어 있어야 합니다. 다음 절차에 따라 SSM API 작업에 대한 완전한 액세스 권한을 부여하는 관리형 AWS Identity and Access Management(IAM) 정책을 사용자 계정에 추가하십시오.

사용자 계정에 대한 IAM 정책을 생성하려면

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 [Policies]를 선택합니다. (IAM을 처음 사용하는 경우 시작하기를 선택한 다음 정책 생성을 선택합니다.)

  3. [Filter] 필드에 AmazonSSMFullAccess를 입력하고 Enter 키를 누릅니다.

  4. AmazonSSMFullAccess 옆의 확인란을 선택하고 Policy actions(정책 작업)연결을 차례로 선택합니다.

  5. 정책 연결 페이지에서 사용자 계정을 선택한 다음 정책 연결을 선택합니다.

SSM 에이전트 설치

SSM 에이전트는 Run Command 요청을 처리하고 요청에서 지정한 인스턴스를 구성합니다. 에이전트는 2016년 11월 이후부터 Windows AMI에 기본적으로 설치되고 2017년 9월부터는 Amazon Linux AMI와 모든 Amazon Linux 2 AMI에 기본 설치됩니다.

Linux에 에이전트를 설치하는 방법은 AWS 시스템 관리자 사용 설명서Linux 인스턴스에서 SSM 에이전트 설치 및 구성을 참조하십시오.

Windows에 에이전트를 설치하는 방법은 AWS 시스템 관리자 사용 설명서Windows 인스턴스에서 SSM 에이전트 설치 및 구성을 참조하십시오.

EC2 콘솔을 사용하여 명령 보내기

다음 절차에 따라 Amazon EC2 콘솔에서 Run Command를 사용하여 해당 인스턴스에서 실행 중인 모든 서비스를 나열합니다.

콘솔에서 Run Command를 사용하여 명령을 실행하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Run Command를 선택합니다.

  3. [Run a command]를 선택합니다.

  4. [Command document]에서 Windows 인스턴스라면 [AWS-RunPowerShellScript]를, 그리고 Linux 인스턴스라면 [AWS-RunShellScript]를 선택합니다.

  5. Target instances에서 앞서 생성한 인스턴스를 선택합니다. 새로 만든 인스턴스가 표시되지 않으면 현재 그 인스턴스와 같은 리전에 있는지 확인합니다. 그리고 앞부분에서 설명한 대로 IAM 역할과 신뢰 정책을 구성했는지도 확인합니다.

  6. [Commands]에 Windows의 경우 Get-Service를, Linux의 경우 ps aux를 입력합니다.

  7. (선택 사항) Working Directory에서 명령을 실행할 EC2 인스턴스의 폴더 경로를 지정합니다.

  8. (선택 사항) Execution Timeout에서 명령 시간이 초과되어 명령이 실패하기 전까지 EC2Config 서비스 또는 SSM 에이전트에서 명령 실행을 시도할 시간(초)를 지정합니다.

  9. Comment에서 명령 목록에서 이 명령을 식별하는 데 도움이 될 정보를 제공하는 것이 좋습니다.

  10. Timeout (seconds)에서 인스턴스에 접속할 수 없다고 간주되어 명령 실행이 실패하기 전까지 Run Command가 인스턴스에 접속을 시도하는 시간(초)을 입력합니다.

  11. [Run]을 선택하여 명령을 실행합니다. Run Command가 상태 화면에 표시됩니다. [View result]를 선택합니다.

  12. 출력을 보려면 명령에 대한 명령 호출을 선택하고, Output 탭을 선택한 다음, View Output을 선택합니다.

     Run Command를 사용하여 실행한 명령 목록

Run Command를 사용하여 명령을 실행하는 방법에 대한 자세한 내용은 Executing Commands Using 시스템 관리자 Run Command 단원을 참조하십시오.

Windows PowerShell용 AWS 도구를 사용하여 명령 보내기

다음 절차에 따라 Windows PowerShell용 AWS 도구에서 Run Command를 사용하여 해당 인스턴스에서 실행 중인 모든 서비스를 나열합니다.

명령을 실행하려면

  1. 로컬 컴퓨터에서 Windows PowerShell용 AWS 도구 최신 버전을 다운로드합니다.

  2. 로컬 컴퓨터에서 Windows PowerShell용 AWS 도구를 열고 다음 명령을 실행하여 자격 증명을 지정합니다.

    Set-AWSCredentials –AccessKey key –SecretKey key
  3. 다음 명령을 실행하여 PowerShell 세션의 리전을 설정합니다. 이전 절차에서 인스턴스를 만들었던 리전을 지정합니다. 이 예에서는 us-west-2 리전을 사용합니다.

    Set-DefaultAWSRegion -Region us-west-2
  4. 다음 명령을 실행하여 해당 인스턴스에서 실행 중인 서비스를 검색합니다.

    Send-SSMCommand -InstanceId 'Instance-ID' -DocumentName AWS-RunPowerShellScript -Comment 'listing services on the instance' -Parameter @{'commands'=@('Get-Service')}

    이 명령으로 반환되는 명령 ID를 사용하여 결과를 확인할 수 있습니다.

  5. 다음 명령은 원래 Send-SSMCommand 출력을 반환합니다. 2,500자를 초과하는 출력 부분은 잘립니다. 전체 서비스 목록을 보려면 -OutputS3BucketName bucket_name 파라미터를 사용하여 명령에 Amazon S3 버킷을 지정하십시오.

    Get-SSMCommandInvocation -CommandId Command-ID -Details $true | select -ExpandProperty CommandPlugins

Windows PowerShell용 도구에서 Run Command를 사용하여 명령을 실행하는 방법에 대한 자세한 내용은 시스템 관리자 Run Command Walkthough Using the Windows PowerShell용 AWS 도구 단원을 참조하십시오.

AWS CLI를 사용하여 명령 보내기

다음 절차에 따라 AWS CLI에서 Run Command를 사용하여 해당 인스턴스에서 실행 중인 모든 서비스를 나열합니다.

명령을 실행하려면

  1. 로컬 컴퓨터에서 AWS Command Line Interface(AWS CLI) 최신 버전을 다운로드합니다.

  2. 로컬 컴퓨터에서 AWS CLI를 열고 다음 명령을 실행하여 자격 증명과 리전을 지정합니다.

    aws configure
  3. 시스템에서 다음을 지정하라는 메시지를 표시합니다.

    AWS Access Key ID [None]: key AWS Secret Access Key [None]: key Default region name [None]: region, for example us-east-1 Default output format [None]: ENTER
  4. 다음 명령을 실행하여 해당 인스턴스에서 실행 중인 서비스를 검색합니다.

    aws ssm send-command --document-name "AWS-RunShellScript" --comment "listing services" --instance-ids "Instance-ID" --parameters commands="service --status-all" --region us-west-2 --output text

    이 명령으로 반환되는 명령 ID를 사용하여 결과를 확인할 수 있습니다.

  5. 다음 명령은 원래 Send-SSMCommand 출력을 반환합니다. 2,500자를 초과하는 출력 부분은 잘립니다. 전체 서비스 목록을 보려면 --output-s3-bucket-name bucket_name 파라미터를 사용하여 명령에 Amazon S3 버킷을 지정해야 합니다.

    aws ssm list-command-invocations --command-id "command ID" --details

AWS CLI에서 Run Command를 사용하여 명령을 실행하는 방법에 대한 자세한 내용은 시스템 관리자 Run Command Walkthought Using the AWS CLI 단원을 참조하십시오.

Run Command 및 시스템 관리자에 대한 자세한 내용은 다음 참고 자료를 참조하십시오.