AWS Systems Manager の新しいエクスペリエンスを試す。Amazon Q Developer とも統合されました!

記事タイトルとURLをコピーする

 
 こんにちは、テクニカルサポート課の坂本(@t_sakam)です。今回は、AWS Systems Manager の新しいエクスペリエンスについてのブログです。
 
 発表の日付の確認をすると、11 月 21 日で re:Invent の少し前の発表となっていましたが、re:Invent の Innovations Talks の動画「AWS re:Invent 2024 - Building the future of cloud operations at any scale (COP202)」で「[NEW] AWS Systems Manager」と発表されていたり、AWS の公式ブログ「re:Invent 2024 での AWS のクラウド運用における主要な発表」の「1. クラウドガバナンスの変革」の章で「Node management experience in AWS Systems Manager(AWS Systems Manager でのノード管理エクスペリエンス)」として紹介されていましたので、キーノートでの発表ではないものの、今年の re:Invent の発表の一環と言っていいかと思います。
 
 前回のブログでも触れていた Amazon Q Developer とも統合されたということですので、早速試してみたいと思います。

 

事前準備

1 台目の EC2 インスタンスを起動(Amazon Linux 2023)

 まずは、EC2 のマネジメントコンソールで、Systems Manager (SSM) の新しい画面での動きを見るために、EC2 インスタンスを 1 台起動しておきます。OS は Amazon Linux 2023 を選択しました。

1 台目の EC2 インスタンス(Amazon Linux 2023)を起動

Systems Manager の新しいエクスペリエンスを有効にする

新しいエクスペリエンスを有効にする

 次に Systems Manager のマネジメントコンソールで画面中央の「新しいエクスペリエンスを有効にする」ボタンを押して、有効化します。

「新しいエクスペリエンスを有効にする」ボタンを押す

有効化完了

 しばらく待つと有効化が完了し、徐々にグラフが表示されます。先ほど起動した EC2 インスタンスが、「ノード概要」欄でアンマネージド EC2 インスタンスとして赤で表示されていますが、しばらく待つとマネージドノードとして緑になりました。

まだ赤い状態

緑になる

「AmazonSSMRoleForInstancesQuickSetup」ロール

 EC2 の IAM ロールを確認してみると「AmazonSSMRoleForInstancesQuickSetup」という自動で作成された IAM ロールがアタッチされており、このロールには Systems Manager で管理をおこなう際に必須のポリシーである「AmazonSSMManagedInstanceCore」ポリシーがアタッチされていましたので、これによって問題なく自動でマネージドノードとして認識された形かと思います。
 
 最初の手順の 1 枚目の画面左下の「IAM ロール」欄は「-」となっており IAM ロールはまだアタッチされていません。動作確認したところ、新しいエクスペリエンスを有効にしていない環境では、ロールは自動的にアタッチされないままでしたので、今回有効化したことで自動で必要な IAM ロールが EC2 インスタンスにアタッチされるようになり、マネージドノードとして自動登録されるようになったことがわかります。

画面左下の「IAM ロール」項目を確認すると「AmazonSSMRoleForInstancesQuickSetup」ロールがアタッチされていることがわかる

2 台目の EC2 インスタンスを起動(Amazon Linux 2023)

 2 台目の EC2 インスタンスを起動してみます。今回も Amazon Linux 2023 を選択しました。起動開始時にはまだ、IAM ロールがアタッチされていません。

2 台目の EC2 インスタンス(Amazon Linux 2023)を起動。画面左下の「IAM ロール」項目はまだ「-」の状態

 しばらく待つと「インスタンスプロファイルにアタッチされたロールがありません: AmazonSSMRoleForInstancesQuickSetup」と表示されます。

「インスタンスプロファイルにアタッチされたロールがありません: AmazonSSMRoleForInstancesQuickSetup」

 更にしばらく待つと「AmazonSSMRoleForInstancesQuickSetup」ロールがアタッチされました。

「AmazonSSMRoleForInstancesQuickSetup」ロールがアタッチされている

 「ノードのインサイトを確認」画面を確認すると「ノード概要」欄でマネージドノードが 2 台になっていることが確認できました。

マネージドノードが 2 台になっている

「AWSQuickSetupType-ManageInstanceProfile」ドキュメントを確認

 IAM ロールのアタッチに関して、裏で何が実行されていたのかを CloudTrail で確認したところ、SSM のオートメーションが実行されており、その中の「AWSQuickSetupType-ManageInstanceProfile」ドキュメントに「SSM クイックセットアップ用の AmazonSSMRoleForInstancesQuickSetup ロールを作成する」といった処理があり、こちらが実行されたことによるものとわかりました。

