だいち
2025.03.09
31
AWSではEC2インスタンスに接続する方法として、
今回紹介する EC2 Instance Connect(EIC) は、特にAmazon LinuxやUbuntuの環境で利用できる接続方法で、SSHの鍵管理を不要にしつつ、EC2へのアクセスを簡単にする手段の一つです。
コストを抑えつつ、鍵の管理や漏洩リスクを減らせるので「めっちゃいいじゃん!」と思い記事にしてみました!
本記事では、以下の前提で解説します。
EC2 Instance Connectを使用すれば、踏み台サーバーや有料のVPCエンドポイントを作成する必要がありません。
よってコストを削減することができます(個人的にこれが一番嬉しい)
プライベートサブネットにあるEC2にEICを利用するには、EC2 Instance Connect Endpoint を作成する必要がありますが、インターフェース型のVPCエンドポイントとは異なり、料金は発生しません。
従来のSSH接続では、秘密鍵の管理が必要ですが、EICでは一時的なSSHキーを使用するため、鍵の管理や漏洩リスクを減らすことができます。
IAMポリシーを利用して、どのユーザーがどのEC2にアクセスできるかを制御できます。これにより、必要な権限を持つユーザーだけがEC2に接続できるようになります。
踏み台サーバーによるSSH接続、SSM Session Manager、EC2 Instance Connectの比較をするとこんな感じです。
先に言っておくと、使いづらいところもあります。
プライベートサブネットにあるEC2にEICを利用するには、EC2 Instance Connect Endpoint (以下、EICエンドポイント) を作成する必要があります。
ただその前に、EICエンドポイントにアタッチするセキュリティグループを作成します。
上記ルールを設定すればOK。
次に、先ほど作成したセキュリティグループを使ってEICエンドポイントを作成します。
上記設定で「エンドポイントを作成」を押せばEICエンドポイントの作成が完了します。
EC2側のセキュリティグループ(インバウンドルール)を設定します。特定のIPアドレスのみSSH(ポート22)を許可するように設定します。
インスタンスIDがわかっていればローカル端末から接続することも可能です。
$ aws ec2-instance-connect ssh --instance-id i-0e5e0f3e85568e95e --connection-type eice
じゃーん
AWSの運用コストに関してシビアなプロジェクトであれば、少しでも運用コストは下げたいところ。
今回のEC2 Instance Connectが一つの選択肢になれば幸いです。