GUI を使用して Amazon EC2 Mac インスタンスにアクセスするにはどうすればよいですか?

最終更新日: 2021 年 4 月 5 日

専用ホストに Amazon Elastic Compute Cloud (Amazon EC2) Mac インスタンスがあります。macOS 環境におけるプレミアエクスペリエンスのために、GUI を使用してインスタンスにアクセスするにはどうすればよいですか?

解決方法

注: 次の手順は macOS Mojave 10.14.6 および macOS Catalina 10.15.7 でテストされています。

1.    SSH を使用して EC2 Mac インスタンスに接続します。

Linux

次のコマンドを使用して、EC2 Mac インスタンスに ec2-user として SSH します。keypair_file をキーペアに置き換え、Instance-Public-IP をインスタンスのパブリック IP に置き換えます。

% ssh -i keypair_file ec2-user@Instance-Public-IP

Windows

Windows 10 以降のバージョンの Windows Server には、デフォルトで OpenSSH クライアントがインストールされています。または、[Settings] (設定)、[Apps] (アプリ)、[Apps & features] (アプリケーションと機能)、[Manage optional features] (オプション機能の管理)、[Add a feature] (機能の追加)、[OpenSSH Client] (OpenSSH クライアント) の順に選択して OpenSSH クライアントを有効にすることもできます。古いバージョンの Windows を使用している場合は、Git Bash を使用して前述のコマンドを実行します。

注: インスタンスはパブリックサブネット内に存在することができ、パブリック IP アドレスまたは Elastic IP アドレスを介してアクセスできるようにすることが可能です。bastion/jumphost を使用して、インスタンスに接続できます。または、AWS VPN または AWS Direct Connect を使用して、プライベート IP を介してインスタンスにアクセスできる接続を確立できます。セキュリティ上の理由から、VNC サーバーへのトラフィックは SSH を使用してトンネリングされます。ベストプラクティスとして、セキュリティグループで VNC ポートを開かないようにします。

2.    次のコマンドを実行して、Mac インスタンスから VNC (macOS 画面共有 SSH) をインストールして起動します。

sudo defaults write /var/db/launchd.db/com.apple.launchd/overrides.plist com.apple.screensharing -dict Disabled -bool false
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist

3.    次のコマンドを実行して、ec2-user のパスワードを設定します。

sudo /usr/bin/dscl . -passwd /Users/ec2-user

4.    VNC ポートへの SSH トンネルを作成します。次のコマンドで、keypair_file を SSH キーパスに置き換え、192.0.2.0 をインスタンスの IP アドレスまたは DNS 名に置き換えます。

ssh -i keypair_file -L 5900:localhost:5900 ec2-user@192.0.2.0

注: SSH セッションは、リモートセッション中に実行されている必要があります。

5.    VNC クライアントを使用して、localhost:5900 に接続します。

注: macOS には VNC クライアントが組み込まれています。Windows の場合は、Windows 用の RealVNC ビューワーを使用できます。Linux の場合は、Remmina を使用できます。Windows で実行されている TightVNC などの他のクライアントでは、この解決策を使用することはできません。

6.    macOS の GUI が起動します。ステップ 3 で設定したパスワードを使用して、Mac インスタンスのリモートセッションに ec2-user として接続します。

これで macOS デスクトップにログインすることができました。