メニュー
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) インスタンスプロファイルロールを設定する必要があります。AmazonEC2RoleforSSM 管理ポリシーを使用した IAM ロールを Amazon EC2 インスタンスにアタッチします。このロールにより、インスタンスは 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 エージェントのインストール

SSM エージェントは Run Command 要求を処理し、要求に指定されたインスタンスを設定します。 このエージェントは、デフォルトで Windows AMI (2016 年 11 月以降) および Amazon Linux AMI (2017 年 9 月以降) にインストールされています。

Linux でエージェントをインストールするには、AWS Systems Manager ユーザーガイドの「Linux インスタンスでの SSM エージェントのインストールおよび設定」を参照してください。

Windows でエージェントをインストールするには、AWS Systems Manager ユーザーガイドの「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 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 を開き、以下のコマンドを実行して認証情報を指定します。

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

    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 を開き、次のコマンドを実行して認証情報とリージョンを指定します。

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

    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 の詳細については、以下のトピックおよびリファレンスを参照してください。