ハマログ

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

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日


関連記事

PHPでChatworkに自動投稿する

イーツー・インフォでは、社内コミュニケーションツールとしてChatworkを利用…

QA/テスト関連の動画視聴_202307

QAエンジニアやテストエンジニアのトレンドを追ったり知識を得たりするため、you…

Laravel5.1のリリース

Laravel5.1がリリースされました。PSR-2の採用、イベントブロードキャ…


← 前の投稿

次の投稿 →