やりたいこと
プライベートサブネットに立てたRed Hat Enterprise Linuxを搭載したEC2に対し、EC2 Instance Connect Endpoint経由での接続を行う。
環境情報
- RHEL-9.3.0_HVM
やり方
初期状態でオーダーをしただけでは以下のようなエラーとなる。
Failed to connect to your instance
Error establishing SSH connection to your instance. Try again later.
原因としては接続用のモジュールが不足しているため、ユーザスクリプト(インスタンス作成時に実行するスクリプト)に以下を記載する。
#!/bin/bash mkdir /tmp/ec2-instance-connect curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
起動後は確かにEC2の管理コンソールから「Connect using EC2 Instance Connect Endpoint」を選択して接続ができる。
以下、補足です。
補足
起動後のEC2にてユーザスクリプトの実行ログを見たい場合は
$ cat /var/log/cloud-init-output.log
を行います。
すると指定したモジュールのインストールが行われていることが分かります。
Cloud-init v. .. running 'modules:config' at ... Up 17.53 seconds. Cloud-init v. .. running 'modules:final' at ... Up 18.52 seconds. ... This system is not registered with an entitlement server. You can use subscription-manager to register. ... ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: ec2-instance-connect x86_64 2.0.0-1.rhel9 @commandline 3.8 M ec2-instance-connect-selinux noarch 2.0.0-1 @commandline 5.9 k ...
以上、ご参考ください。