EC2インスタンスにSSH接続したい?それAWS CloudShellもできるよ! #reinvent

こんにちは。サービスグループの武田です。AWS CloudShellからEC2インスタンスにSSH接続してみました。
2020.12.16

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

こんにちは。サービスグループの武田です。

待望のブラウザ上でCLIを実行できる新サービス、AWS CloudShellが登場しましたね!

CloudShellからEC2インスタンスに接続したくなることもあるだろう、ということで簡単に接続確認をしてみました。

Attention

ブラウザ経由でのEC2インスタンスへのシェルアクセスはSession ManagerEC2 Instance Connectがすでにあります。可能であればそちらを利用した方がよいでしょう。

やってみた

まずは接続先となるEC2インスタンスを立ち上げます。今回はt3.microのデフォルト設定のインスタンスを起動します。なおセキュリティグループはインバウンドルールが空のものを新規に作成しています。

またその際に、使い捨てのキーペアも作成しておきました。

次にCloudShellを立ち上げます。マネジメントコンソールの右上に新しくアイコンが追加されていますので、こちらをクリックすると起動します。

CloudShellのグローバルIPを調べてセキュリティグループに設定しましょう。

[cloudshell-user@ip-10-0-79-29 ~]$ curl https://ifconfig.io
13.112.204.53

このアドレスを追加します。

最後に先ほど作成したキーペアをアップロードして接続確認していきます。右上の[Actions]をクリックし、[Upload file]を選択しcloudshell.pemをアップロードします。

アップロードできたらパーミッションを変更しましょう。

[cloudshell-user@ip-10-0-79-29 ~]$ ls
cloudshell.pem
[cloudshell-user@ip-10-0-79-29 ~]$ chmod 400 cloudshell.pem

では接続してみます。

[cloudshell-user@ip-10-0-79-29 ~]$ ssh -i cloudshell.pem ec2-user@ec2-13-230-169-57.ap-northeast-1.compute.amazonaws.com
The authenticity of host 'ec2-13-230-169-57.ap-northeast-1.compute.amazonaws.com (13.230.169.57)' can't be established.
ECDSA key fingerprint is SHA256:TaFytx+dku4E2XxadZuxfmRCx0WsRvYy4mH9oyWgx7c.
ECDSA key fingerprint is MD5:28:6f:3c:21:e6:52:27:29:d9:3b:46:54:82:d4:1d:f7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-13-230-169-57.ap-northeast-1.compute.amazonaws.com,13.230.169.57' (ECDSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
7 package(s) needed for security, out of 19 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-172-31-31-33 ~]$ whoami
ec2-user

わーい、できた!

まとめ

このエントリが役に立たないことを祈っています。