AWS EC2でデスクトップ環境をつくる ～ Ubuntu Server 18.04 LTS GNOME編～

## はじめに
作業環境が結構、異なるのでクラウド上に環境を作ってみます。
AWS Cloud9も良いのですがこの話はまたいつか。
**結論から書くと意外とイケてる**。。。ような気がする:laughing:
ただ、AMI作って再利用すると失敗する。。。

## 前提条件

本記事は以下の環境等を使用しております。

| クライアント環境 | Version |
|:-----|:--------|
| Windows | 7(64bit), 8(64bit), 10(64bit) |
| Remote Desktop| - |

| クライアント環境 | Version |
|:-----|:--------|
| Mac | Yosemite, High Sierra |
| Microsoft Remote Desktop| 8, 10 |

| ターゲット環境 | Version |
|:-----|:--------|
| Amazon EC2 | Ubuntu Server 18.04 LTS |
| Terminal | 使いやすいもの |

## EC2インスタンスの準備 
重要な点のみ記載してます

| OSはUbuntu Server 18.04 LTSを指定|
|:---|
|![aws-ec2-lxde-001.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/4dd48e46-26dd-e15c-ad36-fbc79d507b4b.jpeg)|

| メモリは4GB位あると良いので、t2.mediumぐらいを選択<br>※無料範囲ではないので使用しない時は停止することを推奨します|
|:---|
|![aws-ec2-lxde-002.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/40a327d2-5ada-6370-d2d4-3d24e9c668cc.jpeg)|

|パブリックIPは念のために有効化を選択|
|:---|
|![aws-ec2-lxde-003.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/81a6352f-a82b-dbf2-5a63-da7c446dce87.jpeg)|


|EBSは20GB以上を設定、ここでは30GBとしています|
|:---|
|![aws-ec2-lxde-004.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/1ee5fcb7-b34b-912d-1bb2-0c5f04629cbf.jpeg)|


|見分けが付くようにタグ(Name)を設定|
|:---|
|![aws-ec2-lxde-005.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/fdc55f8f-d8b3-0f65-8243-7577088b5481.jpeg)|


|IP制限を設定する場合は赤枠を変更|
|:---|
|![aws-ec2-lxde-006.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/c1e3f7f9-2231-757c-f9fb-d090167e9247.jpeg)|


|必要に応じて新規もしくは既存のキーペアを設定<br>秘密鍵は必ず保存しておいてください|
|:---|
|![aws-ec2-lxde-007.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/311e625c-fc62-e538-4756-a2067624f111.jpeg)|


|リモートデスクトップの接続先アドレスには赤枠のアドレスを使用します|
|:---|
|![aws-ec2-lxde-008.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/9f9fc2d6-3f50-3af8-b842-c3a2f8f38df4.jpeg)|

## EC2インスタンスの設定 
インスタンスを作成後、SSHにてインスタンスへ接続します。

```shell:terminal
$ ssh -i <秘密鍵> ubuntu@<PublicIP>
```

### リポジトリとパッケージの更新
```shell:terminal
$ sudo apt update -y
$ sudo apt upgrade -y
```

※Grub関係なので今のバージョンを維持します
 「keep the local version currently installed」を選択
![aws-ec2-lxde-009.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/c15770d6-7f57-9e3e-ed1c-33b918942f8a.jpeg)

### デスクトップ用ユーザーの作成
```shell:terminal
$ sudo adduser user_name

Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for desktop
Enter the new value, or press ENTER for the default
        Full Name []: 　　← Enterを入力
        Room Number []: 　← Enterを入力
        Work Phone []: 　 ← Enterを入力
        Home Phone []: 　 ← Enterを入力
        Other []: 　　　　← Enterを入力
Is the information correct? [Y/n] Y　← Yを入力
```
### デスクトップ用ユーザーをsudoグループへ追加
```shell:terminal
$ sudo gpasswd -a user_name sudo
```

### デスクトップ環境のインストール
```shell:terminal
$ sudo apt -y install ubuntu-desktop
```

