「プライベート」という言葉の意味をもう少し考えてみましょう。
プライベートサブネットにはインターネットから直接接続することはできません。
なので、何もせず直接ローカルからプライベートサブネット内のインスタンスにSSHで接続することはできません。
多くの場合セキュリティを保つためにそのようにしています。お手軽にアクセスするためにセキュリティが疎かになっては仕方ありません。
そして残念ながらコストを増やさずに接続する手段はありません。
プライベートサブネット内のインスタンスの中に入りたいときは下記の方法が考えられます。
AWSじゃなくても行える方法です。普通に2回SSHしてもいいですし、以下の記事のように多段SSHの設定をしてもよいです。
踏み台サーバ経由の多段SSH接続をローカル端末の秘密鍵のみで実施する
準備が必要ですが、準備が済んでればこれが一番楽です。ただしプライベートサブネットで使用するためにはNATを用意するかVPCエンドポイントを設定する必要があります。
設定の仕方は公式ドキュメントをご参照ください。
Session Manager のセットアップ
また、Privatelink(VPCエンドポイントの作成)のところが少々わかりづらいかもしれないので、その辺について記載している記事を貼っておきます。
プライベートサブネットに配置したEC2にAWS Systems Manager Session Managerを使ってアクセスする
それでも分かりづらければ別の記事を調べるなどしてみてください。この記事なんかは比較的わかりやすいと思います。
注意点として、多くの記事で古いIAMポリシー(AmazonEC2RoleforSSM
)を使うよう書いてありますが、こちらは権限が過剰なため現在は AmazonSSMManagedInstanceCore
を使うことが推奨されています。
もちろん自分でカスタムポリシーを作成してそれを使用しても良いです。
以下はコスト面を考慮したときに方法を比較している記事ですが、踏み台を使う場合、セッションマネージャーを使う場合双方のやり方についてざっくり書いてあるので参考にしてみてください。
そのセッションマネージャー、本当に必要?プライベートサブネットのEC2への通信方法を考えてみる