Systems Manager Distributor とステートマネージャーを使用した CloudWatch エージェントのインストール - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Systems Manager Distributor とステートマネージャーを使用した CloudWatch エージェントのインストール

Systems Manager ステートマネージャーと Systems Manager Distributor を使用して、サーバーとEC2インスタンスに CloudWatch エージェントを自動的にインストールおよび更新できます。Distributor には、最新の CloudWatchエージェントバージョンをインストールする AmazonCloudWatchAgent AWS マネージドパッケージが含まれています。

このインストール方法には、次のような前提条件があります。

  • Systems Manager エージェントは、サーバーまたはEC2インスタンスにインストールして実行する必要があります。Systems Manager エージェントは、Amazon Linux、Amazon Linux 2、および一部の にプリインストールされていますAMIs。エージェントは、他のイメージ、オンプレミス、サーバーにもインストールVMsして設定する必要があります。

    注記

    Amazon Linux 2 のサポートは間もなく終了します。詳細については、「Amazon Linux 2FAQs」を参照してください。

  • 必要な CloudWatch と Systems Manager のアクセス許可を持つIAMロールまたは認証情報は、EC2インスタンスにアタッチするか、オンプレミスサーバーの認証情報ファイルで定義する必要があります。例えば、Systems Manager AmazonSSMManagedInstanceCoreの場合は 、 CloudWatchAgentServerPolicyの場合は の AWS マネージドポリシーを含む IAMロールを作成できます CloudWatch。ssm-cloudwatch-instance-role.yaml AWS CloudFormation テンプレートを使用して、これらのポリシーの両方を含む IAMロールとインスタンスプロファイルをデプロイできます。このテンプレートは、EC2インスタンスの他の標準IAMアクセス許可を含めるように変更することもできます。オンプレミスサーバーまたは の場合VMs、 はオンプレミスサーバー用に設定された Systems Manager サービスロールを使用するように CloudWatch エージェントを設定する必要があります。詳細については、 AWS ナレッジセンターの「Systems Manager エージェントと統合 CloudWatch エージェントを使用するオンプレミスサーバーで一時的な認証情報のみを使用するように設定するにはどうすればよいですか?」を参照してください。

次のリストは、Systems Manager Distributor とステートマネージャーのアプローチを使用して CloudWatch エージェントをインストールおよび維持するいくつかの利点を示しています。

  • 複数の の自動インストール OSs – エージェントをダウンロードしてインストールするために、OS ごとにスクリプトを CloudWatch記述して維持する必要はありません。

  • 自動更新チェック — ステートマネージャーは、各EC2インスタンスが最新バージョン CloudWatchであることを自動的かつ定期的にチェックします。

  • コンプライアンスレポート – Systems Manager コンプライアンスダッシュボードには、Distributor パッケージのインストールに失敗したEC2インスタンスが表示されます。

  • 新しく起動されたEC2インスタンスの自動インストール – アカウントに起動された新しいEC2インスタンスは自動的に CloudWatch エージェントを受け取ります。

ただし、この方法を選択する前に、次の 3 つの領域も考慮する必要があります。

  • 既存の関連付けとの衝突 – 別の関連付けがエージェントをインストールまたは設定している場合 CloudWatch 、2 つの関連付けが互いに干渉し、問題を引き起こす可能性があります。このアプローチを使用する場合は、エージェントと設定をインストールまたは更新 CloudWatchする既存の関連付けをすべて削除する必要があります。

  • カスタムエージェント設定ファイルの更新 - ディストリビュータは、デフォルトの設定ファイルを使用してインストールを実行します。カスタム設定ファイルまたは複数の CloudWatch 設定ファイルを使用する場合は、インストール後に設定を更新する必要があります。

  • マルチリージョンまたはマルチアカウントの設定 - ステートマネージャーの関連付けは、各アカウントとリージョンで設定する必要があります。マルチアカウント環境の新しいアカウントは、ステートマネージャーの関連付けを含めるように更新する必要があります。複数のアカウントとリージョンが必要な標準を取得して適用できるように、 CloudWatch 設定を一元化または同期する必要があります。

CloudWatch エージェントのデプロイと設定のためにステートマネージャーとディストリビューターを設定する

