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

ハイブリッド環境での Systems Manager のセットアップ

Amazon EC2 Systems Manager を使用すると、オンプレミスサーバーと仮想マシン (VM)、および他のクラウドプロバイダーの VM をリモートで安全に管理できます。Systems Manager をこのようにセットアップすることにより、以下のことが実現します。

  • 同じツールやスクリプトを使用して 1 か所からオンプレミスとクラウドのワークロードをリモートで管理できる一貫したセキュアな方法が作成されます。

  • AWS Identity and Access Management (IAM) を使用することでサーバーおよび VM で実行できるアクションのアクセス制御が一元化されます。

  • すべてのアクションが AWS CloudTrail に記録されるため、サーバーと VM で実行されるアクションの監査とビューが一元化されます。

  • サービス実行の成功に関する通知が送信されるように CloudWatch イベント と Amazon SNS を設定できるため、モニタリングが一元化されます。

Systems Manager 用にハイブリッドマシンをセットアップすると、EC2 コンソールにリストされ、他の EC2 インスタンスと同様にマネージドインスタンスと呼ばれるようになります。

Windows ユーザー向けの情報

Windows インスタンスの Amazon EC2 ユーザーガイドの「ハイブリッド環境での Systems Manager の設定」を参照してください。

ハイブリッド環境で Systems Manager を使い始めるには

  1. IAM サービスおよびユーザーロールを作成する: IAM サービスロールがあれば、ハイブリッド環境のサーバーと VM は Systems Manager SSM サービスとやり取りできます。IAM ユーザーロールがあれば、ユーザーは SSM API とやり取りして、Amazon EC2 コンソールからか直接に Run Command API を使用してコマンドを実行できます。サービスロールの作成については、このトピックの後半で説明します。そこでは、ユーザーロールの作成方法に関するトピックへのリンクを示します。

  2. 前提条件を確認する: ハイブリッド環境のサーバーと VM が Systems Manager の最小要件を満たしていることを確認します。詳細については、「Systems Manager の前提条件」を参照してください。

  3. マネージドインスタンスのアクティベーションを作成する: マネージドインスタンスのアクティベーションは、ハイブリッド環境の 1 つ以上のサーバーと VM を Systems Manager に登録します。マネージドインスタンスのアクティベーションの作成については、このトピックの後半で説明します。

  4. SSM エージェントのデプロイ: SSM エージェントは Systems Manager のリクエストを処理し、リクエストに指定されたとおりにマシンを設定します。このトピックの後半で説明するように、ハイブリッド環境のサーバーと VM に SSM エージェントをダウンロードしてインストールする必要があります。

IAM サービスロールの作成

ハイブリッド環境のサーバーおよび VM が Systems Manager SSM サービスと通信するには、IAM ロールが必要です。ロールは、SSM サービスに対する AssumeRole 信頼を付与します。

注記

サービスロールの作成は AWS アカウントごとに一度のみ行う必要があります。

AWS CLI を使用してハイブリッド環境のサーバーおよび VM 用に IAM サービスロールを作成するには

  1. 以下の信頼ポリシー (この例では SSMService-Trust.json) のテキストファイルを作成します。.json ファイル拡張子を付けてこのファイルを保存します。

    Copy
    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ssm.amazonaws.com"}, "Action": "sts:AssumeRole" } }
  2. サービスロールを作成するには、create-role コマンドを使用します。この例では、SSMServiceRole という名前のロールを作成します。

    Copy
    aws iam create-role --role-name SSMServiceRole --assume-role-policy-document file://SSMService-Trust.json
  3. 以下のように、attach-role-policy を使用して SSMServiceRole でセッショントークンを作成できます。セッショントークンは、Systems Manager を使用してコマンドを実行するためのアクセス権限をマネージドインスタンスに付与します。

    Copy
    aws iam attach-role-policy --role-name SSMServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM

ユーザーが SSM API と通信できるようにする IAM ロールを作成する必要があります。詳細については、「Systems Manager のアクセス設定」を参照してください。

マネージドインスタンスのアクティベーションを作成する

