踏み台不要の新機能「EC2 Instance Connect Endpoint」でプライベートEC2に接続する(その1)
こんにちはこぐまです。
6月の終わりごろにAWSの新機能として、「EC2 Instance Connect Endpoint (EIC Endpoint)」が発表され、利用できるようになりました。
本日はそれを試してみた備忘録となります。
どんなサービスか?
簡単に言うと、「踏み台サーバのお役目請け負います」っていうサービスです。詳細はこちら↓
つまり、踏み台サーバというものを自前で用意しなくてよくなるということですね。
踏み台サーバって何?
クラウド上にサーバを構築する時、その置き場所が大きく分けて2つあります。
サーバをパブリックサブネットに配置し、かつパブリックIPアドレス(※)というものを付与した場合、そのサーバはインターネットと直接やりとりできます。(正確にはインターネットゲートウェイと各種セキュリティ、認証設定が必要ですがここでは割愛します)
サーバをプライベートサブネットに配置した場合、そのサーバがインターネットとやりとりしたいと思っても直接はやりとりできません。必ずパブリックサブネット上に存在する仲介者が必要となります。この仲介者のことを踏み台サーバといいます。
踏み台サーバとは、パブリックサブネット上に配置し、かつパブリックIPアドレスが付与されているサーバです。そして、インターネット上のサーバと、プライベートサブネット内のサーバたちが直接やりとりできるように各種設定を入れたサーバのことをいいます。
踏み台サーバを自前で運用する場合のリスク
プライベートサブネット内のサーバを「一度作成したら一生ログインしない!」ということであれば、踏み台サーバは確かに不要ですが(笑)、そんな状況にはならないと思うので、ほとんどの状況において踏み台サーバは必要かと思います。先に示した踏み台サーバとしての各種設定にはいろんな方法があります。直接SSHトンネルを設定したり、ソフトウェアをインストールして設定する方法もあります。
しかし、いずれにしても以下ような課題があります。
できることなら、このような課題を持ち続けたくはないですね。。
そこで「EC2 Instance Connect Endpoint」が登場!
というわけで、このような課題のある自前の踏み台サーバをとっぱらって、
AWSのサービスでより楽に運用していきましょうということで、「EC2 Instance Connect Endpoint(以下EIC Endpoint)」が誕生しました(多分・・)
つまり役割としては踏み台サーバそのものです。ただし自前踏み台サーバで課題となっていた部分は解決されます。
実際にやってみました!
「EIC Endpoint」の誕生の背景はわかったので、実際に東京リージョンで利用してみます。(20230713の記事執筆時では大阪リージョンでは接続できませんでした)
以下の順番で行います。ちなみにすべてAWSマネジメントコンソールから設定できるので、コマンドの知識等は不要です。なお、実施するIAMユーザにはAWSの管理ポリシー「AdministratorAccess」がついているものとします。(これについてはその2を書く予定なのでその時に詳しくお話しようかと思います)
1.セキュリティグループの作成(EIC用)
「EIC Endpoint」を作成する前に、まずは「EIC Endpoint」が利用するセキュリティグループを作成しておきます。
「EIC Endpoint」にアタッチするセキュリティグループは、以下設定となります。
セキュリティグループの作成の方法はどこからでも大丈夫ですが、一例として、VPCの画面から作成する方法を載せます。
AWSマネジメントコンソールの「VPC」→「セキュリティ」→「セキュリティグループ」を選択します。
名前と説明(任意)とこのセキュリティグループを利用するVPCを選択します。
インバウンドルール、アウトバウンドルールですが、たぶん新規作成した場合は以下のようになっている(今回設定したい内容通り、インバウンドには何もルールがなく、アウトバウンドは全て許可している状態)ので、このまま「セキュリティグループを作成」をクリックします。
2.セキュリティグループの作成(EC2用)
つづいて、EC2にアタッチするセキュリティグループを作成します。
こちらの設定値は以下となります。
作成方法は同じなので、ルールのところだけ記載します。
インバウンドルールに関しては、ピンクの線の部分を入力していきます。
3.EIC Endpointの作成
「EIC Endpoint」はAWSマネジメントコンソールの「VPC」→「エンドポイント」から作成するようです。
ここまで進むと以下のような設定画面になります。順に解説します。
・「VPC」は「EIC Endpoint」を利用するVPCを選択します。ここを選択すると以降のプルダウンが展開されるようです。
・「セキュリティグループ」の部分は「1.セキュリティグループの作成(EIC用)」で作成したセキュリティグループを選択します。(なお、これは作成後になぜか変更できないので・・アタッチをミスった場合はEIC Endpointを再作成してください。)
・「Subnet」にはプライベートサブネットに相当するものを選択します。
入力し終えたら「エンドポイントを作成」を押下することで「EIC Endpoint」が作成されます。
4.EC2インスタンスの設定
続いて検証として使うEC2インスタンスを作成します。もちろんプライベートサブネットに配置します。AWSマネジメントコンソールからEC2を選択し、「インスタンスの起動」を選択します。
以下必要な部分だけ記載していきます。記載がないところはそのままで大丈夫です。
ここまで出来たら画面右側の「インスタンスを起動」をクリックしてインスタンス起動が完了するのを待ちます。
5.アクセスしてみる
では、アクセスしてみましょう!
EC2一覧から、「4.EC2インスタンスの設定」で作成したEC2インスタンスを選択し、「接続」をクリックします。
そうするとこのような画面に遷移します。
まず、右側の「EC2 Instance Connect エンドポイントを使用して接続する」をチェックします。
そうすると以下のような画面になります。
ここで、一番下の「EC2 Instance Connect エンドポイント」という部分に、
「3.EIC Endpointの作成」で作成したエンドポイントが出てきますので、それを選択して「接続」を押します。
繋がりました!!
自前踏み台サーバなし、パブリックIPなし、さらにキーペアなしで接続することができるようになりました!
設定としてはそこまで難しくないかなと思います。
是非お試しください。
そして、実際やってみてわかったことがたくさんあります。
1.現時点では大阪リージョンでは使えない(スクショに大阪リージョンが結構あるのはそのためですw 正確にはEIC Endpointは作成できるのですが、EC2インスタンスを選択し接続をクリックした後、EIC Endpointを利用して接続するオプションが出てきませんでした。)
2.現時点では、「EIC Endpoint」を利用して接続するための管理ポリシーが存在しない(既存の権限を定義したIAMユーザに追加ポリシーを選んでポン付け・・という対応ができるわけではなさそう)
3.「EIC Endpoint」を利用した接続の成功、失敗はCloudtrailに記録される。どんな順番でどんなログが出るのかもなんとなくわかった。
とくに、2.3については「その2」で詳しく書いてみようかなと思います。
ひとまずここまで!
試行錯誤しながら試してみるのは楽しいですね。
読んで下さってありがとうございました!
この記事が気に入ったらサポートをしてみませんか?