Systems Manager 高速セットアップを使用すると、EC2インスタンスに CloudWatch エージェントを自動的にインストールして更新するなど、Systems Manager の機能をすばやく設定できます。高速セットアップは、選択した内容に基づいて Systems Manager リソースをデプロイして設定する AWS CloudFormation スタックをデプロイします。

次のリストは、 CloudWatch エージェントの自動インストールと更新のために高速セットアップによって実行される 2 つの重要なアクションを示しています。

  1. Systems Manager のカスタムドキュメントを作成する – クイックセットアップは、ステートマネージャで使用するために、次の Systems Manager ドキュメントを作成します。ドキュメント名は異なる場合がありますが、内容は同じままです。

    • CreateAndAttachIAMToInstance - それらが存在しない場合は、AmazonSSMRoleForInstancesQuickSetup ロールとインスタンスプロファイルを作成し、ロールに AmazonSSMManagedInstanceCore ポリシーを付与します。これには、必要なCloudWatchAgentServerPolicyIAMポリシーは含まれません。このポリシーを更新し、次のセクションで説明するように、このポリシーを含めるようにこの Systems Manager ドキュメントを更新する必要があります。

    • InstallAndManageCloudWatchDocument – Distributor で CloudWatch エージェントをインストールし、Systems Manager ドキュメントを使用してデフォルトの CloudWatch エージェント設定で各EC2インスタンスを 1 AWS-ConfigureAWSPackage 回設定します。

    • UpdateCloudWatchDocumentAWS-ConfigureAWSPackage Systems Manager ドキュメントを使用して最新の CloudWatch CloudWatchエージェントをインストールしてエージェントを更新します。エージェントを更新またはアンインストールしても、EC2インスタンスから既存の CloudWatch 設定ファイルは削除されません。

  2. ステートマネージャーの関連付けを作成する - ステートマネージャの関連付けは、カスタム作成された Systems Manager ドキュメントを使用するように作成および構成されます。ステートマネージャーの関連付け名は異なる場合がありますが、設定は同じままです。

    • ManageCloudWatchAgent – EC2インスタンスごとに InstallAndManageCloudWatchDocument Systems Manager ドキュメントを 1 回実行します。

    • UpdateCloudWatchAgent – EC2インスタンスごとに UpdateCloudWatchDocument Systems Manager ドキュメントを 30 日ごとに実行します。

    • CreateAndAttachIAMToInstance Systems Manager ドキュメントをEC2インスタンスごとに 1 回実行します。

完了した高速セットアップ設定を補強してカスタマイズし、アクセス許可を含め CloudWatch、カスタム CloudWatch 設定をサポートする必要があります。特に、CreateAndAttachIAMToInstanceInstallAndManageCloudWatchDocument ドキュメントを更新する必要があります。クイックセットアップで作成された Systems Manager ドキュメントを手動で更新できます。または、独自の CloudFormation テンプレートを使用して、必要な更新で同じリソースをプロビジョニングしたり、高速セットアップを使用せずに他の Systems Manager リソースを設定およびデプロイしたりできます。

重要

高速セットアップは、選択した内容に基づいて Systems Manager リソースをデプロイおよび設定する AWS CloudFormation スタックを作成します。クイックセットアップの選択肢を更新する場合は、Systems Manager のドキュメントを手動で再更新する必要がある場合があります。

以下のセクションでは、高速セットアップによって作成された Systems Manager リソースを手動で更新する方法と、独自の AWS CloudFormation テンプレートを使用して更新された高速セットアップを実行する方法について説明します。高速セットアップと によって作成されたリソースを手動で更新しないように、独自の AWS CloudFormation テンプレートを使用することをお勧めします AWS CloudFormation。

Systems Manager のクイックセットアップを使用して、作成した Systems Manager のリソースを手動で更新します。

高速セットアップアプローチによって作成された Systems Manager リソースは、必要な CloudWatch エージェントのアクセス許可が含まれ、複数の CloudWatch 設定ファイルをサポートするように更新する必要があります。このセクションでは、IAMロールと Systems Manager ドキュメントを更新して、複数のアカウントからアクセスできる CloudWatch 設定を含む一元管理された S3 バケットを使用する方法について説明します。 CloudWatch 設定ファイルを保存する S3 バケットの作成については、このガイドの 設定の管理 CloudWatch セクションで説明します。

