はじめに
こんにちは。SA1課の阿部です。
2024年も残りあとわずかとなりました。
1年は本当にあっという間ですね。
突然ですが、皆さんはプライベート環境下のEC2インスタンス(windows)へRDP接続する方法を、いくつ思い浮かべられますか?
複数の方法がパッと出てきた方は流石です!
というわけで今回は、プライベート環境下のEC2(Windows)に対するRDP接続の方法についてまとめてみました。
大前提
今回の構成は、踏み台サーバーなどを構築せずにRDP接続する方法を取り上げています。
プライベート環境下のEC2(windows)へRDP接続するための主な方法
まず、結論からご説明すると、主な方法は以下の3種類あります。
中でもおすすめなのは、「3.EC2 Instance Connect Endpointを使用する方法」です。
- Systems Manager Session Managerのポート転送を使用する方法
- Systems Managerのフリートマネージャーを使用する方法
- EC2 Instance Connect Endpointを使用する方法
各方法の詳細な手順は、公式ドキュメントをご確認ください。
それぞれの方法について、比較表でまとめてみました。
接続方法 | ユースケース | メリット | デメリット | コスト |
---|---|---|---|---|
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接続方法
構成図
今回の構成は以下の通りです。
手順
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のインストール手順は本記事では触れませんので、公式ドキュメントを参考にインストールしてみてください。
接続してみる
これで準備が整ったので、実際に接続してみます。
クライアントPCにて、open-tunnel コマンドを使用してプライベートトンネルを確立させます。
aws ec2-instance-connect open-tunnel --instance-id i-0123456789example --remote-port 3389 --local-port any-port
以下は実際の画面です。「Listening for〜」と表示されればコマンドは成功です。
この状態でRDP接続してみます。
無事に接続できました!
より詳細な情報が知りたい方は、以下の公式ドキュメントを確認してください。
おわりに
いかがでしたでしょうか?
思ったよりも簡単な手順で、プライベート環境下のWindowsインスタンスへRDP接続ができたと思います。
今回取り上げなかった他2つの接続方法も検証しましたが、やはり今回の方法が一番シンプルで設定しやすかったです。
この記事がどなたかのお役に立てれば幸いです。
阿部伊織(執筆記事の一覧)
インフラエンジニアからクラウドエンジニアへ転職。