ハマログ

株式会社イーツー・インフォの社員ブログ

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

AWSmac

  yasu   2022年10月28日


関連記事

Laravel開発でREPLを使う

久しぶりにLaravelでのそれなりの規模の開発に携わることになりました。 以前…

ECCUBEのヤマト配送時間変更対応の方法!

こんにちは!宇都宮です! 今日はなんと!ヤマトさんの配送時間変更に伴い、ECCU…

AWSとは何ぞや

皆様お疲れ様です。 今まで経験した環境では特にAWSと関わることがなく 存在は知…


← 前の投稿

次の投稿 →