메뉴
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 역할을 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을 처음 사용하는 경우 [Get Started]를 선택한 다음 [Create Policy]를 선택합니다.)

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

  4. [AmazonSSMFullAccess] 옆의 확인란을 선택하고 [Policy Actions]와 [Attach]를 차례로 선택합니다.

  5. [Attach Policy] 페이지에서 사용자 계정을 선택한 다음 [Attach Policy]를 선택합니다.

SSM 에이전트 설치(Linux)

SSM 에이전트는 Run Command 요청을 처리하고 요청에서 지정한 인스턴스를 구성합니다. Windows 인스턴스에서는 에이전트가 기본적으로 설치됩니다. 하지만 Linux에서는 에이전트를 수동으로 설치해야 합니다. 다음 절차에서는 RHEL(Red Hat Enterprise Linux)에 에이전트를 설치하는 방법을 설명합니다. Ubuntu, Amazon Linux 또는 CentOS에 설치하는 방법에 대한 자세한 내용은 Installing SSM Agent On Linux 단원을 참조하십시오.

Red Hat Enterprise Linux에 SSM 에이전트를 설치하는 방법은 다음과 같습니다.

  1. RHEL 인스턴스에 연결하고 그 인스턴스에 임시 디렉터리를 만듭니다.

    Copy
    mkdir /tmp/ssm
  2. 다음 명령 중 하나를 사용하여 SSM 설치 관리자를 임시 디렉터리에 다운로드합니다.

    64비트

    Copy
    curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm

    32비트

    Copy
    curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_386/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm
  3. SSM 설치 관리자를 실행합니다.

    Copy
    sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm
  4. 다음 명령 중 하나를 실행하여 SSM 에이전트가 실행 중인지 확인합니다. 이 명령은 "amazon-ssm-agent is running"을 반환해야 합니다.

    RHEL 7.x

    Copy
    sudo systemctl status amazon-ssm-agent

    RHEL 6.x

    Copy
    sudo status amazon-ssm-agent
  5. 이전 명령에서 "amazon-ssm-agent is stopped"가 반환되는 경우 다음 명령을 실행합니다.

    1. 서비스를 시작합니다.

      RHEL 7.x

      Copy
      sudo systemctl start amazon-ssm-agent

      RHEL 6.x

      Copy
      sudo start amazon-ssm-agent
    2. 에이전트의 상태를 확인합니다.

      RHEL 7.x

      Copy
      sudo systemctl status amazon-ssm-agent

      RHEL 6.x

      Copy
      sudo status amazon-ssm-agent

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 | less를 입력합니다.

  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 도구를 열고 다음 명령을 실행하여 자격 증명을 지정합니다.

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

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

    Copy
    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 버킷을 지정하십시오.

    Copy
    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를 열고 다음 명령을 실행하여 자격 증명과 리전을 지정합니다.

    Copy
    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. 다음 명령을 실행하여 해당 인스턴스에서 실행 중인 서비스를 검색합니다.

    Copy
    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 버킷을 지정해야 합니다.

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

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

관련 내용

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