New RelicはAWS Systems Manager Distributorとのインテグレーションを発表しました。今後は、AWSインターフェースを介して、複数のノードにインフラストラクチャエージェントをすばやく簡単にインストールできるようになります。このインテグレーションにより、異なるハードウェアアーキテクチャーや異なるOSに分散する場合が多い個々のAWSインスタンスへのインストール作業が不要になり、サービスの監視、取り込みデータのクエリ、ダッシュボードの構築をNew Relicで行えるようになります。さらに、3万件のインスタンスのエージェントライフサイクルを、オーバーヘッドなくAWSコンソールで直接管理できるようになります。

このインテグレーションにより、AWSアカウントに存在するEC2インスタンス全体にNew Relicインフラストラクチャエージェントインストレーションを実施することで、ほぼ瞬時にオブザーバビリティが得られます。この機能は、一時的にインフラストラクチャの一部として組み込まれるインスタンスや、将来的に生成される可能性がある新たなCE2インスタンスの自動計装を可能にし、エージェントインストレーションを実行できるようになります。また、AWS CLIやAWS IaCツールを使用してNew Relicエージェントにインストールすることもできるようになります。

AWS Systems Manager Distributorとは

AWS Systems Managerは、AWSクラウドにあるアプリケーションとインフラストラクチャの管理を可能にします。AWS Systems Manager向けに設定されたマシンである「ノード」への配布をターゲットにした一連の性能を提供します。ハイブリッド環境にあるAmazon Elastic Compute Cloud(Amazon EC2)のインスタンス、エッジデバイス、オンプレサーバー、仮想マシン(VM)を管理対象ノードとして設定することで、これらのインスタンスをAWSの地域、AWSアカウントID、ノードID、タグでグループ化でき、ターゲットとして簡単に設定できます。

インテグレーションを使用するメリット

いわゆる「簡潔なディストリビューター」であるAWS Systems Manager Distributorのおかげで、New Relicは、中央に集約されバージョン別に管理されたロケーションにソフトウェアパッケージを保存し、それを管理されたインスタンス、すなわちノードに配布できるようになります。既存のAWS Systems Manager機能を統合してパッケージの配布とインストレーションを簡素化、規模化し、プロセスをアップデートします。

その結果、ノード全体にわたるNew Relicインフラストラクチャエージェントのデプロイが、個別に計装を実行するのに比べて格段に容易になります。Distributorでは、異なるオペレーティングシステムのタイプを考慮して自動でパッケージの選択を行うため、これらの因子で処理できるすべてのノードの計装について心配する必要はなくなります。ただし、管理対象ノードの計装を制御する必要がある場合は、Distributorはタグ、地域、アカウント番号、デバイスIDでノードをグループ化し、必要に応じて異なるパッケージバージョンをインストールすることができます。さらに、パッケージを一度にすべてデプロイするのか、予定された頻度で行うのかを設定できます。そのため、新たなパッケージが公開された際にインフラストラクチャエージェントの自動アップデートを簡単に実行できます。これらのすべてをAWS CLIを通じて行えるため、作業中にコンテキストを切り替える必要はありません。

このインテグレーションの使用方法

インテグレーションを使用する前に、以下の前提条件が必要になります。

  • AWS Systems Manager(SSM)エージェントをAmazon Elastic Compute Cloud(Amazon EC2)インスタンスにインストールする。SSMエージェントは、AWSが提供するいくつかのAmazon Machine Images(AMIs)にプリインストールされている。詳細はこちら
  • EC2インスタンスに、SSMエンドポイントの外部ネットワーク接続があるか、またはAmazon Virtual Private Cloud(VPC)エンドポイントが設定されていることを確認する。詳細はこちら
  • EC2インスタンスに付与されたAWS Identity and Access Management(IAM)インスタンスのプロファイルが、少なくともこのAWSドキュメンテーションで定義されているポリシーを持つロールを使用していることを確認する。もしくは、Default Host Management Configurationを使用してアカウントレベルでのアクセス権付与を検討する。詳細はこのAWSドキュメンテーションを参照