オートメーションの中で実行された「AWSQuickSetupType-ManageInstanceProfile」ドキュメントの内容

「AWSQuickSetupType-ManageInstanceProfile」ドキュメントのフロー図

3 台目の EC2 を起動(Ubuntu 24)

 Amazon Linux 以外の主要な新しい OS も試してみたいと思います。3 台目の EC2 インスタンスとして Ubuntu を起動してみます。

3 台目の EC2 インスタンス(Ubuntu)を起動。

 「ノードのインサイトを確認」画面を確認すると、マネージドノードが 3 台になり、マネージドオペレーティングシステム に「Ubuntu」が加わっていることが確認できました。

マネージドオペレーションシステムに「Ubuntu」が加わる

4 台目の EC2 を起動(Windows Server 2025)

 4 台目の EC2 インスタンスとして Windows Server 2025 を起動してみます。

4 台目の EC2 インスタンス(Windows Server 2025)を起動。

 「ノードのインサイトを確認」画面を確認すると、マネージドノードが 4 台になり、マネージドオペレーティングシステム に「Microsoft Windows Server 2025 Datacenter」が加わっていることが確認できました。

「Microsoft Windows Server 2025 Datacenter」が加わる

Amazon Q Developer との統合

画面右の Amazon Q で質問

 主要な OS での確認が取れたので、次は「Amazon Q Developer との統合」を確認してみたいと思います。
 画面右上の Amazon Q のアイコンをクリックすると、画面右に Amazon Q の画面が表示されます。画面右下の入力ボックスに「Find all my managed nodes running Amazon Linux.(Amazon Linux が稼動しているすべてのマネージドノードを検索してください。)」と入力し、質問してみます。

「Find all my managed nodes running Amazon Linux.」と入力して実行

該当する EC2 インスタンスのピックアップと一覧

 先ほど起動した 2 台の Amazon Linux が表示されました。その下の「Open AWS Systems Manager console」リンクをクリックすると、画面左側に Amazon Linux の EC2 インスタンス一覧が表示され、インスタンスの詳細にアクセスできます。
 こちらの機能も事前に「新しい Systems Manager のエクスペリエンス」を有効にしていない環境の場合、Amazon Q で検索ができないことを確認していますので、有効化したことで Amazon Q でノードの検索が可能になったことがわかります。

右側に該当する EC2 インスタンスのピックアップされる

アンマネージドノードの診断と修復

5 台目の EC2 を起動(Red Hat 9)

 最後にアンマネージドノードの診断、修復機能があるということで、試してみたいと思います。「管理されていないノードの特定、診断、修復が可能」とのことです。事前にマネージドノードとして自動登録されないことを確認していた「Red Hat 9」を 5 台目の EC2 インスタンスとして 起動してみます。

5 台目の EC2 インスタンス(Red Hat 9)を起動。

 想定どおり「ノードのインサイトを確認」画面を確認すると「ノード概要」欄でアンマネージド EC2 インスタンスが 1 台になっていることが確認できます。マウスオーバーすると「診断」ボタンが表示されるので、押します。

「ノード概要」欄でアンマネージドインスタンスとして赤で表示される。マウスオーバーして「診断」ボタンを押す

Diagnose and remediate(診断と修復)

 「Diagnose and remediate(診断と修復)」画面が表示されます。「診断を実行して環境内の管理されていない EC2 インスタンスを特定し、SSM エージェントが Systems Manager に接続できない一般的なネットワーク構成の問題をチェックします。」とのことでした。  
 青枠の中の「このオートメーションランブックを実行すると料金が発生します。詳細については、AWS Systems Manager の価格を参照してください。」の注意点も確認し、問題がなければ、定期診断スケジュールをオンにし、画面右下の「Execute」ボタンを押します。

定期診断をオンにし「Execute」ボタンを押す

自動実行頻度の設定

 デフォルトでは、デイリー実行になっており、時刻は現在時刻が表示されているので、いったん今回はデフォルトのままで実行します。再度青枠で料金に関する注意点が表示されますが、問題がなければ、画面右下の「Execute」ボタンを押します。

今回はデフォルトのまま「Execute」ボタンを押す

