Distributor パッケージをインストールまたは更新する - AWS Systems Manager

Distributor パッケージをインストールまたは更新する

AWS Systems Manager の一機能である Distributor を使用して、AWS Systems Manager マネージドノードにパッケージをデプロイできます。パッケージをデプロイするには、AWS Management Console または AWS Command Line Interface (AWS CLI) を使います。コマンドごとに 1 つのパッケージの 1 つのバージョンをデプロイできます。新しいパッケージをインストールすることも、既存のインストールを更新することもできます。特定のバージョンをデプロイするか、常にデプロイ用のパッケージの最新バージョンをデプロイするかを選択できます。パッケージをインストールするには、AWS Systems Manager の一機能である State Manager を使用することをお勧めします。State Manager を使用すると、マネージドノードで常に最新バージョンのパッケージが実行されていることを確認できます。

Preference AWS Systems Manager アクション 詳細情報

パッケージをすぐにインストールまたは更新します。

Run Command

スケジュールにパッケージをインストールするか更新して、インストールに常にデフォルトバージョンが含まれるようにします。

State Manager

特定のタグまたはタグのセットを持つ新しいマネージドノードにパッケージを自動的にインストールします。例えば、新しいインスタンスに Amazon CloudWatch エージェントをインストールする場合などです。

State Manager

これを行う 1 つの方法は、新しいマネージドノードにタグを適用し、State Manager の関連付けでタグをターゲットとして指定することです。State Manager は、一致するタグを持つマネージドノードの関連付けにパッケージを自動的にインストールします。「State Manager 関連付けのターゲットとレート制御について」を参照してください。

コンソールを使用したパッケージの 1 回インストールまたは更新

AWS Systems Manager コンソールを使用してパッケージを 1 回インストールまたは更新できます。1 回限りのインストールを設定すると、Distributor は AWS Systems Manager の一機能である AWS Systems Manager Run Command を使用して、インストールを実行します。

コンソールを使用してパッケージを 1 回インストールまたは更新するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

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

  3. Distributor ホームページで、インストールするパッケージを選択します。

  4. [Install one time (1 回限りインストールする)] を選択します。

    このコマンドによって Run Command が開き、コマンドドキュメント AWS-ConfigureAWSPackage と Distributor パッケージがすでに選択されています。

  5. [Document version (ドキュメントのバージョン)] で、実行する AWS-ConfigureAWSPackage ドキュメントのバージョンを選択します。

  6. [Action] で、[Install] を選択します。

  7. [Installation type (インストールのタイプ)] で、以下のいずれかを選択します。

    • [Uninstall and reinstall (アンインストールと再インストール)]: パッケージは完全にアンインストールされ、再インストールされます。再インストールが完了まで、アプリケーションは利用できません。

    • [インプレース更新]: update スクリプトに指定した指示に従って、新しいファイルまたは変更されたファイルのみが既存のインストールに追加されます。アプリケーションは、更新プロセス中も引き続き使用できます。このオプションは、AWSEC2Launch-Agent パッケージを除く AWS 公開パッケージではサポートされていません。

  8. [Name (名前)] に、選択したパッケージの名前が入力されていることを確認します。

  9. [Version (バージョン)] で、パッケージのバージョン名の値を入力します。このフィールドに何も指定しない場合は、Run Command が Distributor で選択したデフォルトのバージョンをインストールします。

  10. [Targets] (ターゲット) セクションで、タグの指定、インスタンスまたはデバイスの手動選択、またはリソースグループを指定し、このオペレーションを実行するマネージドノードを選択します。

    注記

    リストにマネージドノードが表示されない場合は、「マネージドノードの可用性のトラブルシューティング」を参照してください。

  11. [その他のパラメータ] で、以下の操作を行います。

    • [コメント] に、このコマンドに関する情報を入力します。

    • [タイムアウト (秒)] に、コマンドの実行全体が失敗するまでにシステムが待機する秒数を指定します。

  12. [Rate Control] (レート制御) の場合:

    • [Concurrency] (同時実行) で、コマンドを同時に実行するインスタンスの数または割合 (%) を指定します。

      注記

      タグまたは Resource Groups を指定してターゲットを選択し、ターゲットとなるマネージドノードの数が不明な場合は、割合 (%) を指定してドキュメントを同時に実行できるインスタンスの数を制限します。

    • [Error threshold] (エラーのしきい値) で、マネージドノードの数または割合 (%) で失敗した後に他のターゲットでのコマンドの実行をいつ停止するか指定します。例えば、3 つのエラーを指定した場合、4 番目のエラーが受信されると、Systems Manager はコマンドの送信を停止します。コマンドを処理しているマネージドノードもエラーを送信する可能性があります。

  13. (オプション) コマンド出力をファイルに保存する場合は、[出力オプション][S3 バケットにコマンド出力を書き込む] ボックスを選択します。ボックスにバケット名とプレフィックス (フォルダ) 名を入力します。

    注記

    S3 バケットにデータを書き込む機能を許可する S3 許可は、このタスクを実行する IAM ユーザーのものではなく、インスタンスに割り当てられたインスタンスプロファイル (EC2 インスタンスの場合) または IAM サービスロール (ハイブリッドアクティベーションマシン) のものです。詳細については、「Systems Manager に必要なインスタンスのアクセス許可を設定する」または「ハイブリッド環境に IAM サービスロールを作成する」を参照してください。さらに、指定された S3 バケットが別の AWS アカウント にある場合は、マネージドノードに関連付けられたインスタンスプロファイルまたは IAM サービスロールが、そのバケットへの書き込みに必要なアクセス許可があることを確認してください。

  14. [SNS Notifications (SNS 通知)] セクションで、コマンドの実行状態に関する通知を受け取る場合は、[Enable SNS notifications (SNS 通知を有効にする)] チェックボックスをオンにします。

    Run Command 用の Amazon SNS 通知の設定の詳細については、「Amazon SNS 通知を使用した Systems Manager のステータス変更のモニタリング」を参照してください。

  15. パッケージをインストールする準備ができたら、[Run (実行)] を選択します。

  16. [Command status (コマンドのステータス)] 領域には、実行の進行状況が報告されます。コマンドがまだ進行中の場合は、コンソールの左上隅にある更新アイコンを選択して、[Overall status (全体的なステータス)] 列または [Detailed status (詳細ステータス)] 列に [Success (成功)] または [Failed (失敗)] と表示します。

  17. [Targets and outputs] (ターゲットと出力) エリアで、マネージドノード名の横にあるボタンを選択し、[View output] (出力を表示) を選択します。

    コマンド出力ページには、コマンドの実行結果が表示されます。

  18. (オプション) コマンド出力を S3 バケットに書き込む場合は、[Amazon S3] を選択して出力ログデータを表示します。

