OpsWorksの各LinuxOSにおけるAWS Systems Manager Agentのインストール有無を確認してみた

2020.06.11

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

こんにちは、コカコーラ大好きカジです。

OpsWorksの各LinuxプラットフォームOSにおけるAWS Systems Manager Agent(SSM Agent)のインストール有無を確認してみました。

現時点で、OSによって違いがありましたので、ご紹介します。今後、変更になる可能性がありますので、現時点での情報とお考えください。

検証結果

私が調査した結果から記載します。(2020/6/10現在)

Opsworks OS指定 SSM Agentインストール有無 調査時にOpsWorksで起動したEC2のAMI ID
Amazon Linux 2 インストール済み amzn2-ami-hvm-2.0.20180810-x86_64-gp2 (ami-6cd6f714)
Ubuntu 18.04 LTS インストール済み ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-20190617 (ami-04aac3d7ea7609469)
CentOS 7 未インストール CentOS Linux 7 x86_64 HVM EBS ENA 1804_2-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-55a2322a.4 (ami-5490ed2c)

確認手順

OpsWorksの構築

OpsWorksのSample Stackを作成します。

インスタンスで、nodejs-server1が起動し、OSはAmazon Linux2で起動します。

OpsWorks上で「+ Instance」でインスタンス追加時にOSを変更して試してみました。 nodejs-server2がUbuntu18.04 LTSを指定し追加、nodejs-server3でCentOS7で指定して追加で起動しました。 追加インスタンスについては、SSHログインし確認する場合は事前に作成したEC2キーペアを指定するとSSHログインできます。(各OSでSSHログインユーザ名が違うので気をつけましょう)

起動したあと、それぞれのインスタンスのPublic IPへブラウザアクセスすると以下の画面が表示されて、OpsWorksでデプロイされたアプリケーションが正常に起動していることが確認できます。

Systems Manager実行するためEC2 IAM Roleの変更

Sample Stackですと、EC2 IAM Roleは、「aws-opsworks-ec2-role」で起動します。 デフォルトでは権限が何も付与されておらず、Systems Managerが利用できないため、Systems Managerの実行できるよう「AmazonEC2RoleforSSM」を付与します。

Systems Managerの実行可否確認

Sysmtems Managerへ移動して、Run commandで「uname -a」を確認しようと実行します。

nodejs-server1(Amazon Linux2)とnodejs-server2(Ubuntu18.04LTS)は表示されますが、nodejs-server3(CentOS7)はSystems ManagerのRun commandを指定できません。

そのままRun commandを実行すると、表示されたインスタンスは成功します。

CentOS7でSSHログインして確認

CentOS7はOpsWorksのAgentがインストールされていないことを確認しました。

[centos@nodejs-server3 ~]$ rpm -qa | grep ops
opsworks-agent-ruby-2.2.3-1.x86_64
[centos@nodejs-server3 ~]$ rpm -qa | grep ssm
[centos@nodejs-server3 ~]$

Ubuntu18.04 LTSにSSHログインして確認

Ubuntu18.04 LTSはOpsWorksのAgent、SSM Agentがインストールされていました。

ubuntu@nodejs-server2:~$ dpkg-query -l | grep opsworks
ii  opsworks-agent-ruby              2.2.3-1                             amd64        Ruby runtime with updated gems for the AWS OpsWorks instance agent.
ubuntu@nodejs-server2:~$ snap list | grep ssm
amazon-ssm-agent  2.3.612.0  1335  stable/…  aws*        classic

まとめ

現時点で、OpsWorksで利用するLinux OSによりSystems Managerのすぐ利用可否について違いがありましたので、どなたかのお役に立てれば光栄です。 CentOS7のOpsWorksで、Systems Managerを利用したい場合は、レシピでSystems ManagerのAgentをインストールすれば良いと推測しています。

CentOS インスタンスに SSM エージェント を手動でインストールする - AWS Systems Manager