プライベートなEC2(Windows)に対してRDP接続する方法

記事タイトルとURLをコピーする

はじめに

こんにちは。SA1課の阿部です。
2024年も残りあとわずかとなりました。
1年は本当にあっという間ですね。

突然ですが、皆さんはプライベート環境下のEC2インスタンス(windows)へRDP接続する方法を、いくつ思い浮かべられますか?
複数の方法がパッと出てきた方は流石です!

というわけで今回は、プライベート環境下のEC2(Windows)に対するRDP接続の方法についてまとめてみました。

大前提

今回の構成は、踏み台サーバーなどを構築せずにRDP接続する方法を取り上げています。

プライベート環境下のEC2(windows)へRDP接続するための主な方法

まず、結論からご説明すると、主な方法は以下の3種類あります。
中でもおすすめなのは、「3.EC2 Instance Connect Endpointを使用する方法」です。

  1. Systems Manager Session Managerのポート転送を使用する方法
  2. Systems Managerのフリートマネージャーを使用する方法
  3. EC2 Instance Connect Endpointを使用する方法

各方法の詳細な手順は、公式ドキュメントをご確認ください。

repost.aws

repost.aws

docs.aws.amazon.com

それぞれの方法について、比較表でまとめてみました。

接続方法 ユースケース メリット デメリット コスト
Systems Manager Session Managerのポート転送 ・なるべく料金を抑えたい
・会社の規定やネットワーク構成の問題で、クライアントから
AWS マネージメントコンソールへのアクセスが制限されている
・エンドポイントにかかる費用を抑えられる
・使い慣れたRDPクライアントを利用することができる
・エンドポイントが1つでよい(コスト低)
・都度セッションの確立コマンドをたたく必要がある
・RDPポートを開放しておく必要がある
・クライアントPCに対する前提ツールのインストールが必要
USD 0.014/時間 × エンドポイント1台
[1ヶ月で10.08USD]
Systems Managerのフリートマネージャー ・多少費用が発生してもいいので、よりセキュアに接続したい
・クライアントからAWSマネージメントコンソールへアクセス可能である
・同時に複数台のマシンへRDP接続したい
・RDPポートを開放しておく必要がない
・webコンソール感覚で扱える
・1つのタブで最大4つのインスタンスを同時に操作可能
・都度マネージメントコンソールへのログインが必要
・RDP接続が60分で切断される
・10分以上アイドル状態になると切断される
・エンドポイントが3つ必要(コスト高)
USD 0.014/時間 × エンドポイント3台
[1ヶ月で30.24USD]
EC2 Instance Connect Endpoint ・なるべく料金を抑えたい
・クライアントからAWS上のEndpoint Serviceに対するHTTPSアクセスが可能である
・エンドポイントに費用がかからない
・クライアントPCに対する前提ツールのインストールが不要
・RDPポートを開放しておく必要がある 無料

上記のように、それぞれメリット・デメリットが存在しますが、3つ目のEC2 Instance Connect Endpointを使用する方法が一番費用を抑えられる上に、設定も簡単なのでおすすめです。

【やってみた】EC2 Instance Connect Endpointを使ったRDP接続方法

構成図

今回の構成は以下の通りです。

EC2 Instance Connect Endpointを使ったRDP接続の構成図

手順

Instance Connect Endpoint用セキュリティグループ設定

まず、Instance Connect Endpoint用セキュリティグループを作成します。 インバウンドルールは設定しなくてよいです。

ルール ポート範囲 送信先
アウトバウンド 3389 接続先EC2のセキュリティグループ

接続先EC2のセキュリティグループ設定

次に、接続先EC2のセキュリティグループ設定で、Instance Connect Endpoint用セキュリティグループからのRDP通信を許可します。 アウトバウンドルールは設定しなくてよいです。

ルール ポート範囲 ソース
インバウンド 3389 Instance Connect Endpoint用セキュリティグループ

Instance Connect Endpoint作成

[VPC]-[エンドポイント]-[エンドポイントの作成]画面にて、エンドポイントを作成していきます。

セキュリティグループ設定で、先程の手順で作成したInstance Connect Endpoint用セキュリティグループを選択します。

サブネットは、今回は対象EC2と同じサブネットを選択しています。
サブネットが異なるEC2への接続も可能ですが、その場合はAZ間のデータ転送料金が別途発生します。

AWS CLIのインストール

続いて、クライアントPCに対してAWS CLIをインストールします。
これは、接続手順の中でAWS CLIのopen-tunnelコマンドを使用するためです。

AWS CLIのインストール手順は本記事では触れませんので、公式ドキュメントを参考にインストールしてみてください。

docs.aws.amazon.com

接続してみる

これで準備が整ったので、実際に接続してみます。
クライアントPCにて、open-tunnel コマンドを使用してプライベートトンネルを確立させます。

aws ec2-instance-connect open-tunnel --instance-id i-0123456789example --remote-port 3389 --local-port any-port

以下は実際の画面です。「Listening for〜」と表示されればコマンドは成功です。

この状態でRDP接続してみます。

無事に接続できました!

より詳細な情報が知りたい方は、以下の公式ドキュメントを確認してください。

docs.aws.amazon.com

おわりに

いかがでしたでしょうか?
思ったよりも簡単な手順で、プライベート環境下のWindowsインスタンスへRDP接続ができたと思います。

今回取り上げなかった他2つの接続方法も検証しましたが、やはり今回の方法が一番シンプルで設定しやすかったです。
この記事がどなたかのお役に立てれば幸いです。

阿部伊織(執筆記事の一覧)

インフラエンジニアからクラウドエンジニアへ転職。