AWSにてmacOS環境の構築
はじめに
リモートワークが進み自宅にて作業を行うことが多くなってきた関係で、検証でmacOS環境が必要だが手元にないという状況が発生するようになった
AWSのブログにて紹介されていた方法をもとにAWS上でのmac環境構築ができるようになれば、手元に機器がなくても検証が可能となるため、手段の一つになると思い実践してみた
注意点
料金について
流れとして、専有ホストを作成し、インスタンスを起動してmacOS環境にアクセスすることになるのだが
①専有ホスト作成 → ②インスタンス起動 → ③インスタンス終了 → ④専有ホスト終了
までが課金対象なので、作業完了後は必ず④専有ホスト終了まで行うこと
但し専有ホストは作成後24時間は終了にできないため、24時間経過後に忘れずに終了させること
事前準備
画面右上のリージョンをバージニア北部に変更しておく
バージニア北部を選択すると、安価なmac2.metalのほうを使用できるため
①専有ホスト作成
EC2 > Dedicated Hosts
https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#Hosts:
Dedicated Hostsを割り当て押下
設定値
名前タグ:【任意の名前】 インスタンスファミリー:mac2 インスタンスタイプ:mac2.metal アベイラビリティーゾーン:us-east-1a インスタンスの自動配置:有効化 数量:1
上記にて実行。結果、専有ホストが作成される
②インスタンス作成
EC2 > インスタンス
https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#Instances:
インスタンスを起動を押下
設定値
名前:【任意の名前】 アプリケーションおよび OS イメージ (Amazon マシンイメージ) クイックスタート:macOS Amazon マシンイメージ (AMI):macOS Montetey アーキテクチャ:64ビット(Mac Arm) インスタンスタイプ:mac2.metal キーペア (ログイン) :新しいキーペアの作成 ⇒キーペア名:【任意】 キーペアのタイプ:RSA プライベートキーファイル形式:.pem ★秘密鍵がダウンロードされるため保存 高度な詳細 > テナンシー:専有ホスト
上記を設定し、インスタンスを起動押下
結果、インスタンスが作成される
注意
・初期化に時間がかかるため、10分くらい待機が必要
・ステータスチェックに引っかかった場合、後続のセキュリティグループの設定を行った後再チェックを実行
③セキュリティグループ整備
作成したインスタンスを選択し、セキュリティタブのセキュリティグループを押下
もしくは、
EC2 > セキュリティグループを押下
https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#SecurityGroups:
作成したインスタンスに紐づくセキュリティグループを選択
インバウンドルール > インバウンドのルールを編集を押下
設定値
①SSH接続の設定 タイプ:SSH ソース:カスタム 0.0.0.0/0 ②VNC クライアント接続の設定 タイプ:カスタムTCP ポート範囲:5900 ソース:カスタム 【クライアントPCのIPアドレス】
ルールを保存
結果、各ツールでアクセスできるようになった
④SSH接続、VNCサーバ起動
teratermなどで、SSH接続
ホスト:インスタンス > 詳細タブに表示される【パブリック IPv4 アドレス】 ユーザ名:ec2-user パスフレーズ:空欄 秘密鍵:インスタンス作成 - キーペア作成時に作成した秘密鍵
以下のコマンドを順に実行
sudo dscl . -passwd /Users/ec2-user 【任意のパスワード】 sudo defaults write /var/db/launchd.db/com.apple.launchd/overrides.plist com.apple.screensharing -dict Disabled -bool false sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -allUsers -privs -all sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -clientopts -setvnclegacy -vnclegacy yes sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -clientopts -setvncpw -vncpw 【任意のパスワード】 sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent -console sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
※以降は、SSH接続を行っていなくてもよい
⑤VNC クライアントの準備
今回はVNC Viewerを使用した ※リンク先よりダウンロードし、インストール
File > New Connection押下
VNC Server:インスタンス > 詳細タブに表示される【パブリック IPv4 アドレス】
OKを押下
作成された接続をダブルクリック
警告が出るが、Continue押下
Usernameに「ec2-user」
Passwordに「【任意のパスワード】」を設定しOK押下
※SSH接続にてコマンド入力時に設定したパスワード
passwordに「【任意のパスワード】」を設定し→押下
ログイン成功
⑥インスタンスの終了
インスタンス画面にて、対象インスタンスにチェックを付け、インスタンスを終了押下
※この操作を行うと、インスタンスが破棄され復旧できない状態となるため注意が必要
インスタンスの状態が「シャットダウン中」となる
同時に、専有ホストの状態が「Pending」となる
1時間強ほど経過しないと、再度操作可能とならない
最終的に「終了済み」となる。その後一定時間経過で一覧に表示されなくなる
⑦専有ホストの終了
Dedicated Hosts画面にて、対象専有ホストにチェックを付け、ホストをリリース押下
再描画すると、状態が「Released」となっている
※また、リリース時刻にも値が入っている
終わりに
実際に操作してみた所感としては、(設定に改善ポイントがあったのかもしれないが)単純な操作であっても表示がカクつくなどあり、常にこの環境で作業をするという用途には向かないように感じた
ただ機器が手元にない場合の手段の一つとしては、覚えておいて損はないと感じた
参考にしたURL
https://writerman.hatenablog.jp/entry/2020/12/02/134905
https://dev.classmethod.jp/articles/reinvent2020-mac-instance-vnc/
https://simple-minds-think-alike.moritamorie.com/entry/ec2-mac-instance
https://www.ipentec.com/document/mac-os-x-remote-connection-from-windows-using-vnc