1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

StylezAdvent Calendar 2024

Day 14

ECS最適化インスタンスにCloudWatch Agentの導入にハマった話

Last updated at Posted at 2024-12-14

概要

AmazonLinux2023のECS最適化インスタンスの起動時にユーザーデータでCloudWatch Agentを導入しようとしたのですが、なぜかインストールが失敗したり、失敗したり、失敗したり、たまに成功したりで不安定でした。(主に失敗することばかり)

ECS on EC2環境のインスタンスは、Auto Scalingグループで管理されて起動テンプレートで色々と設定を行い、そこでCloudWatch Agentのインストールを実施するようにしていました。

CloudWatch Agentのインストールコマンド

以下のように本当にシンプルな内容です。
今回は、最初のインストールの箇所が失敗していました。

# インストール
sudo dnf install -y amazon-cloudwatch-agent

# ----(設定関連は省略)----

# スタート
sudo systemctl start amazon-ssm-agent

発生した問題

起動テンプレートでEC2の起動後にセッションマネージャー経由で接続して、ステータス確認したところ以下のようにインストールされていない状態でした。

sh-5.2$ sudo systemctl status amazon-cloudwatch-agent
Unit amazon-cloudwatch-agent.service could not be found.

あれっ、と思いインスタンスの起動時のシステムログを確認したところ、以下のようなエラーが出ていました。

[   45.516162] cloud-init[1688]: [Errno 2] No such file or directory: '/var/cache/dnf/amazonlinux-9918409075bd901b/packages/amazon-cloudwatch-agent-1.300044.0-1.amzn2023.x86_64.rpm'
[   45.516320] cloud-init[1688]: The downloaded packages were saved in cache until the next successful transaction.
[   45.516462] cloud-init[1688]: You can remove cached packages by executing 'dnf clean packages'.

調べていたところ、AmazonLinux2023のissueにあるバグを踏んでいることに気がつきました。
↓で色々と議論されていますが、SSM Agentのアップデートが裏で行われていて、yumやdnfコマンドによるインストールが失敗するとのことです。

対応策(回避策)

この記事を書いている時点では、先ほどのIssueは対応されていない状況だったので、リトライを仕込んで回避するように対策しました。

変更後のインストールコマンドは以下のとおりです。
※issueに記載の回避策を使わせてもらっています

attempt=0
max_attempts=10
until sudo dnf install -y amazon-cloudwatch-agent; do
    attempt=$((attempt + 1))
    if [ $attempt -ge $max_attempts ]; then
        echo "Failed to install amazon-cloudwatch-agent after $max_attempts attempts. Exiting."
        exit 1
    fi
    echo "dnf install failed (attempt $attempt/$max_attempts), retrying in $attempt seconds..."
    sleep $attempt
done
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?