LoginSignup
0
1

More than 1 year has passed since last update.

Systems Manager 触ってみた。

Last updated at Posted at 2022-08-06

はじめに

SAAまで取得はしてみたものの触ったことないサービスが多くあり
色々触って知見を深めたいと思い、今回はSystems Manager(以下SSM)を触ってみました。

対象者

この記事は下記のような人を対象にしています。

  • 駆け出しエンジニア
  • AWS初学者
  • SSMについて触ったことない方・知見がない方

SSMとは

EC2やオンプレミスなどのサーバの運用の自動化や効率化、可視化なども行えるサービスです。
AWSサービスのEC2だけでなくオンプレミスにも使えます。

事前知識

SSMで利用するインスタンスのことを【マネージドインスタンス】と呼びます。
マネージドインスタンスにするには以下の条件があります。
・インスタンスに SSM Agent が導入されていること
・インスタンスから SSM API への経路 ( HTTPS のアウトバウンドトラフィック) が確保されていること
・インスタンスに適切な IAM Role が付与されていること

手順

①ロールの作成
②EC2インスタンス(マネージドインスタンス)の作成
③フリートマネージャーでリモート接続
④セッションマネージャーでシェルアクセス

ロールの作成

SSMを利用する場合は、インスタンスがSSM APIにアクセスできる様にする必要があります。
そのためにロールを付与する必要がります。

①EC2 にロールを割り当てるので、「EC2」を選択します。
image.png

②ポリシーに「AmazonSSMManagedInstanceCore」を選択し作成で完了です。
image.png

EC2インスタンスの作成

SSMの対象となるマネージドインスタンスを作成します。
Amazon LinuxやWindowsにはSSMエージェントは事前にインストールされています。
なのでこのイメージに割くほど作成したロールを付与してSSMへのアクセスができ
条件が整います。
※画像は割愛します。
Amazon Linuxは「Amazon Linux 2 AMI (HVM), SSD Volume Type」
Windowsは「Microsoft Windows Server 2019 Base」
VPC・セキュリティグループはデフォルトでも大丈夫です。(パブリックサブネットに作ってください)

※私はマネージドインスタンスが表示されないということが発生していて
調べていると以下AWSの公式サイトでも同様の問題がありました。
AWS公式ドラブルシューティング
クラスメソッドさん

私の場合はパブリックサブネットではなくプライベートに作成してしまっていた為
インスタンスから SSM API への経路 ( HTTPS のアウトバウンドトラフィック)の確保がされているという
条件が満たしていませんでした。
プライベートサブネットに作成する場合はVPCエンドポイントなどを作成する必要があります。
クラスメソッドさん解決策

SSMマネージドインスタンスにRDP接続

作成したインスタンスがマネージドインスタンスの条件に満たしているので表示されています。
①windowにRDP接続をするためにノードアクション⇨RDPとの接続を選択します。
image.png

②設定したキーペアを使用して接続してみます。
image.png

以下の画面が表示されたら成功です。
image.png

フリートマネージャーは SSM Agent を経由して RDP 接続を実現するため、インバウンドの SSH (TCP/22)、RDP (TCP/3389)のポート開放が必要ありません。
認証は IAM ユーザーの AWS マネジメントコンソールへのログインで行い、アクセス可能なサーバは IAM ポリシーで制御が可能です。

セッションマネージャーでLinuxへのシェルアクセス

image.png
セッションマネージャーからLinuxのシェルにアクセスしコマンドを打ってみます。

sudo systemctl stop sshd.service
systemctl status sshd.service

image.png
sshdサービスが停止できたことが確認できました。

こちらもSSM Agent経由で直接シェルアクセスができました。

プライベートサブネットに作成してみる

上記でプライベートサブネットにインスタンスを立ち上げてしまい
マネージドインスタンスとして表示されなかった問題について解決をします。

プライベートサブネットにあるインターネットアクセス出来ないEC2インスタンスをSSMで管理するには以下が必要になります。
・EC2インスタンスにSSMエージェントがインストールされていること
・SSMへのアクセスに必要なIAMロールがEC2インスタンスに関連付いていること
・VPCエンドポイントが設定されている

①同じ様に設定でプライベートサブネットにインスタンスを立ち上げます。
②VPCエンドポイントの作成でサービスカテゴリでAWSのサービスを選択し以下のサービスを選択し作成したインスタンスのあるサブネットを選択する。(この際VPCでDNS 名を有効化にチェック入れることを忘れない)
③マネージドインスタンスがあることを確認しセッションマネージャーでシェルにアクセス
image.png
image.png
sshdサービスが停止と開始のステータスを確認できました。
今回はプライベートサブネットに作成したインスタンスがSSM AgentからVPCエンドポイントを経由して直接シェルアクセスができました。

感想

SSM色々とあって使いこなせるとベンチだよなと思いますので
もっと触ってみようと思います。

参考記事

AWS公式ドラブルシューティング
クラスメソッドさん

0
1
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
0
1