CreateAndAttachIAMToInstance Systems Manager ドキュメントの更新

高速セットアップによって作成されたこの Systems Manager ドキュメントは、EC2インスタンスに既存のIAMインスタンスプロファイルがアタッチされているかどうかを確認します。もしそうなら、それは既存のロールに AmazonSSMManagedInstanceCore ポリシーを付与します。これにより、既存のEC2インスタンスプロファイルを通じて割り当てられる可能性のある AWS アクセス許可が、既存のインスタンスに失われないように保護されます。既にインスタンスプロファイルがアタッチされているEC2インスタンスにCloudWatchAgentServerPolicyIAMポリシーをアタッチするには、このドキュメントにステップを追加する必要があります。Systems Manager ドキュメントは、IAMロールが存在しない場合や、EC2インスタンスにインスタンスプロファイルがアタッチされていない場合にもロールを作成します。ドキュメントのこのセクションを更新して、 CloudWatchAgentServerPolicyIAMポリシーも含める必要があります。

完成した CreateAndAttachIAMToInstance.yaml サンプルドキュメントを確認し、高速セットアップによって作成されたドキュメントと比較します。既存のドキュメントを編集して、必要な手順と変更を含めます。クイックセットアップの選択肢に基づいて、クイックセットアップで作成されたドキュメントは、提供されたサンプルドキュメントとは異なる場合があります。そのため、必要な調整を行ってください。サンプルドキュメントには、欠落しているパッチを毎日スキャンするためのクイックセットアップオプションの選択肢が含まれています。そのため、Systems Manager パッチマネージャーのポリシーが含まれています。

InstallAndManageCloudWatchDocument Systems Manager のドキュメントの更新

高速セットアップによって作成されたこの Systems Manager ドキュメントは、 CloudWatch エージェントをインストールし、デフォルトの CloudWatch エージェント設定で設定します。 CloudWatch デフォルト設定は、事前定義された基本的なメトリクスセットと一致します。デフォルトの設定ステップを置き換え、 CloudWatch 設定 S3 バケットから CloudWatch 設定ファイルをダウンロードするステップを追加する必要があります。

完成した InstallAndManageCloudWatchDocument.yaml 更新ドキュメントを確認し、高速セットアップによって作成されたドキュメントと比較します。クイックセットアップで作成されたドキュメントは異なる場合があるため、必要な調整を行っていることを確認してください。既存のドキュメントを編集して、必要な手順と変更を含めます。

高速セットアップ AWS CloudFormation の代わりに を使用する

高速セットアップを使用する代わりに、 AWS CloudFormation を使用して Systems Manager を設定できます。この方法では、特定の要件に従って Systems Manager の設定をカスタマイズできます。このアプローチでは、カスタム CloudWatch 設定をサポートするために高速セットアップによって作成された設定済み Systems Manager リソースを手動で更新する必要もなくなります。

高速セットアップ機能では AWS CloudFormation 、選択した内容に基づいて Systems Manager リソースをデプロイおよび設定するための AWS CloudFormation スタックセットも使用および作成します。 AWS CloudFormation スタックセットを使用する前に、複数のアカウントまたはリージョンにまたがるデプロイをサポートするために AWS CloudFormation StackSets で使用されるIAMロールを作成する必要があります。高速セットアップは、 でマルチリージョンまたはマルチアカウントデプロイをサポートするために必要なロールを作成します AWS CloudFormation StackSets。1 つのアカウントとリージョンから複数のリージョンまたは複数のアカウントに Systems Manager リソースを設定およびデプロイ AWS CloudFormation StackSets する場合は、 の前提条件を満たす必要があります。詳細については、 AWS CloudFormation ドキュメントの「スタックセットオペレーションの前提条件」を参照してください。

カスタマイズした高速セットアップについては、AWS-QuickSetup-SSMHostMgmt.yaml AWS CloudFormation テンプレートを確認してください。