進捗状況を表示

 しばらく待つので、画面右上の「View progress(進捗状況を表示)」ボタンを押して確認してみます。

「View progress」ボタンを押す

実行履歴画面

 実行履歴画面が表示され、表の「Execution name」欄がリンクになっているので「AWS-DiagnoseUnmanagedEC2NetworkIssues」リンクをクリックすると、画面の右側部分が表示されます。「Runbook Name」欄に「AWS-DiagnoseUnmanagedEC2NetworkIssues」とあるので「AWS-DiagnoseUnmanagedEC2NetworkIssues」の内容を確認してみます。

実行履歴画面

「AWS-DiagnoseUnmanagedEC2NetworkIssues」ドキュメントを確認

 「このランブックは、SSM Agent が Systems Manager サービスに到達できない接続性の問題を診断するために使用される。このランブックは、アカウント内の EC2 インスタンスをスキャンし、管理されていないインスタンスを特定する。その後、ランブックは診断分析を実行し、インスタンスが管理されていない潜在的な原因を特定する。」とのことでした。

「AWS-DiagnoseUnmanagedEC2NetworkIssues」ドキュメントの内容

「AWS-DiagnoseUnmanagedEC2NetworkIssues」ドキュメントのフロー図

診断完了

 完了したら、画面下の表の「Recommendation(推奨事項)」リンクをクリックしてみます。

「Recommendation(推奨事項)」リンクをクリック

推奨事項

 画面の右側部分が表示されました。「AWS 環境に適切なネットワークを設定する方法に関するドキュメントを読むことで、この問題を解決できます。」という内容が表示され「Learn more」ボタンを押すと AWS の公式のトラブルシューティングページが表示されました。

AWS の公式のトラブルシューティングページへの案内

AWS の公式のトラブルシューティングページ

アンマネージドノードの原因

 実際の原因は、以下のような内容で Red Hat 9 の AMI に SSM エージェントがインストールされていなかったためですので、以下のようにインストールすることで解消しました。ネットワークの問題ではないため、先ほどの AWS の公式のトラブルシューティングページへの案内は想定された流れかと思います。

sudo systemctl status amazon-ssm-agent
Unit amazon-ssm-agent.service could not be found.
sudo dnf install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm

 ネットワークの問題に関する診断も試すために、プライベートサブネットにあるインスタンスを一度マネージドノードとして登録済みになったことを確認後、セキュリティグループを変更したり、VPC エンドポイントを削除したりすることで、アンマネージドにし、再度診断を実行してみたのですが、先ほどと同じく AWS の公式のトラブルシューティングページへの案内の表示となりました。
 
 そのため、「ネットワークの問題に対応する推奨オートメーションランブックのリンク表示や、そのオートメーションランブックを使っての修復」に関しては、今回は試すことができませんでしたが、また時間がある際に確認してみたいと思います。

SSM エージェントをインストール後「Red Hat Enterprise Linux」も加わる

まとめ

 今回は、AWS Systems Manager の新しいエクスペリエンスを有効化し、試してみました。今回は、単一のアカウント内で少数の EC2 インスタンスで試しましたが、この新しいエクスペリエンスは、AWS Organizations で組織単位で有効化することが可能、とのことです。
 画面をみていただくとわかるように、グラフや一覧で確認ができるので、 組織単位で多数のノードを確認できるとなると、とても便利なのではないでしょうか?
 OS や SSM エージェントが新しいものになっているかが一目瞭然ですね!
 
 また、Amazon Q Developer と統合されたことで、Q に自然言語で質問し(現時点 2024 年 12 月 10 日では英語のみ)、気軽に EC2 のリソース情報を取得できるのも、便利ですね。
 
 アンマネージドノードの診断と修復機能の確認は、今回は AWS の公式のトラブルシューティングページの案内表示までしか確認できませんでしたが、ネットワークの問題に対しての推奨されるオートメーションランブックのリンク表示や、そのオートメーションランブックを使った問題の修復ができるようですので、こちらもかなり便利な機能かと思います。
 「SSM エージェントは起動しているが、マネージドノードとして認識されない。」というお問い合わせはときどきいただきますので、認識されない場合は「新しいエクスペリエンス」を有効にしていただくとよいかもしれません!

 いや〜、AWS Systems Manager って本当にいいものですね!
 

坂本 知子(記事一覧)

サーバーワークスのこけしの人(@t_sakam)。2024 Japan AWS Ambassadors、2020 APN AWS Top Engineers。