[AWS SSM] セッションマネージャーでEC2に接続してみた
はじめに
これまでEC2への接続は、SSHクライアントを利用しておりました。EC2インスタンスへの接続方法は他にもEC2 Instance Connect
やセッションマネージャー
があります。EC2 Instance Connect
は利用したことがありますが、セッションマネージャーは利用したことがなかったので、試しに接続してみようと思いました。
セッションマネージャーはポートを開けることなく接続可能な方法であり、セキュアな接続方法であると言えます。
今回はセッションマネージャーでの接続をやってみた!と各接続方法の使いどころについて調べてみました。
こちらの記事の内容はBlack Beltを視聴して実施しております。SSMの様々な機能について説明されているので、こちらの視聴もオススメです。
本題の前にEC2 Instance Connect
EC2 Instance Connect
を利用するとマネジメントコンソールから簡単にEC2アクセスできます。(AWS CLIからも利用できます。)この接続方法は、コンソールでポチポチ操作して何かを試す際にはピッタリじゃないかなと思い、ハンズオンやチュートリアルを実施する際に利用していました。他にも何かしらのトラフィックが通らない場合にセキュリティーグループを触って、そのまま動作確認する。みたいな時にも素早く利用できるかな。と思いました。まあ、四の五の言わず、とりあえず一回接続してみてください。
実行手順
インスタンスを選んで
接続をクリックするだけで
ブラウザでローカルからSSH接続したような形で利用できます。
セッションマネージャーでEC2に接続してみた
利用には準備が必要です。
Amazon Linux2を無料枠で立ち上げると、セッションマネージャーによる接続はできず、下記の画面になります。セッションマネージャーを利用するには事前準備が必要です。
全体像
私個人がまずひっかかったのはIAM Roleをアタッチする点。なんとなく、SSMがEC2に対してアクションをする。という感覚でしたので、EC2にRole?と感じましたが、SSM Agent
とSSM API
の関係を知ることでRoleのアタッチを納得することができました!
事前準備
SSM AgentのインストールやIAMロールのアタッチなどの事前準備の方法はマニュアル
とQuick Setup
の2種類があります。Quick Setupでは、新たに立ち上げるEC2に対して前述の準備を自動的に実行したり、複数のリソースを一括で管理するのに便利です。Black Beltで詳しく説明されているので、ぜひご覧ください。
今回は自動でやってくれる設定を体験するべく、マニュアルによる準備を行ってみました。
1.SSM Agentのインストール
SSM AgentはいくつかのAMIにはプリインストールされています。詳細はこちらに記載があります。(プリインストールAMI一覧)
以下の手順でインストール有無確認及びインストール実施、エージェントの起動を行います。
- インストールされているかどうか確認
sudo systemctl status amazon-ssm-agent
- インストールされていない場合は、こちらのコマンドでインストールができます。
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
- SSM-Agentを起動する、
sudo systemctl start amazon-ssm-agent
2. IAMロールのアタッチ
- IAMロールを作成します。ポリシーは推奨の
AmazonSSMManagedInstanceCore
を利用する。 - 作成したIAMにロールをEC2にアタッチする。
3.接続テスト
- Systems Managerからセッションマネージャーを選択する
- 立ち上げたEC2を選択してセッションを開始するを選択する
- シェルが立ち上がる
999.AWS CLIの利用
AWS CLIを利用するにはローカルにプラグインをインストールする必要があるようです。
詳細はこちらに記載されているので、後日試してみようと思います。
接続方法の使いどころ
クラメソさんのブログに違いやユースケース別の使い分けがきれいにまとめられておりましたので、こちらを参照いただくと、理解が早いです。
各操作方法の差で印象的だったのは、操作履歴の記録です。セッションマネージャーを利用する一番の要因ではないかと感じました。最後に
Black Beltで説明されているように、SSMには運用を効率化を中心に多くの機能が備わっています。セッションマネージャー以外の機能も少しずつ触っていきたいと思います。
以上。
Discussion