コンソールを使用したパッケージのインストールまたは更新のスケジュール

AWS Systems Manager コンソールを使用することで、パッケージのインストールまたは更新をスケジュールします。パッケージのインストールまたは更新をスケジュールする場合、Distributor は AWS Systems Manager State Manager を使用してインストールまたは更新を行います。

コンソールを使用してパッケージのインストールをスケジュールするには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

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

  3. Distributor ホームページで、インストールまたは更新するパッケージを選択します。

  4. [Package (パッケージ)] で、[Install on a schedule (スケジュールに基づいてインストールする)] を選択します。

    このコマンドは、作成された新しい関連付けに State Manager を開きます。

  5. [Name (名前)] に、名前を入力します(例: Deploy-test-agent-package)。これはオプションですが推奨されます。名前にはスペースを使用できません。

  6. [Document (ドキュメント)] リストで、ドキュメント名 AWS-ConfigureAWSPackage は既に選択されています。

  7. [Action (アクション)] で、[Install (インストール)] が選択されていることを確認します。

  8. [Installation type (インストールのタイプ)] で、以下のいずれかを選択します。

    • [Uninstall and reinstall (アンインストールと再インストール)]: パッケージは完全にアンインストールされ、再インストールされます。再インストールが完了まで、アプリケーションは利用できません。

    • [インプレース更新]: update スクリプトに指定した指示に従って、新しいファイルまたは変更されたファイルのみが既存のインストールに追加されます。アプリケーションは、更新プロセス中も引き続き使用できます。

  9. [Name (名前)] に、パッケージの名前が入力されていることを確認します。

  10. [Version (バージョン)] で、最新の公開バージョン以外のパッケージバージョンをインストールする場合は、バージョン ID を入力します。

  11. [Targets (ターゲット)] では、[Selecting all managed instances in this account (このアカウントのすべてのマネージドインスタンスを選択する)]、[Specifying tags (タグを指定する)] または [Manually Selecting Instance (手動でインスタンスを選択する)] を選択します。タグを使用してリソースをターゲットにする場合は、提供されたフィールドにタグキーとタグ値を入力します。

    注記

    [Selecting all managed instances in this account] (このアカウントのすべてのマネージドインスタンスの選択) または [Manually Selecting Instance] (インスタンスの手動での選択) を選択して、マネージド AWS IoT Greengrass コアデバイスを選択することができます。

  12. [Specify schedule (スケジュールの指定)] では、[On Schedule (スケジュールあり)] を選択して定期スケジュールで関連付けを実行、または [No Schedule (スケジュールなし)] を選択して関連付けを一度実行します。これらのパラメータの詳細については、Systems Manager の関連付けの使用を参照してください。コントロールを使用して cron、または関連付けの rate スケジュールを作成します。

  13. [関連付けの作成] を選択します。

  14. [Association (関連付け)] ページで、作成した関連付けの横にあるボタンを選択し、[Apply association now (関連付けを今すぐ適用)] を選択します。

    State Manager は、指定されたターゲットで関連付けを作成してすぐに実行します。関連付けの実行結果の詳細については、このガイドの「Systems Manager の関連付けの使用」を参照してください。