次に、以下のステップを実行してAWS Systems Manager State Managerアソシエーションを作成します。これにより、AWSアカウントの既存のまたは将来的に使用されるすべてのEC2インスタンスが、上記に示された前提条件を満たす限りNew Relicインフラストラクチャエージェントで自動実行されることを確実にします。

  1. AWS Consoleからアソシエーションを作成する
  2. AWS-ConfigureAWSPackageを選択する。配布パッケージのインストールにはAWS-ConfigureAWSPackage 自動化ドキュメントを使用する
  3. 以下のパラメーターを入力する
    1. action: Install
    2. installationType: Uninstall and reinstall、またはIn-Place updateを選択。パッケージは完全にアンインストールされた後に再インストールされる。New Relicエージェントは、再インストールが所定アップデート完了となるまで使用できない。アプリケーションはアップデートプロセスの間も使用可能
    3. additionalArguments:以下のコードをペーストする。必ずYOUR_NEWRELIC_LICENSE_KEYを自身のNew Relic API Keyと置き換える

{
  "SSM_NR_LICENSE_KEY" : "YOUR_NEWRELIC_LICENSE_KEY"
}

Systems Managerが制御するノードからNew Relicにデータが送られてきたら、すべての必要データを一目で確認し、オブザーバビリティを拡張するダッシュボードを作成できる。

4. ターゲットの選択でChoose all instancesを選ぶ。もしくは、必要に応じてインスタンスタグを指定し、New RelicエージェントをEC2インスタンスのサブセットにインストールすることも可能

5. スケジュール指定でNo scheduleを選択し、New Relicエージェントがすべての既存または新規EC2インスタンスを少なくとも1度は実行することを確実にする

注意:New Relicエージェントが必ず毎月アップデートされるようにするには、上記のステップに従って別のStateマネージャーアソシエーションを作成し、On Scheduleを選択してRate schedule builderを設定し、30日ごとにスケジュールが実行されるようにする。

6. (オプション)出力オプションで、インストールのログをAmazon S3バケットに記述する。これを行う場合、追加的にS3向けNew Relicログインジェスターを設定することが推奨される。これにより、エンドツーエンドのオブザーバビリティのためのNew Relic UIから直接のインストールログのクエリが可能になる

7. アソシエーションを作成する

これで数分のうちに、New Relicエージェントはすべての既存のEC2インスタンスにインストールされ、あらゆる新規のEC2インスタンスとデータがNew Relic UIで即座に監視できるようになります。

New-Relic-infrastructure-monitoring-agent の使用

直接AWS-ConfigureAWSPackage を参照するのでは無く、ディストリビューターのNew-Relic-infrastructure-monitoring-agent を利用する事もできます。

以下のStepでノードに対してInfrastructure Agentを導入する事ができます。

  1. System Manager ディストリビューターを開き、サードパーティーパッケージを選択する。
  2. New-Relic-infrastructure-monitoring-agent を選択し、1回限りまたはスケジュールインストールを選択する。
  3. 以下のパラメーターを指定する。
    • Action:Install
    • Installation Type:Uninstall and reinstall、またはIn-Place updateを選択。
    • Name:New-Relic-infrastructure-monitoring-agent(デフォルト)任意で変更可能
    • Version :空欄のまま
    • Additional Arguments:YOUR_NEWRELIC_LICENSE_KEYを自身のNew Relic API Keyと置き換え以下のコードを張り付け
{
  "SSM_NR_LICENSE_KEY" : "YOUR_NEWRELIC_LICENSE_KEY"
}
  1. ターゲット:Install対象のインスタンスをタグ、リストもしくはリソースグループで指定します。
  2. その他のパラメータ:変更する必要はありません。
  3. レート制御:同時にInstallするインスタンス数および、エラーになった場合にInstallタスクを停止する閾値を設定します。
  4. 出力オプション:Installログを出力するS3バケットを指定します。
  5. CloudWatch alarm、SNS通知、AWS コマンドラインインターフェイスのコマンドは変更する必要はありません。要件に合わせて任意で設定を行ってください。
  6. 「実行」を行うと、手順4で指定されたノードに対してInfrastructure AgentのInstallが実施されます。

DistributorによるInstallの場合、ProcessMonitoringおよびLogMonitoringは有効化されません。

ProcessMonitoringやLogMonitoringが必要な場合は、適宜設定の追加を行ってください。