Rocky Linux に SSM Agent と AWS CLI を User data でインストールしてみた

User data を使って Rocky Linux に SSM Agent と AWS CLI をインストールしてみました
2022.12.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、望月です。
久しぶりに Rocky Linux を使ったところ、SSM Agent や AWS CLI が入っておらず久しぶりに ssh で EC2 インスタンスへ接続しました。

最近は Systems Manager の機能も充実しており、Systems Manager を使わない手はないのでインストール済みであって欲しいなと思いつつ、User data を利用して起動時に SSM Agent が起動するようにしてみました。

そうすることで初手セッションマネージャーを利用することもでき、EC2 にキーペアが不要となるため、便利ですね。

やってみた

早速ですが User data に以下を追加すれば、OK です。

#!/usr/bin/env bash

if [ $(uname -m) = "x86_64" ]; then
    SSM_AGENT_URL='https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm'
    AWS_CLI_URL='https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip'

elif [ $(uname -m) = "aarch64" ]; then
    SSM_AGENT_URL='https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_arm64/amazon-ssm-agent.rpm'
    AWS_CLI_URL='https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip'

else
	  echo "no match machine hardware name"
	  exit 1
fi

## ssm agent install
sudo dnf install -y ${SSM_AGENT_URL}

sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent

## aws cli install
sudo dnf install -y zip unzip
cd /var/tmp
curl ${AWS_CLI_URL} -o "awscliv2.zip"

unzip awscliv2.zip
sudo ./aws/install

この User data は以下 Rocky Linux のバージョン及びアーキテクチャで動作確認を取っています。

  • Rocky Linux 8
    • x86_64
    • aarch64
  • Rocky Linux 9
    • x86_64
    • aarch64

参照 URL

Rocky Linux インスタンスに SSM Agent を手動でインストールする

AWS CLI の最新バージョンをインストールまたは更新します。

まとめ

Rocky Linux を使うたびに利用しそうだなと思ったのでメモがてらブログ化してみました。 Rocky Linux を利用する場合はぜひ活用してみてください。