はじめに
友人(@digital24s さん)に誘われて、Google Compute Engine に Windows 環境を作ってリモートデスクトップ接続するまで、一緒にトライしました。
Google Compute Engine に Windows 環境を作ってリモートデスクトップ接続してみた #GoogleCloud - Qiita
Winodws 環境でなく Ubuntu デスクトップ環境を作ってみることにしました。
Google Compute Engine に Ubuntu デスクトップ環境を作ってリモート接続する
以下の記事を参考にしました。
Google Compute Engine に Windows 環境を作ってリモートデスクトップ接続してみた #GoogleCloud - Qiita
Ubuntu server 20.04.2 をリモートデスクトップ専用機としてセットアップする。 #ubuntu20.04 - Qiita
プロジェクトを作成する
プロジェクトを作成する
以下の項目を指定してプロジェクトを作成します。
- 名前:任意
- ID:任意
「Compute Engine API」を有効にする
作成したプロジェクトを選択します。
そして「Compute Engine API」を有効にしておきます。
VPC を作成する
VPC を作成する
「Compute Engine API」を有効にすると、プロジェクトに VPC「default」が自動で作成されます。
今回はこれを使用します。
サブネットを作成する
VPC「default」には、サブネット「default」が自動で作成されています。これを使用することにします。
インターネットゲートウェイとルートテーブルを作成する
EC2 ではインターネットゲートウェイを作成して、仮想ネットワーク内宛「以外」の通信をインターネットゲートウェイに向くよう設定するルートテーブルを作成しました。
GCP では、デフォルトのインターネットゲートウェイとルートテーブルが作成されています。これを使用します。
VM インスタンスを作成する
仮想マシンの設定する
以下の項目を指定して VM インスタンスを作成します。
- 名前:任意
- リージョン:選択
- ゾーン:選択
リージョンは、自分に近いところにします。リモートデスクトップ接続して操作したときの反応に影響します。日本国内が望ましいのですが、単価が高いのが悩むところです。
マシンの構成を設定する
以下の項目を設定します。
- ファミリー:汎用
- シリーズ:E2
- タイプ:e2-standard-2 (2 CPU 8 GB メモリ)
タイプつまり性能は、自分の用途に合わせて決めます。
- 可用性ポリシー:標準
可用性ポリシーは、サーバ機のように常時安定稼動が必要ないなら「スポット」もいいでしょう。単価が安くできます。
ブートディスクの設定する
「変更」実行して以下の項目を設定します。
- OS:Ubuntu
- バージョン:22.04 LTS
- ブートディスクの種類:標準永続ディスク
- サイズ:20GB
バージョン、ディスクの種類とサイズは、自分の用途に合わせて決めます。
残りの項目は既定のままで進めます。
ファイアウォールの設定する
以下の項目を設定します。設定に従ってファイアウォールが作成されます。
- HTTP トラフィックを許可する
- HTTPS トラフィックを許可する
ネットワークの設定する
仮想マシンのネットワークの設定します。
- ネットワーク:「default」が選択されている
- サブネットワーク:「default」が選択されている
参考:VPC ネットワーキングと Google Compute Engine を使ってみる | Google Cloud Skills Boost
残りの項目は既定のままで進めます。
IP アドレスの設定する
予め IP アドレスを作成しておいて仮想マシンに適用することもできますが、仮想マシンの設定の時点で以下の設定すると IP が作成されます。
- プライマリ内部 IPv4 アドレス:エフェメラル(自動)
- 外部 IPv4 アドレス:静的 IP アドレスを予約
以下の項目を指定して静的 IP アドレスを作成します。
- 名前:任意
参考:GCP Compute Engineで静的IPアドレスを割り当てる | yusuke.blog
静的アドレスを設定すると、維持費用が掛かります。費用を抑えるために、動的=エフェメラルの設定にして、起動した時点で管理画面でアドレスを確認して、リモートデスクトップ接続に使用する運用でも構いません。
その他の設定する
その他の設定は既定のままで進めます。
VM インスタンスを起動する
作成した VM インスタンスを選択して「起動」実行します。
SSH 接続する
接続の設定を確認する
起動している VM インスタンスを選択して「接続」の設定します。
以下のいずれかの方法で接続できます。
- Google Cloud 管理画面の「SSH」ボタンつまり「ブラウザウィンドウで開く」を使う
- ターミナルソフトで「gcloud」コマンドを使う
- SSH クライアントソフトで接続する
参考:詳解 Google Compute Engineへの接続
このうち「ブラウザウィンドウで開く」ことにします。
SSH 接続する
Google Cloud 管理画面の「SSH」ボタン押下あるは「接続」の選択メニューで「ブラウザウィンドウで開く」を実行します。
Google Cloud が、ブラウザウィンドウでターミナル画面を用意して、自動で SSH 認証鍵を作成して登録して、Google アカウントと同じ名前のユーザでログインまでしてくれます。
デスクトップ環境をインストールしてリモート接続する
一般的な Linux ディストリビューションは、いわゆるデスクトップ環境が導入されています。ところが、Google Compute Engine サービスで用意されている Linux マシンは、デスクトップ環境が導入されていません。
作成した仮想マシンにデスクトップ環境をインストールします。
参考:AWS EC2でデスクトップ環境をつくる ~ Ubuntu Server 18.04 LTS GNOME編~ #AWS - Qiita
参考:Azure仮想マシンでUbuntu Server 22.04 にDesktop を導入してRDP接続する - 技術的な何か。
参考:Google Compute Engine でUbuntu Desktop (KDE)環境を構築してリモートデスクトップから接続する · GitHub
Ubuntu Desktop をインストールする
仮想マシンで以下のコマンド入力します。
$ sudo apt -y update
$ sudo apt -y upgrade
これを忘れて VM インスタンスの apt の環境のまま作業したら、上手くいきませんでした。↑
ubuntu-desktop
をインストールします。↓
$ sudo apt -y install ubuntu-desktop
xrdp をインストールする
Windows と同様に RDP で接続したいので、xrdp
をインストールして有効化します。
$ sudo apt -y install xrdp
$ sudo systemctl enable xrdp
接続するユーザとパスワードを設定する
Google Compute Engine の Windows 環境は Google Cloud の管理画面でユーザとパスワードを設定できましたが、Linux 環境は仮想マシン上で設定します。
$ sudo adduser (任意のユーザ名)
(パスワードなど入力)
$ sudo gpasswd -a (上記のユーザ名) sudo
リモートデスクトップ接続する
接続元の環境で RDP クライアントツール(Windows なら「リモートデスクトップ接続」)を起動します。
以下の情報を使って接続してログインします。
- 接続先:前述の設定画面で取得した IP アドレス
- ユーザ名:前述の設定画面で設定したユーザ名
- パスワード:前述の設定画面で設定したパスワード
キーボードレイアウトや日本語入力環境など設定する
キーボードレイアウトを設定する
Ubuntu で日本語キーボードレイアウト #Ubuntu - Qiita
デスクトップを日本語環境にする
Ubuntu20.04の日本語化 #Ubuntu - Qiita