AWS CloudFormation テンプレートのリソースと機能を確認し、要件に応じて調整する必要があります。使用する AWS CloudFormation テンプレートをバージョン管理し、変更を段階的にテストして、必要な結果を確認する必要があります。さらに、クラウドセキュリティレビューを実行して、組織の要件に基づいて必要なポリシー調整があるかどうかを判断する必要があります。

AWS CloudFormation スタックを単一のテストアカウントとリージョンにデプロイし、必要なテストケースを実行して、目的の結果をカスタマイズして確認する必要があります。その後、1 つのアカウントの複数のリージョンに、複数のアカウントと複数のリージョンにデプロイを段階させることができます。

AWS CloudFormation スタックを持つ単一のアカウントとリージョンでカスタマイズされた高速セットアップ

単一のアカウントとリージョンのみを使用している場合は、 AWS CloudFormation スタックセットの代わりに完全な例を AWS CloudFormation スタックとしてデプロイできます。ただし、可能な場合は、単一のアカウントとリージョンのみを使用する場合でも、マルチアカウント、マルチリージョンスタックセットのアプローチを使用することをお勧めします。 AWS CloudFormation StackSets を使用すると、将来的に追加のアカウントやリージョンに拡張することが容易になります。

以下のステップを使用して、AWS-QuickSetup-SSMHostMgmt.yaml AWS CloudFormation テンプレートを AWS CloudFormation スタックとして 1 つのアカウントとリージョンにデプロイします。

  1. テンプレートをダウンロードし、任意のバージョン管理システム (例:) にチェックインします AWS CodeCommit。

  2. 組織の要件に基づいてデフォルトの AWS CloudFormation パラメータ値をカスタマイズします。

  3. ステートマネージャーの関連付けスケジュールをカスタマイズします。

  4. Systems Manager のドキュメントを InstallAndManageCloudWatchDocument 論理 ID でカスタマイズします。S3 バケットプレフィックスが、 CloudWatch 設定を含む S3 バケットのプレフィックスと一致していることを確認します。

  5. CloudWatch 設定を含む S3 バケットの Amazon リソースネーム (ARN) を取得して記録します。詳細については、このガイドの 設定の管理 CloudWatch セクションを参照してください。 AWS Organizations アカウントに読み取りアクセスを提供するバケットポリシーを含むサンプル cloudwatch-config-s3-bucket.yaml AWS CloudFormation テンプレートが利用可能です。

  6. カスタマイズした高速セットアップ AWS CloudFormation テンプレートを S3 バケットと同じアカウントにデプロイします。

    • CloudWatchConfigBucketARN パラメータには、S3 バケットの を入力しますARN。

    • Systems Manager で有効にする機能に応じて、パラメーターオプションを調整します。

7. IAM ロールの有無にかかわらずテストEC2インスタンスをデプロイし、EC2インスタンスが と連携することを確認します CloudWatch。

  • AttachIAMToInstance ステートマネージャーの関連付けを適用します。これは、スケジュールに従って実行するように構成された Systems Manager Runbook です。ランブックを使用するステートマネージャーの関連付けは、新しいEC2インスタンスに自動的に適用されず、スケジュールに基づいて実行するように設定できます。詳細については、Systems Manager のドキュメントでステートマネージャーを使用したトリガーによるオートメーションの実行を参照してください。

  • EC2 インスタンスに必要なIAMロールがアタッチされていることを確認します。

  • EC2 インスタンスが Systems Manager に表示されることを確認して、Systems Manager エージェントが正しく動作していることを確認します。

  • S3 バケット CloudWatch の設定に基づいて CloudWatch ログとメトリクスを表示して、 CloudWatch エージェントが正しく動作していることを確認します。

で複数のリージョンと複数のアカウントでカスタマイズされた高速セットアップ AWS CloudFormation StackSets

複数のアカウントとリージョンを使用している場合は、AWS-QuickSetup-SSMHostMgmt.yaml AWS CloudFormation テンプレートをスタックセットとしてデプロイできます。スタックセットを使用する前にAWS CloudFormation StackSet、前提条件を満たす必要があります。要件は、自己管理型 または サービスマネージド型 アクセス許可 でスタックセットをデプロイするかどうかによって異なります。

