🐅

AWSシステムマネージャーを使用してEC2へのDatadog agentのインストールを自動化する

2024/07/18に公開

AWSシステムマネージャーのAutomationドキュメントを使用すると、既存の複数のEC2インスタンスにDatadog agentを効率的にインストールできます。

利点

  • 複数のインスタンスに同時にインストールできる
  • プロセスが自動化されるため、人的エラーのリスクが低減される
  • インストールプロセスの一貫性が保たれる
  • 大規模な環境での展開が容易になる

前提条件

  1. AWSアカウントにアクセス可能であること
  2. 対象のEC2インスタンスにSSMエージェントがインストールされていること
  3. EC2インスタンスに適切なIAMロールが割り当てられていること(AmazonSSMManagedInstanceCore ポリシーを含む)
  4. DatadogのAPI keyを用意していること

手順

SSMオートメーションドキュメントの作成

  1. AWSマネジメントコンソールで「Systems Manager」に移動します。

  2. 左側のメニューから「ドキュメント」を選択し、「ドキュメントの作成」の中の「オートメーション」をクリックします。

  3. 「コード」をクリックし以下のYAMLコードを使用して新しいオートメーションドキュメントを作成します:

---
schemaVersion: '0.3'
description: 'Install Datadog Agent on EC2 instances'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  InstanceIds:
    type: StringList
    description: 'EC2 Instance IDs'
  DatadogApiKey:
    type: String
    description: 'Datadog API Key'
  AutomationAssumeRole:
    type: String
    description: '(Optional) The ARN of the role that allows Automation to perform the actions on your behalf.'
    default: ''
mainSteps:
  - name: InstallDatadogAgent
    action: 'aws:runCommand'
    inputs:
      DocumentName: AWS-RunShellScript
      InstanceIds: '{{InstanceIds}}'
      Parameters:
        commands:
          - |
            DD_API_KEY={{DatadogApiKey}} bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"

ドキュメントに名前を付けて(例:「datadog_agent_install」)保存します。

オートメーションの実行

Systems Managerダッシュボードで「オートメーション」を選択し、「Owned by me」の中に先ほど作成したRunbookを指定し「オートメーションの実行」をクリックします。

以下のパラメータを入力します:

  • InstanceIds: Datadog agentをインストールしたいEC2インスタンスIDのリスト
    ※Show interactive instance pickerをONにするとEC2が出てくるのでそれを選択してもOK
  • DatadogApiKey: DatadogのAPI key

「実行」をクリックしてオートメーションを開始します。

結果の確認

オートメーションの実行状況を確認します。
完了後、対象のEC2インスタンスにSSH接続し、Datadog agentが正常にインストールされたことを確認します:

sudo systemctl status datadog-agent

注意点

  • SSMエージェントが正しくinstallされている必要がある
  • 適切なIAMが設定されている必要がある
  • datadog API keyは機密情報なので取り扱い注意
GitHubで編集を提案

Discussion