🐅
AWSシステムマネージャーを使用してEC2へのDatadog agentのインストールを自動化する
AWSシステムマネージャーのAutomationドキュメントを使用すると、既存の複数のEC2インスタンスにDatadog agentを効率的にインストールできます。
利点
- 複数のインスタンスに同時にインストールできる
- プロセスが自動化されるため、人的エラーのリスクが低減される
- インストールプロセスの一貫性が保たれる
- 大規模な環境での展開が容易になる
前提条件
- AWSアカウントにアクセス可能であること
- 対象のEC2インスタンスにSSMエージェントがインストールされていること
- EC2インスタンスに適切なIAMロールが割り当てられていること(AmazonSSMManagedInstanceCore ポリシーを含む)
- DatadogのAPI keyを用意していること
手順
SSMオートメーションドキュメントの作成
-
AWSマネジメントコンソールで「Systems Manager」に移動します。
-
左側のメニューから「ドキュメント」を選択し、「ドキュメントの作成」の中の「オートメーション」をクリックします。
-
「コード」をクリックし以下の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は機密情報なので取り扱い注意
Discussion