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

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

このチュートリアルでは、ローカルマシンから Amazon Elastic Compute Cloud (Amazon EC2) Run Command を使用して Amazon EC2 インスタンスをリモートで管理する方法を示します。 このチュートリアルでは、以下のタスクを実行する方法について学びます。

  • Run Command 用に設定されている新しいインスタンスを起動します。

  • Run Command 用のユーザーアカウントを設定します。

  • Run Command を使用してローカルマシンからコマンドを送信し、インスタンスで実行されるサービスのリストを取得します。

このチュートリアルは、Amazon EC2 コンソール、または AWS Command Line Interface を使用してコマンドを実行するための手順を含みます。

注記

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

新しいインスタンスの起動

インスタンスには、インスタンスと Amazon EC2 Systems Manager (SSM) との通信を有効にする AWS Identity and Access Management (IAM) ロールが必要です。 IAM ロールは、新しいインスタンスの作成時に割り当てることができます。

SSM-supported ロールを使用するインスタンスを作成するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. サポートされているリージョンを選択します。

  3. [Launch Instance] を選択し、[Linux] Amazon マシンイメージ (AMI) を選択します。

  4. インスタンスタイプを選択し、[Next: Configure Instance Details] を選択します。

  5. [Auto-assign Public IP] で、[Enable] を選択します。

  6. [IAM role] の横の [Create new IAM role] を選択します。 新しいタブに IAM コンソールが開きます。

    1. [Create New Role] を選択します。

    2. [Step 1: Set Role Name] で、このロールを Run Command ロールとして識別する名前を入力します。

    3. [Step 2: Select Role Type] で、[Amazon EC2 Role for Simple Systems Manager] を選択します。 これは管理ポリシーであるため、システムは [Step 3: Establish Trust] をスキップします。

    4. [Step 4: Attach Policy] で [AmazonEC2RoleforSSM] を選択します。

    5. [Next Step] を選択し、さらに [Create Role] を選択します。

    6. IAM コンソールを使用してタブを閉じます。

  7. Amazon EC2 コンソールで、[Create New IAM role] の横の [Refresh] ボタンを選択します。

  8. [IAM role] から、作成したロールを選択します。

  9. ウィザードを終了して新しいインスタンスを起動します。 インスタンス ID を書き留めます。 後で、このチュートリアルでこの ID を指定する必要があります。

重要

作成したインスタンスで SSM エージェントをインストールする必要があります。詳細については、「SSM エージェントのインストール」を参照してください。

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

ユーザーアカウントは、SSM API. と通信するように設定する必要があります。 SSM API アクションへのフルアクセスを付与するユーザーアカウントに 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 要求を処理し、要求に指定されたインスタンスを設定します。 Linux のバージョンに応じた手順を使用して、手動でエージェントをインストールする必要があります。 次の手順では、Red Hat Enterprise Linux (RHEL) でエージェントをインストールする方法を説明します。 Ubuntu、Amazon Linux、または CentOS でエージェントをインストールする方法については、「SSM エージェントのインストール」を参照してください。

Red Hat Enterprise Linux に SSM エージェントをインストールするには

  1. RHEL インスタンスに接続して、インスタンスに一時ディレクトリを作成します。

    Copy
    mkdir /tmp/ssm
  2. 以下のコマンドのいずれかを使用して、SSM インストーラを一時ディレクトリにダウンロードします。region は、SSM を使用できる AWS リージョンのいずれかに置き換えます。ダウンロードに伴うリージョン間のデータ転送のコストを回避するには、EC2 インスタンスのリージョンを指定します。

    64 ビット

    Copy
    curl https://amazon-ssm-region.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm

    32 ビット

    Copy
    curl https://amazon-ssm-region.s3.amazonaws.com/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 を使用して、インスタンスで実行されるすべてのサービスをリスト表示するには、次の手順を使用します。

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Run Command] を選択します。

  3. [Run a command] を選択します。

  4. [Command document] で、AWS-RunShellScript を選択します。

  5. [Select instances] を選択し、作成したインスタンスを選択します。 インスタンスが表示されない場合、現在のリージョンがインスタンスを作成したリージョンと同じかどうかを確認します。 また、IAM ロールおよび信頼ポリシーが、このトピックですでに説明されたとおりに正しく設定されているかどうかを確認します。

  6. [Commands] で、「service --status-all」と入力します。必要に応じて、[Working Directory] と [Execution Timeout] を指定できます。[Execution Timeout] は、コマンドが失敗したと見なされるまでに SSM エージェントで実行を試行する秒数です。[Comments] フィールドにコメントを入力することをお勧めします。コメントを入力しておくと、保留中のコマンドリストでコマンドを識別する際に役立ち、出力が確認しやすくなります。

  7. [Timeout (seconds)] フィールドに、Run Command でインスタンスが到達不可能であると見なしてコマンド実行を失敗とするまでにインスタンスへの到達を試行する秒数を入力します。

  8. 選択した複数のインスタンスで同時にコマンドを実行するには、[Run] を選択します。Run Command により、ステータス画面が表示されます。

  9. [View result] を選択します。

  10. 実行したコマンドのコマンド呼び出しを選択します。

  11. [Output] タブを選択して、[View Output] を選択します。

     Run Command を使用して実行されるコマンドのリスト
  12. システムにより、出力がブラウザに表示されます。出力が 2500 文字を超える場合、先頭から 2500 文字のみが表示され、残りは切り捨てられます。Amazon S3 バケットを指定して、コマンドを実行する前に完全な出力を表示できます。

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 および AWS マネジメントコンソール で Run Command を使用してコマンドを実行する方法のその他の例については、「Amazon EC2 Run Command を使用したコマンドの実行」を参照してください。 Run Command の詳細については、「リモート管理 (Run Command)」を参照してください。