AWS で MacOS を使ってみた

## はじめに
久々にMacBookを使用して検証をしようとしたところ、、電源がつかない、、、

→修理を待たずに今すぐ検証をしたい

　→AWSでMacOSを使ってみよう

という流れで今回 Mac on EC2 の環境を作ってたのでフィードバック

## つまずいたところ

DedicatedHosts 占有ホストが必要

→正直、今まで触る機会がなかった、、、

## 実際に構築
### 占有ホストの用意

EC2のインスタンスの中にDedicated hostsがあるのでクリック
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/5f9e791f-5b5e-067b-f668-1232c2133508.png">

Dedicated Hostsを割り当て をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/e7d4af76-45ca-c600-58ee-934b9b7ff432.png)

名前を付ける(お好みで)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/989786f1-21a1-6fb1-814c-a84e2c4e157b.png)

インスタンスファミリ=>mac1を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/59ce1472-d924-5728-e049-cad936aa3bfa.png)

インスタンスタイプ=>mac1.metalを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/9db6f673-f3e2-353d-20cd-cbad6fcad4b2.png)

ホストのメンテナンス=>チェックを外す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/d4432c85-3b34-da7a-589c-055b693bb921.png)


:::note warn
上記の設定をしないと下記のエラーが発生する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/795adb97-8d8f-c044-612e-9399d425ef5b.png)
:::

ちなみに値段は、結構高め(2024/1時点 東京リージョン)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/707319f0-0188-d8c3-e460-5bb26ccd0b9d.png)

:::note alert
占有ホストは24時間以上削除ができないみたいなので値段に注意
:::

最新の値段は下記からリージョンを選択して確認

https://aws.amazon.com/jp/ec2/dedicated-hosts/pricing/

### インスタンスを作成

名前を付けてMAC用AMIを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/3428ac25-c2f6-7bbd-70e3-a418116f7ebc.png)

インスタンスタイプ=>mac1.metal
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/00a791b5-2bf9-310c-eabd-f9ec1f1232cd.png)

セキュリティグループ、ネットワーク関連の設定などをお好みで設定(省略)

高度な詳細をクリックして展開
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/0a8856f9-88de-5be6-8bc4-7f7f9f5862bb.png)

テナンシー=>占有ホスト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/40be2d23-094b-1f06-b010-177c863f2c86.png)

ターゲットホスト=>ホストID
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/e4494d48-3edd-1db1-e2ec-1563ff49c4e6.png)

テナンシーのホストID=>作成したDedicatedHostsを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/ec2fd50e-63b1-1c43-6ef5-ef24087f6aac.png)

インスタンスを起動 をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/735553c0-a3fc-f869-a524-ae302da6a785.png)

:::note warn
※上記のターゲットホストやテナンシーのホストIDを設定しなくてもインスタンスの起動ボタンがクリックできるが、起動の開始に失敗する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/fa5ab577-0ece-50a5-953f-6f8ad74c0d99.png)

You do not have a host with a matching configuration and sufficient capacity ...

ホストの容量が足らないというような感じのエラー
:::


## VNC接続(GUI接続)
Macの接続(GUI)はSSHでポート転送とVNCを使うらしい

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-mac-instances.html#connect-to-mac-instance

事前に下記からVNC Viewer(GUI接続用クライアント)をインストールできる

https://www.realvnc.com/en/connect/download/viewer/


コマンドを実行しSSH接続しパスワード設定
```
# SSH接続
ssh -i <SSH用の鍵> ec2-user@<IPアドレス> 
# パスワードの変更
sudo passwd ec2-user
# パスワードを2回入力
```
下記のエラーが表示されるが問題ない
```                                            
################################### WARNING　##################################
# This tool does not update the login keychain password.                      #
# To update it, run `security set-keychain-password` as the user in question, #
# or as root providing a path to such user's login keychain.                  # 
###############################################################################

```
VNC接続用設定
```
# GUI用のプログラムを永続化&開始
sudo launchctl enable system/com.apple.screensharing

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist

# ログアウト
exit
```

ローカルホストのポートからSSHポート転送をする設定
```
# SSHポート転送
ssh -L 5900:localhost:5900 -i <SSH用の鍵> ec2-user@<IPアドレス>             
```
VNC Viewerを起動してlocalhost:5900に接続
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/35230b52-8c52-5f96-2228-b70474e296bc.png)

注意が出るが無視して Continue
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/ceb8990f-414b-1f84-eef1-5fef2bb8e279.png)

認証情報を入力(設定したパスワード)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/16535d49-24ba-1f73-521c-4c193537e401.png)

接続完了!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529251/6d9d275f-0496-95d9-0a5d-bf041adfbd76.png)

:::note info

接続に時間をかけるとSSHポート転送がタイムアウトするので再度コマンド実行が必要になる

:::



## 終わりに

MacOSをAWSで作る記事の数が少なく、結構つまづいた

公式サイトが一番読みやすいかもしれない、、、

ポート転送の設定をしないといけないのがちょっと面倒
(セキュリティグループを5900をあけていたら不要だが公式の手順がポート転送なのはセキュリティ的な問題だと思われるため、セキュリティが不要な環境は直接続を試してみてもいいかもしれない)

ついでに本記事のMacOS環境でEC2 Instance Connectでの接続もやってみたので興味があればどうぞ

https://qiita.com/eguchi7309/items/deff862952a70079d6ed