[詳細オプション]、[Rate control (レート制御)]、および [Output options (出力オプション)] のオプションの使用方法の詳細については、「Systems Manager の関連付けの使用」を参照してください。

AWS CLI を使用したパッケージのインストール (1 回)

AWS CLI で send-command を実行して、Distributor パッケージを 1 回インストールします。パッケージがすでにインストールされている場合、パッケージがアンインストールされ、新しいバージョンがインストールされる間、アプリケーションはオフラインになります。

AWS CLI を使用してパッケージを 1 回インストールするには
  • AWS CLI で、次のコマンドを実行します。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "instance-IDs" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}'
    注記

    installationType のデフォルトの動作は Uninstall and reinstall です。完全なパッケージをインストールする場合は、このコマンドから "installationType":["Uninstall and reinstall"] を省略できます。

    以下はその例です。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "i-00000000000000" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["ExamplePackage"]}'

send-command コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンス で AWS Systems Manager のセクションの「send-command」を参照してください。

AWS CLI を使用したパッケージの更新 (1 回)

AWS CLI で send-command を実行して、関連するアプリケーションをオフラインにすることなく、Distributor パッケージを更新できます。パッケージ内の新規または更新されたファイルのみが置き換えられます。

AWS CLI を使用してパッケージを 1 回更新するには
  • AWS CLI で、次のコマンドを実行します。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "instance-IDs" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}'
    注記

    新規または変更されたファイルを追加する場合は、コマンドに "installationType":["In-place update"] を含める必要があります。

    以下はその例です。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "i-02573cafcfEXAMPLE" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["ExamplePackage"]}'

send-command コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンス で AWS Systems Manager のセクションの「send-command」を参照してください。

AWS CLI を使用してパッケージのインストールをスケジュールする

AWS CLI で create-association を実行して、Distributor パッケージをスケジュールに基づいてインストールします。--name の値、ドキュメント名は常に AWS-ConfigureAWSPackage です。次のコマンドでは、キー InstanceIds を使用してターゲットマネージドノードを指定します。パッケージがすでにインストールされている場合、パッケージがアンインストールされ、新しいバージョンがインストールされる間、アプリケーションはオフラインになります。

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"instance-ID1\",\"instance-ID2\"]}]
注記

installationType のデフォルトの動作は Uninstall and reinstall です。完全なパッケージをインストールする場合は、このコマンドから "installationType":["Uninstall and reinstall"] を省略できます。

以下はその例です。

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["Test-ConfigureAWSPackage"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"i-02573cafcfEXAMPLE\",\"i-0471e04240EXAMPLE\"]}]

create-association コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンス で AWS Systems Manager のセクションの「create-association」を参照してください。

AWS CLI を使用したパッケージ更新のスケジュール

AWS CLI で create-association を実行して、関連付けられたアプリケーションをオフラインにすることなく、スケジュールに従って Distributor パッケージを更新できます。パッケージ内の新規または更新されたファイルのみが置き換えられます。--name の値、ドキュメント名は常に AWS-ConfigureAWSPackage です。次のコマンドでは、キー InstanceIds を使用してターゲットインスタンスを指定します。

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"instance-ID1\",\"instance-ID2\"]}]
注記

新規または変更されたファイルを追加する場合は、コマンドに "installationType":["In-place update"] を含める必要があります。

以下はその例です。

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["Test-ConfigureAWSPackage"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"i-02573cafcfEXAMPLE\",\"i-0471e04240EXAMPLE\"]}]

create-association コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンス で AWS Systems Manager のセクションの「create-association」を参照してください。