新しいアカウントが自動的にカスタマイズされた Quick Setup を受け取るように、サービス管理アクセス許可でスタックセットをデプロイすることをお勧めします。サービスマネージド型スタックセットは、 AWS Organizations 管理アカウントまたは委任された管理者アカウントからデプロイする必要があります。スタックセットは、 AWS Organizations 管理アカウントではなく、管理者権限が委任された自動化に使用される集中型アカウントからデプロイする必要があります。また、1 つのリージョンに 1 つまたは少数のアカウントを持つテスト組織単位 (OU) をターゲットにして、スタックセットのデプロイをテストすることをお勧めします。

  1. このガイドの AWS CloudFormation スタックを持つ単一のアカウントとリージョンでカスタマイズされた高速セットアップ セクションを参照してステップ 1 ~ 5 を完了します。

  2. にサインインし AWS Management Console、 AWS CloudFormation コンソールを開き、 の作成を選択します StackSet

    • Template is ready (テンプレートの準備ができています)Upload a template file (テンプレートファイルのアップロード) を選択します。要件に合わせてカスタマイズした AWS CloudFormation テンプレートをアップロードします。

    • スタックセットの詳細を指定します:

      • 例えば、StackSet-SSM-QuickSetup のようにスタックセット名を入力します。

      • Systems Manager で有効にする機能に応じて、パラメーターオプションを調整します。

      • CloudWatchConfigBucketARN パラメータには、 CloudWatch 設定ARNの S3 バケットの を入力します。

      • スタックセットオプションを指定し、サービスマネージド型のアクセス許可を で使用するか、セルフマネージド型のアクセス許可を使用する AWS Organizations かを選択します。

        • セルフマネージド型のアクセス許可を選択した場合は、 AWSCloudFormationStackSetAdministrationRoleおよび AWSCloudFormationStackSetExecutionRoleIAMロールの詳細を入力します。管理者ロールはアカウントに存在し、実行ロールは各ターゲットアカウントに存在する必要があります。

      • AWS Organizationsを使用して サービスマネージド型 アクセス許可の場合は、組織全体ではなくテスト OU に最初にデプロイすることをお勧めします。

        • 自動デプロイメントを有効にするかどうかを選択します。有効 を選択することをお勧めします。アカウントの削除動作では、推奨される設定は スタックの削除 です。

      • セルフマネージド型のアクセス許可IDsの場合は、設定する AWS アカウントのアカウントを入力します。自己管理型のアクセス許可を使用する場合は、新しいアカウントごとにこのプロセスを繰り返す必要があります。

      • CloudWatch と Systems Manager を使用するリージョンを入力します。

      • スタックセット向けの オペレーション および スタックインスタンス タブでステータスを表示して、デプロイが成功したことを確認します。

      • このガイドの AWS CloudFormation スタックを持つ単一のアカウントとリージョンでカスタマイズされた高速セットアップセクションのステップ 7 に従って CloudWatch 、デプロイされたアカウントで Systems Manager と が正しく動作していることをテストします。

オンプレミスサーバーを構成する際の考慮事項

オンプレミスサーバーと の CloudWatch エージェントVMsは、EC2インスタンスの場合と同様のアプローチを使用してインストールおよび設定されます。ただし、次の表は、オンプレミスサーバーおよび に CloudWatch エージェントをインストールして設定する際に評価する必要がある考慮事項を示していますVMs。

CloudWatch エージェントに Systems Manager で使用されているものと同じ一時的な認証情報をポイントします。

オンプレミスサーバーを含むハイブリッド環境で Systems Manager をセットアップすると、 IAMロールを使用して Systems Manager をアクティブ化できます。CloudWatchAgentServerPolicy および AmazonSSMManagedInstanceCoreポリシーを含むEC2インスタンス用に作成されたロールを使用する必要があります。

これにより、Systems Manager エージェントは一時的な資格情報をローカル認証情報ファイルに取得して書き込みます。 CloudWatch エージェント設定を同じファイルを指すことができます。このプロセスは、Systems Manager エージェントと統合 CloudWatchエージェントを使用するオンプレミスサーバーを設定して、 ナレッジセンターの一時的な認証情報のみを使用するように設定できます。 AWS