ハイブリッド環境のサーバーおよび VM をマネージドインスタンスとしてセットアップするには、マネージドインスタンスのアクティベーションを作成する必要があります。アクティベーションが完了したら、アクティベーションコードと ID を受け取ります。このコードと ID の組み合わせは、Amazon EC2 のアクセス ID とシークレットキーに似ており、マネージドインスタンスから Systems Manager サービスへのセキュアなアクセスが可能になります。

重要

マネージドインスタンスのアクティベーションコードと ID を安全な場所に保存します。ハイブリッド環境のサーバーおよび VM に SSM エージェントをインストールするとき、このコードと ID を指定します。コードと ID をなくした場合は、新しいアクティベーションを作成する必要があります。

このセクションの手順では、SSM を使用できるリージョンを指定する必要があります。データセンターやコンピューティング環境に最も近いリージョンを指定することをお勧めします。

注記

マネージドインスタンスのアクティベーションを作成する場合は、アクティベーションの期限が切れる日付けを指定します。有効期限日後にマネージドインスタンスを追加登録するには、新しいアクティベーションを作成する必要があります。有効期限日は、登録されて実行中のインスタンスには影響しません。

コンソールを使用してマネージドインスタンスのアクティベーションを作成するには

  1. Amazon EC2 コンソールを開き、ナビゲーションペインで [Systems Manager Shared Resources] を展開して、[Activation] を選択します。

  2. [Create an Activation] を選択します。

  3. フォームに入力し、[Create Activation] を選択します。

AWS CLI を使用してマネージドインスタンスのアクティベーションを作成するには

  1. AWS Command Line Interface (AWS CLI) をインストールしたマシンで、CLI を使用して次のコマンドを実行します。

    Copy
    aws ssm create-activation --default-instance-name name --iam-role IAM service role –-registration-limit number of managed instances --region region

    以下に例を示します。

    Copy
    aws ssm create-activation --default-instance-name MyWebServers --iam-role RunCommandServiceRole –-registration-limit 10 --region us-east-1
  2. Enter キーを押します。アクティベーションが正常に完了したら、システムからアクティベーションコードと ID が返されます。アクティベーションコードと ID を安全な場所に保存します。

ハイブリッド環境のサーバーおよび VM への SSM エージェントのインストール

開始する前に、マネージドインスタンスのアクティベーションを完了した後に送信されたアクティベーションコードと ID を見つけます。次の手順では、このコードと ID を指定します。

重要

この手順では、オンプレミス環境やハイブリッド環境のサーバーおよび VM を対象としています。Amazon EC2 インスタンスで SSM エージェントをダウンロードおよびインストールする場合は、「SSM エージェントのインストール」を参照してください。

以下のスクリプトの URL では、すべての AWS リージョンから SSM エージェントをダウンロードできます。特定のリージョンからエージェントをダウンロードする場合は、https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/https://amazon-ssm-region.s3.amazonaws.com/ に置き換えます。次に、regionSSM を使用できるリージョンに置き換えます。

ハイブリッド環境のサーバーおよび VM に SSM エージェントをインストールするには

  1. ハイブリッド環境のサーバーまたは VM にログオンします。

  2. SSH に以下のコマンドブロックを貼り付けます。アクティベーションコード、アクティベーション ID、SSM エージェントをダウンロードするリージョンを指定します。root ユーザーの場合は sudo が必要です。

    Amazon Linux、RHEL 6.x、CentOS 6.x 上

    Copy
    mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo stop amazon-ssm-agent sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo start amazon-ssm-agent

    RHEL 7.x および CentOS 7.x 上

    Copy
    mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo systemctl start amazon-ssm-agent

    Ubuntu 上

    Copy
    mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo service amazon-ssm-agent start
  3. Enter キーを押します。

このコマンドは、ハイブリッド環境のサーバーまたは VM に SSM エージェントをダウンロードしてインストールします。コマンドは、SSM エージェントを停止してから、サーバーまたは VM を SSM サービスに登録します。これで、サーバーまたは VM はマネージドインスタンスになりました。コンソールに表示されるこれらのインスタンスには、"mi-" というプレフィックスが付きます。List コマンドを使用して、すべてのインスタンスを表示できます。詳細については、Amazon EC2 Systems Manager API Reference を参照してください。

Run Command を使用してマネージドインスタンスでコマンドを実行する方法については、「Amazon EC2 Run Command を使用したコマンドの実行」を参照してください。