メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

チュートリアル: Amazon EC2 インスタンスをリモートで管理する

このチュートリアルでは、ローカルマシンから Systems Manager Run Command を使用して Amazon EC2 インスタンスをリモートで管理する方法を示します。このチュートリアルには、Amazon EC2 コンソール、AWS Tools for Windows PowerShell、および AWS Command Line Interface を使用してコマンドを実行するための手順が含まれています。

注記

オンプレミス環境または他のクラウドプロバイダーによって提供された環境で、Run Command を使用して、サービスまたは仮想マシン (VM) を管理することもできます。 詳細については、「ハイブリッド環境での Systems Manager の設定」を参照してください。

開始する前に

Systems Manager の AWS Identity and Access Management (IAM) インスタンスプロファイルロールを設定する必要があります。Amazon EC2 インスタンスに AmazonEC2RoleforSSM ロールをアタッチします。このロールにより、インスタンスは Systems Manager API とやり取りできるようになります。既存のインスタンスにロールをアタッチする方法については、「IAM ロールをインスタンスにアタッチする」を参照してください。

次のセクションで説明しているように、Systems Manager の IAM ユーザーアカウントも設定する必要があります。

ユーザーアカウントに Systems Manager へのアクセス権を付与

ユーザーアカウントは、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 にインストールする必要があります。次の手順では、Red Hat Enterprise Linux (RHEL) でエージェントをインストールする方法を説明します。 エージェントを 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 Systems Manager Run Command」を参照してください。

AWS Tools for Windows PowerShell を使用してコマンドを送信する

AWS Tools for Windows PowerShell からの Run Command を使用して、インスタンスで実行されるすべてのサービスをリスト表示するには、次の手順を使用します。

コマンドを実行する

  1. ローカルコンピュータに AWS Tools for Windows PowerShell の最新バージョンをダウンロードします。

  2. ローカルコンピュータで AWS Tools for Windows PowerShell を開き、以下のコマンドを実行して認証情報を指定します。

    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 の出力を返します。 出力は 2500 文字を超えると切り捨てられます。 サービスの詳細なリストを表示するには、-OutputS3BucketName bucket_name パラメータを使用して、コマンドで Amazon S3 バケットを指定します。

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

Tools for Windows PowerShell で Run Command を使用してコマンドを実行する方法の他の例については、「Systems Manager Run Command Walkthough Using the AWS Tools for Windows PowerShell」を参照してください。

AWS CLI を使用してコマンドを送信する

AWS CLI で Run Command を使用して、インスタンスで実行されるすべてのサービスをリスト表示するには、次の手順を使用します。

コマンドを実行する

  1. ローカルコンピュータに AWS Command Line Interface (AWS CLI) の最新バージョンをダウンロードします。

  2. ローカルコンピュータの AWS CLI を開き、次のコマンドを実行して認証情報とリージョンを指定します。

    Copy
    aws configure
  3. 以下を指定するよう求められます。

    Copy
    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 の出力を返します。 出力は 2500 文字を超えると切り捨てられます。 サービスの詳細なリストを表示するには、--output-s3-bucket-name bucket_name パラメータを使用して、コマンドで Amazon S3 バケットを指定します。

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

AWS CLI で Run Command を使用してコマンドを実行する方法の他の例については、「Systems Manager Run Command Walkthought Using the AWS CLI」を参照してください。

関連情報

Run Command と Systems Manager の詳細については、以下のトピックおよびリファレンスを参照してください。