このプロセスは、別の Systems Manager Automation Runbook と State Manager の関連付けを定義し、タグを使用してオンプレミスインスタンスをターゲットにすることで、このプロセスを自動化することもできます。オンプレミスインスタンス向けに Systems Manager のアクティブ化 を作成するとき、インスタンスをオンプレミスインスタンスとして識別するタグを含める必要があります。

VPNまたは AWS Direct Connect と にアクセスできるアカウントとリージョンの使用を検討してください AWS PrivateLink。 AWS Direct Connect または AWS Virtual Private Network (AWS VPN) を使用して、オンプレミスネットワークと仮想プライベートクラウド () 間のプライベート接続を確立できますVPC。 AWS PrivateLink は、インターフェイスVPCエンドポイントを使用して CloudWatch Logs へのプライベート接続を確立します。この方法は、パブリックインターネット経由でパブリックサービスエンドポイントへのデータの送信を妨げる制限がある場合に便利です。
すべてのメトリクスを設定 CloudWatch ファイルに含める必要があります。 Amazon EC2 には標準メトリクス (CPU使用率など) が含まれていますが、これらのメトリクスはオンプレミスインスタンス用に定義する必要があります。別のプラットフォーム設定ファイルを使用して、オンプレミスサーバーのこれらのメトリクスを定義し、その設定をプラットフォームの標準 CloudWatch メトリクス設定に追加できます。

エフェメラルEC2インスタンスに関する考慮事項

EC2 インスタンスは、Amazon EC2 Auto Scaling 、Amazon 、Amazon スポットインスタンス、または によってプロビジョニングされている場合EMR、一時的な またはエフェメラル です AWS Batch。 EC2 エフェメラルEC2インスタンスは、ランタイムオリジンに関する追加情報なしで、共通のロググループの下に非常に多くの CloudWatch ストリームを引き起こす可能性があります。

エフェメラルEC2インスタンスを使用する場合は、ロググループとログストリーム名に動的コンテキスト情報を追加することを検討してください。例えば、スポットインスタンスリクエスト ID、Amazon EMRクラスター名、または Auto Scaling グループ名を含めることができます。この情報は、新しく起動されたEC2インスタンスによって異なり、実行時に取得して設定する必要がある場合があります。これを行うには、起動時に CloudWatch エージェント設定ファイルを書き込み、エージェントを再起動して更新された設定ファイルを含めます。これにより、動的ランタイム情報を使用してログとメトリクスを に CloudWatch配信できます。

また、エフェメラルEC2インスタンスが終了する前に、メトリクスとログが CloudWatch エージェントによって送信されていることを確認する必要があります。 CloudWatch エージェントには、ログバッファとメトリクスバッファをフラッシュする時間間隔を定義するように設定できる flush_interval パラメータが含まれています。ワークロードに基づいてこの値を下げ、 CloudWatch エージェントを停止して、EC2インスタンスが終了する前にバッファを強制的にフラッシュできます。

自動ソリューションを使用した CloudWatch エージェントのデプロイ

自動化ソリューション (Ansible や Chef など) を使用している場合は、それを活用して CloudWatch エージェントを自動的にインストールして更新できます。この方法を使用する場合は、次の考慮事項を評価する必要があります。

  • オートメーションが、サポートする OSsおよび OS バージョンを対象としていることを確認します。自動化スクリプトが組織の のすべてをサポートしていない場合はOSs、サポートされていない の代替ソリューションを定義する必要がありますOSs。

  • 自動化ソリューションがエージェントの更新とアップグレードを定期的にチェック CloudWatchしていることを確認します。自動化ソリューションでは、 CloudWatch エージェントの更新を定期的にチェックするか、エージェントを定期的にアンインストールして再インストールする必要があります。スケジューラまたはオートメーションソリューション機能を使用して、エージェントを定期的にチェックおよび更新できます。

  • エージェントのインストールと構成のコンプライアンスを確認できることを確認します。自動化ソリューションでは、システムにエージェントがインストールされていない場合やエージェントが動作していない時期を判断できるはずです。オートメーションソリューションに通知またはアラームを実装して、失敗したインストールと構成を追跡できます。