今回はAWS Systems Manager(SSM)のセッションマネージャーの使用方法について説明します。
対象読者
ずばり、EC2にターミナルやTera Termを使ってSSH接続している人です。
現在の課題
EC2を構築してSSH接続するとき、大体こんな感じのコマンドを入力すると思いますが、面倒くさいですよね。
ssh -i xxxxxx.pem ec2-user@1.1.1.1
しかも、踏み台EC2インスタンスを経由して接続する場合はProxyCommandを使う必要もあり、いちいちやってられません。
ProxyCommandについては知らなくても大丈夫です。気になる人は以下の記事をご覧ください。
AWS Systems Managerのセッションマネージャーが最高に楽
セッションマネージャーというのはSSMの機能のひとつです。
セッションマネージャーを使うための準備
準備はすぐにできます。簡単に言うと以下の条件が必要です。
- SSMエージェントがEC2にインストールされ起動している
- EC2がインターネットに接続できる(※)
- EC2に適切なIAMロールがアタッチされている
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが接続できない、または …
それでは、やり方を見ていきましょう。
準備1 : SSMエージェントについて(何もする必要なし)
SSMエージェントはSSMを使うために、EC2にインストールするエージェントソフトです。
EC2のAmazonLinux2ではSSMエージェントがデフォルトでインストールされているので、何もする必要はありません。
準備2 : EC2がインターネットに接続できる
今回は簡単にするために、パブリックサブネットにEC2を構築してインターネットに接続できるようにしておきます。
これでインターネットには接続できるので準備OKです。
パブリックサブネットってなに?って人はこちらの動画を見てください。
※NATゲートウェイ+プライベートサブネットの構成でもOKです。インターネット側からEC2にアクセスできる必要はなく、あくまでEC2からインターネットに出られればOK。
準備3 :IAMロールを準備
セッションマネージャーを使うために「AmazonSSMManagedInstanceCore」というIAMポリシーをもつIAMロールをEC2に付与する必要があります。
まずはそのIAMロールを作成しましょう。ユースケースの選択ではEC2を選択します。
付与するポリシーは「AmazonSSMManagedInstanceCore」です。チェックを入れて次に行きます。
最後に好きな名前をつけてIAMロールを作成します。これで終わり。
EC2を起動する
準備ができたのでEC2を起動します。
大事なのはここです。EC2のIAMロールで先ほど作成したIAMロールを選択します。
そしてこのままEC2を起動します。
起動したらEC2コンソール画面の右上にある[接続]をクリックします。
セッションマネージャーのタブから接続を選択します。
これでEC2に接続できます。めっちゃ簡単じゃないですか。
今回は以上です。