### XRDPのインストール
```:terminal
#xrdpのインストール(執筆時はVersion 0.9.5)
$ sudo apt install -y xrdp
$ xrdp -v
xrdp: A Remote Desktop Protocol server.
Copyright (C) Jay Sorg 2004-2014
See http://www.xrdp.org for more information.
Version 0.9.5

#new_cursorsの無効化
$ sudo sed -e 's/^new_cursors=true/new_cursors=false/g' -i /etc/xrdp/xrdp.ini
 
#xrdpサービスの再起動、有効化
$ sudo systemctl restart xrdp
$ sudo systemctl enable xrdp.service 
$ sudo systemctl enable xrdp-sesman.service 
$ systemctl list-unit-files -t service | grep xrdp
xrdp-sesman.service                            enabled  
xrdp.service                                   enabled  

#xsessionファイルの作成
$ su user_name
$ cd ~
$ DESKTOP=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
$ cat <<EOF > ~/.xsessionrc
> export GNOME_SHELL_SESSION_MODE=ubuntu
> export XDG_CURRENT_DESKTOP=ubuntu:GNOME
> export XDG_DATA_DIRS=${DESKTOP}
> export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
> EOF
 
#Authentication Requiredダイアログの回避
$ cat <<EOF | sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-color-manager.pkla
>[Netowrkmanager]
>Identity=unix-user:*
>Action=org.freedesktop.color-manager.create-device
>ResultAny=no
>ResultInactive=no
>ResultActive=yes
>EOF
$ sudo systemctl restart polkit
```

リモートデスクトップクライアントにてインスタンスへ接続します。
![aws-ec2-lxde-010.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/925be008-cb2b-3187-05a4-c64ee134d24d.jpeg)

接続できると下記のようになります
![aws-ec2-lxde-011.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/8ec41da3-6465-e1cf-4e30-5bf233e0aaa6.jpeg)


## 日本語化
|ソフトアップデート<br>Activitiesからupdateを検索、実行|
|:---|
|![aws-ec2-lxde-012.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/20b7cd9b-bcd7-8604-50d2-c9e26b8e6920.jpeg)|

|言語設定<br>Activitiesからlangを検索、実行|
|:---|
|![aws-ec2-lxde-013.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/3acdc340-b98c-3994-4a2f-dc259754a8d0.jpeg)|

|言語設定<br>①からJapaneseを追加、②で日本語を最上位に設定、③iBusを設定、④システムへ設定|
|:---|
|![aws-ec2-lxde-014.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/ead41e36-6c3c-5e0c-cb0f-5ed5238b4a00.jpeg)|

|リージョン設定<br>①で日本語を設定、②システムへ設定|
|:---|
|![aws-ec2-lxde-015.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/96301f5e-78c8-c152-6a7e-6a5b69bbad26.jpeg)|


上記、設定後再起動


|再起動後のダイアログ<br>ユーザーフォルダは英語のままにしておく|
|:---|
|![aws-ec2-lxde-016.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/e14604f5-02fd-0b03-33a4-7b89790d13e1.jpeg)|

|入力ソース設定<br>日本語(OADG、Mozc)を追加|
|:---|
|![aws-ec2-lxde-017.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/a2f03019-a8f8-0982-9102-6cc0c4fc467d.jpeg)
![aws-ec2-lxde-018.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/093dcc2a-41b3-df9b-ae5d-80b8d23c5980.jpeg)
![aws-ec2-lxde-019.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/d7abc652-ec8e-f4ac-638f-36d83b4c11c1.jpeg)|



|パッケージの追加<br>他のソフトウェアの追加|
|:---|
|![aws-ec2-lxde-020.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/19c232d7-27f8-f468-fe43-c3cce1173dd8.jpeg)
![aws-ec2-lxde-021.JPG](https://qiita-image-store.s3.amazonaws.com/0/269640/00261115-f8e2-b867-cbc9-aec281cd354e.jpeg)|


### RDP時のキーマップ変更
```shell:terminal
$ cd /etc/xrdp
$ sudo wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini
$ sudo mv km-e0010411.ini km-0411.ini
$ sudo chmod 644 km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini
```

### 時刻設定、表示の変更
```shell:terminal
$ sudo dpkg-reconfigure tzdata
$ gsettings set org.gnome.desktop.interface clock-show-date true
```

## ソフトウェアの追加(任意)
Google Chrome
GIMP
GNOME Tweaks
イメージビューワ
Deepin Screenshot
Visual Studio Code