Amazon EC2 Mac 인스턴스에서 운영 체제와 소프트웨어 업데이트하기
Amazon EC2 Mac 인스턴스에서 운영 체제와 소프트웨어 업데이트하기
이 문서는 Apple silicon Mac 인스턴스(Mac2, Mac2-m1ultra, Mac2-m2, Mac2-m2pro, Mac-m4, Mac-m4pro)와 x86 Mac 인스턴스(Mac1)에서 운영 체제와 소프트웨어를 업데이트하는 방법을 설명해요.
출처: 문서
본문
경고: 베타 또는 프리뷰 macOS 버전 설치는 Apple silicon Mac 인스턴스에서만 가능해요. Amazon EC2는 베타나 프리뷰 macOS 버전을 검증하지 않고, 사전 프로덕션(pre-production) macOS 버전으로 업데이트한 뒤에도 인스턴스가 계속 작동할 것이라고 보장하지 않습니다. Amazon EC2 x86 Mac 인스턴스에 베타나 프리뷰 macOS 버전을 설치하려 시도하면, 인스턴스를 중지하거나 종료할 때 Amazon EC2 Mac 전용 호스트(Dedicated Host)가 저하되고, 그 호스트에서 새 인스턴스를 시작하거나 실행할 수 없게 됩니다.
참고: AWS가 공식 AMI를 출시하기 전에 제자리(in-place) macOS 업데이트를 수행하면, 업데이트는 선택한 호스트에만 적용돼요. 다른 호스트가 있거나 새 호스트를 실행하면 그 호스트에서도 동일한 업데이트 과정을 수행해야 합니다. 각 macOS 버전은 기반 Apple Mac 하드웨어에 최소 펌웨어 버전을 요구해요. 제자리 업데이트는 선택한 호스트의 펌웨어만 업데이트하고 다른 기존·신규 호스트에는 전달되지 않습니다. Amazon EC2 Mac 전용 호스트와 호환되는 macOS 버전을 확인하려면 Find supported macOS versions for your Amazon EC2 Mac Dedicated Host 문서를 참고하세요.
Amazon EC2 Mac 인스턴스 유형에 따라 아래의 올바른 단계를 따르세요.
사전 조건 (Prerequisites)
네트워크 드라이버 구성이 업데이트되면서 ENA 드라이버 버전 1.0.2는 macOS 13.3 이상과 호환되지 않아요. 13.3 이상의 베타·프리뷰·프로덕션 macOS 버전을 설치하려는데 최신 ENA 드라이버를 설치하지 않았다면, 아래 절차로 새 버전의 드라이버를 설치하세요.
ENP 드라이버 새 버전 설치하기
- 터미널 창에서 SSH로 Apple silicon Mac 인스턴스에 연결합니다.
- 다음 명령으로 Homebrew를 업데이트하고 ENA 애플리케이션을 Applications 파일에 다운로드합니다.
[ec2-user ~]$ brew update
[ec2-user ~]$ brew install amazon-ena-ethernet-dext
exit를 입력하고 return을 눌러 인스턴스에서 연결을 끊습니다.- VNC 클라이언트를 사용해 ENA 애플리케이션을 활성화합니다.
- Connect to your instance's graphical user interface (GUI) 문서를 사용해 VNC 클라이언트를 설정합니다.
- Screen Sharing 애플리케이션으로 인스턴스에 연결한 뒤 Applications 폴더로 가서 ENA 애플리케이션을 엽니다.
- Activate를 선택합니다.
- 드라이버가 올바르게 활성화되었는지 확인하려면 터미널 창에서 다음 명령을 실행합니다. 출력은 이전 드라이버가 terminating 상태이고 새 드라이버가 activated 상태임을 보여줘요.
systemextensionsctl list;
- 인스턴스를 다시 시작하면 새 드라이버만 남아 있어요.
소프트웨어 업데이트 수행하기 (Perform the software update)
Apple silicon Mac 인스턴스에서는 제자리 운영 체제 업데이트를 수행하려면 여러 단계를 거쳐야 해요. 여기에는 Amazon EBS 루트 볼륨의 소유권을 EBS 루트 볼륨 관리 사용자에게 위임하는 작업이 포함됩니다. 이 작업은 Amazon EC2 API로 자동 수행하거나, 인스턴스에서 명령을 실행해 수동으로 할 수 있어요.
자동 볼륨 소유권 위임 (Automated volume ownership delegation, 권장)
고려사항
- 볼륨 소유권 위임 작업이 완료되는 데 30~90분이 걸릴 수 있어요. 이 시간 동안 인스턴스에 연결할 수 없습니다.
- 다음 macOS 버전이 지원됩니다:
- Mac2, Mac2-m1ultra — macOS Ventura(버전 13.0 이상)
- Mac2-m2, Mac2-m2pro — macOS Ventura(버전 13.2 이상)
- Mac-m4, Mac-m4pro — macOS Sequoia(버전 15.6 이상)
- 인스턴스에는 부팅 가능한 볼륨이 하나만 있어야 하고, 각 연결 볼륨에는 추가 관리 사용자가 하나만 있을 수 있어요.
1단계: EBS 루트 볼륨 관리 사용자의 비밀번호 설정과 보안 토큰 활성화
Amazon EBS 루트 볼륨 관리 사용자(ec2-user)의 비밀번호를 설정하고 보안 토큰(secure token)을 활성화해야 해요.
참고: 비밀번호와 보안 토큰은 GUI로 Apple silicon Mac 인스턴스에 처음 연결할 때 설정됩니다. 이전에 GUI로 인스턴스에 연결했다면 이 단계를 수행할 필요가 없어요.
- SSH로 인스턴스에 연결합니다.
ec2-user사용자의 비밀번호를 설정합니다.
$ sudo /usr/bin/dscl . -passwd /Users/ec2-user
ec2-user사용자의 보안 토큰을 활성화합니다.-oldPassword에는 이전 단계와 같은 비밀번호를,-newPassword에는 다른 비밀번호를 지정합니다. 다음 명령은 이전·새 비밀번호가 .txt 파일에 저장되어 있다고 가정해요.
$ sysadminctl -oldPassword `cat old_password.txt` -newPassword `cat new_password.txt`
- 보안 토큰이 활성화되었는지 확인합니다.
$ sysadminctl -secureTokenStatus ec2-user
2단계: Amazon EBS 루트 볼륨의 소유권을 EBS 루트 볼륨 관리 사용자에게 위임
소유권을 위임하려면 볼륨 소유권 위임 작업(volume ownership delegation task)을 만들어야 해요. create-delegate-mac-volume-ownership-task 명령을 사용해 작업을 만듭니다. --instance-id에는 인스턴스 ID를, --mac-credentials에는 다음 자격 증명을 지정합니다.
- 내부 디스크 관리 사용자 (Internal disk administrative user)
- Username — 기본 관리 사용자(
aws-managed-user)만 지원되며 기본값으로 사용돼요. 다른 관리 사용자를 지정할 수 없어요. - Password —
aws-managed-user의 기본 비밀번호를 변경하지 않았다면 기본 비밀번호(비어 있음)를 지정합니다. 그렇지 않으면 자기 비밀번호를 지정하세요.
- Username — 기본 관리 사용자(
- Amazon EBS 루트 볼륨 관리 사용자 (Amazon EBS root volume administrative user)
- Username — 기본 관리 사용자를 변경하지 않았다면
ec2-user를 지정합니다. 그렇지 않으면 자기 관리 사용자 이름을 지정하세요. - Password — 위 1단계에서 루트 볼륨 관리 사용자에게 설정한 비밀번호를 지정합니다.
- Username — 기본 관리 사용자를 변경하지 않았다면
aws ec2 create-delegate-mac-volume-ownership-task \
--instance-id i-1234567890abcdef0 \
--mac-credentials file://mac-credentials.json
위 예시에서 참조한 mac-credentials.json 파일의 내용은 다음과 같아요.
{
"internalDiskPassword":"internal-disk-admin_password",
"rootVolumeUsername":"root-volume-admin_username",
"rootVolumePassword":"root-volume-admin_password"
}
볼륨 소유권 위임 작업이 완료되고 인스턴스가 정상 상태로 돌아올 때까지 기다립니다. describe-mac-modification-tasks 명령을 사용하세요. --mac-modification-task-id에는 이전 단계의 볼륨 소유권 위임 작업 ID를 지정합니다.
aws ec2 describe-mac-modification-tasks \
--mac-modification-task-id task-id
볼륨 소유권 위임 작업이 완료되면 3단계로 계속 진행합니다.
3단계: 소프트웨어 업데이트
Amazon EBS 루트 볼륨의 소유권을 위임했다면, 아래의 Update software on x86 Mac instances에 설명된 단계를 따라 소프트웨어를 업데이트하세요.
수동 볼륨 소유권 위임 (Manual volume ownership delegation)
이 절차를 진행하면서 비밀번호를 두 개 만듭니다. 하나는 Amazon EBS 루트 볼륨 관리 사용자(ec2-user)용, 다른 하나는 내부 디스크 관리 사용자(aws-managed-user)용이에요. 절차를 진행하면서 사용하게 되므로 이 비밀번호를 꼭 기억하세요.
참고: 이 절차로는 macOS Big Sur에서 부 업데이트(예: macOS Big Sur 11.7.3에서 11.7.4로)만 수행할 수 있어요. macOS Monterey 이상에서는 주요 소프트웨어 업데이트를 수행할 수 있습니다.
내부 디스크에 접근하려면
- 로컬 컴퓨터의 터미널에서 다음 명령으로 SSH를 사용해 Apple silicon Mac 인스턴스에 연결합니다. 자세한 내용은 Connect to your instance using SSH 문서를 참고하세요.
ssh -i /path/key-pair-name.pem ec2-user@instance-public-dns-name
- 다음 명령으로 macOS Screen Sharing을 설치하고 시작합니다.
[ec2-user ~]$ sudo launchctl enable system/com.apple.screensharing
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
- 다음 명령으로
ec2-user의 비밀번호를 설정합니다. 나중에 사용하게 되므로 기억해 두세요.
[ec2-user ~]$ sudo /usr/bin/dscl . -passwd /Users/ec2-user
exit를 입력하고 return을 눌러 인스턴스에서 연결을 끊습니다.- 로컬 컴퓨터의 터미널에서 다음 명령으로 VNC 포트로 SSH 터널을 사용해 인스턴스에 다시 연결합니다.
ssh -i /path/key-pair-name.pem -L 5900:localhost:5900 ec2-user@instance-public-dns-name
참고: 다음 VNC 연결과 GUI 단계가 완료될 때까지 이 SSH 세션을 종료하지 마세요. 인스턴스가 다시 시작되면 연결은 자동으로 닫힙니다.
- 로컬 컴퓨터에서 다음 단계를 따라
localhost:5900에 연결합니다.- Finder를 열고 Go를 선택합니다.
- Connect to Server를 선택합니다.
- Server Address 필드에
vnc://localhost:5900을 입력합니다.
- macOS 창에서 3단계에서 만든 비밀번호로
ec2-user로 Apple silicon Mac 인스턴스의 원격 세션에 연결합니다. - 다음 옵션 중 하나로 InternalDisk라는 이름의 내부 디스크에 접근합니다.
- macOS Ventura 이상: System Settings를 열고 왼쪽 창에서 General을 선택한 다음 창 오른쪽 아래의 Startup Disk를 선택합니다.
- macOS Monterey 이하: System Preferences를 열고 Startup Disk를 선택한 다음 창 왼쪽 아래의 자물쇠 아이콘을 선택해 창의 잠금을 해제합니다.
트러블슈팅 팁: 내부 디스크를 마운트해야 한다면 터미널에서 다음 명령을 실행하세요.
APFSVolumeName="InternalDisk" ; SSDContainer=$(diskutil list | grep "Physical Store disk0" -B 3 | grep "/dev/disk" | awk {'print $1'} ) ; diskutil apfs addVolume $SSDContainer APFS $APFSVolumeName
- InternalDisk라는 내부 디스크를 선택하고 Restart를 선택합니다. 메시지가 표시되면 다시 Restart를 선택합니다.
중요: 내부 디스크 이름이 InternalDisk가 아니라 Macintosh HD라면, 인스턴스를 중지하고 다시 시작해야 전용 호스트를 업데이트할 수 있어요. 자세한 내용은 Stop or terminate your Amazon EC2 Mac instance 문서를 참고하세요.
다음 절차를 사용해 관리 사용자에게 소유권을 위임합니다. SSH로 인스턴스에 다시 연결하면 특수 관리 사용자(aws-managed-user)를 사용해 내부 디스크에서 부팅합니다. aws-managed-user의 초기 비밀번호는 비어 있으므로 첫 연결에서 덮어써야 해요. 부팅 볼륨이 변경되었으므로 macOS Screen Sharing을 설치하고 시작하는 단계를 다시 반복해야 합니다.
Amazon EBS 볼륨에서 관리자에게 소유권 위임하기
- 로컬 컴퓨터의 터미널에서 다음 명령으로 Apple silicon Mac 인스턴스에 연결합니다.
ssh -i /path/key-pair-name.pem aws-managed-user@instance-public-dns-name
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!경고가 표시되면 다음 명령 중 하나로 이 문제를 해결하세요.- 다음 명령으로 known hosts를 지우고 이전 단계를 반복합니다.
rm ~/.ssh/known_hosts
- 이전 단계의 SSH 명령에 다음을 추가합니다.
-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
- 다음 명령으로
aws-managed-user의 비밀번호를 설정합니다.aws-managed-user의 초기 비밀번호는 비어 있으므로 첫 연결에서 덮어써야 해요.
[aws-managed-user ~]$ sudo /usr/bin/dscl . -passwd /Users/aws-managed-user password
Permission denied. Please enter user's old password: 프롬프트가 표시되면 enter를 누릅니다.
트러블슈팅 팁:
passwd: DS error: eDSAuthFailed오류가 나면 다음 명령을 사용하세요.
[aws-managed-user ~]$ sudo passwd aws-managed-user
- 다음 명령으로 macOS Screen Sharing을 설치하고 시작합니다.
[aws-managed-user ~]$ sudo launchctl enable system/com.apple.screensharing
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
exit를 입력하고 return을 눌러 인스턴스에서 연결을 끊습니다.- 로컬 컴퓨터의 터미널에서 다음 명령으로 VNC 포트로 SSH 터널을 사용해 인스턴스에 다시 연결합니다.
ssh -i /path/key-pair-name.pem -L 5900:localhost:5900 aws-managed-user@instance-public-dns-name
- 로컬 컴퓨터에서 다음 단계를 따라
localhost:5900에 연결합니다.- Finder를 열고 Go를 선택합니다.
- Connect to Server를 선택합니다.
- Server Address 필드에
vnc://localhost:5900을 입력합니다.
- macOS 창에서 3단계에서 만든 비밀번호로
aws-managed-user로 Apple silicon Mac 인스턴스의 원격 세션에 연결합니다.
참고: Apple ID로 로그인하라는 메시지가 표시되면 Set Up Later를 선택합니다.
- 다음 옵션 중 하나로 Amazon EBS 볼륨에 접근합니다.
- macOS Ventura 이상: System Settings를 열고 왼쪽 창에서 General을 선택한 다음 창 오른쪽 아래의 Startup Disk를 선택합니다.
- macOS Monterey 이하: System Preferences를 열고 Startup Disk를 선택한 다음 창 왼쪽 아래의 자물쇠 아이콘을 사용해 창의 잠금을 해제합니다.
참고: 재부팅이 일어날 때까지 관리자 비밀번호를 묻는 프롬프트가 나오면 위에서
aws-managed-user에 설정한 비밀번호를 사용하세요. 이 비밀번호는ec2-user에 설정한 비밀번호나 인스턴스의 기본 관리자 계정 비밀번호와 다를 수 있어요. 인스턴스의 관리자 비밀번호를 언제 사용해야 하는지는 아래 지침에 지정되어 있습니다.
- Amazon EBS 볼륨(Startup Disk 창에서 InternalDisk라고 이름 붙지 않은 볼륨)을 선택하고 Restart를 선택합니다.
참고: Apple silicon Mac 인스턴스에 부팅 가능한 Amazon EBS 볼륨이 여러 개 연결되어 있다면 각 볼륨에 고유한 이름을 사용하세요.
- 다시 시작을 확인하고 메시지가 표시되면 Authorize Users를 선택합니다.
- Authorize user on this volume 창에서 관리 사용자(기본값
ec2-user)가 선택되어 있는지 확인하고 Authorize를 선택합니다. - 이전 절차의 3단계에서 만든
ec2-user비밀번호를 입력하고 Continue를 선택합니다. - 메시지가 표시되면 특수 관리 사용자(
aws-managed-user)의 비밀번호를 입력합니다. - 로컬 컴퓨터의 터미널에서 사용자 이름
ec2-user로 SSH를 사용해 인스턴스에 다시 연결합니다.
트러블슈팅 팁:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!경고가 나오면 다음 명령을 실행하고 SSH로 인스턴스에 다시 연결하세요.
rm ~/.ssh/known_hosts
- 소프트웨어 업데이트를 수행하려면 아래의 Update software on x86 Mac instances 항목의 명령을 사용합니다.
x86 Mac 인스턴스에서 소프트웨어 업데이트
x86 Mac 인스턴스에서는 softwareupdate 명령으로 Apple의 운영 체제 업데이트를 설치할 수 있어요.
x86 Mac 인스턴스에서 Apple의 운영 체제 업데이트를 설치하려면
- 다음 명령으로 업데이트가 가능한 패키지를 나열합니다.
[ec2-user ~]$ softwareupdate --list
- 모든 업데이트 또는 특정 업데이트를 설치합니다. 특정 업데이트를 설치하려면 다음 명령을 사용하세요.
[ec2-user ~]$ sudo softwareupdate --install label
대신 모든 업데이트를 설치하려면 다음 명령을 사용합니다.
[ec2-user ~]$ sudo softwareupdate --install --all --restart
시스템 관리자는 AWS Systems Manager를 사용해 x86 Mac 인스턴스에 사전 승인된 운영 체제 업데이트를 배포할 수 있어요. 자세한 내용은 AWS Systems Manager 사용 설명서를 참고하세요.
Homebrew를 사용해 EC2 macOS AMI의 패키지 업데이트를 설치해서 인스턴스에 최신 버전의 패키지를 유지할 수 있고, Amazon EC2 macOS에서 일반적인 macOS 애플리케이션을 설치·실행할 수도 있어요. 자세한 내용은 Homebrew Documentation을 참고하세요.
Homebrew로 업데이트를 설치하려면
- 다음 명령으로 Homebrew를 업데이트합니다.
[ec2-user ~]$ brew update
- 다음 명령으로 업데이트가 가능한 패키지를 나열합니다.
[ec2-user ~]$ brew outdated
- 모든 업데이트 또는 특정 업데이트를 설치합니다. 특정 업데이트를 설치하려면 다음 명령을 사용하세요.
[ec2-user ~]$ brew upgrade package name
대신 모든 업데이트를 설치하려면 다음 명령을 사용합니다.
[ec2-user ~]$ brew upgrade