Amazon Web Services 한국 블로그
Amazon EC2 M4 및 M4 Pro Mac 인스턴스 발표
2001년부터 macOS를 사용하고 4년 전 출시 이후 Amazon EC2 Mac 인스턴스를 사용해 온 사람으로서 저는 수많은 고객이 AWS에서 지속적 통합 및 지속적 전송(CI/CD) 파이프라인을 확장하도록 도왔습니다. 오늘 Amazon EC2 M4 및 M4 Pro Mac 인스턴스가 이제 정식 버전으로 제공된다는 소식을 전해드리게 되어 기쁩니다.
Apple 플랫폼용 애플리케이션을 빌드하는 개발 팀에게는 복잡한 빌드 프로세스를 처리하고 여러 iOS 시뮬레이터를 동시에 실행할 수 있는 강력한 컴퓨팅 리소스가 필요합니다. 개발 프로젝트의 규모가 더욱 커지고 정교해짐에 따라 팀은 빠른 개발 주기를 유지하기 위해 향상된 성능 및 메모리 용량이 필요합니다.
Apple M4 Mac mini를 사용
EC2 M4 Mac 인스턴스(API에서는 mac-m4.metal
이라고 함)는 Apple M4 Mac mini 컴퓨터 및 AWS Nitro System을 기반으로 구축됩니다. 10코어 CPU(4개의 성능 코어, 6개의 효율 코어), 10코어 GPU, 16코어 Neural Engine, 24GB 통합 메모리를 갖춘 Apple 실리콘 M4 칩이 탑재되어 iOS 및 macOS 애플리케이션 빌드 워크로드에 향상된 성능을 제공합니다. 애플리케이션을 빌드 및 테스트할 때 M4 Mac 인스턴스는 EC2 M2 Mac 인스턴스에 비해 최대 20% 더 뛰어난 애플리케이션 빌드 성능을 제공합니다.
EC2 M4 Pro Mac(API의 mac-m4pro.metal
) 인스턴스는 14코어 CPU, 20코어 GPU, 16코어 Neural Engine, 48GB 통합 메모리를 갖춘 Apple 실리콘 M4 Pro 칩으로 구동됩니다. 이 인스턴스는 EC2 M2 Pro Mac 인스턴스에 비해 최대 15% 더 뛰어난 애플리케이션 빌드 성능을 제공합니다. 메모리 및 컴퓨팅 성능이 향상됨에 따라 여러 디바이스 시뮬레이터를 사용하여 더 많은 테스트를 병렬로 실행할 수 있습니다.
각 M4 및 M4 Pro Mac 인스턴스는 이제 2TB의 로컬 스토리지가 포함되어 향상된 캐싱 및 빌드/테스트 성능을 위한 저지연 스토리지를 제공합니다.
두 인스턴스 유형 모두 macOS Sonoma 버전 15.6 이상을 Amazon Machine Image(AMI)로 지원합니다. AWS Nitro System은 고속 Thunderbolt 연결을 통해 최대 10Gbps의 Amazon Virtual Private Cloud(Amazon VPC) 네트워크 대역폭과 8Gbps의 Amazon Elastic Block Store(Amazon EBS) 스토리지 대역폭을 제공합니다.
Amazon EC2 Mac 인스턴스는 AWS 서비스와 원활하게 통합되므로 다음 작업을 수행할 수 있습니다.
- AWS CodeBuild 및 AWS CodePipeline을 사용하여 자동화된 CI/CD 파이프라인을 구축
- AWS Secrets Manager에 Apple 개발 인증서 및 키와 같은 빌드 시크릿의 여러 버전을 저장 및 관리
- AWS CloudFormation을 사용하여 개발 인프라를 관리
- Amazon CloudWatch를 사용하여 인스턴스 성능을 모니터링
시작하는 방법
EC2 M4 또는 M4 Pro Mac 인스턴스는 AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 통해 시작할 수 있습니다.
이 데모에서는 M4 Pro 인스턴스를 콘솔에서 시작해 보겠습니다. 먼저 인스턴스를 실행할 전용 호스트를 할당합니다. AWS Management Console에서 EC2, Dedicated Hosts로 다음 Allocate Dedicated Host를 선택합니다.
그런 다음 Name tag에 태그를 입력하고 Instance family(mac-m4pro
) 및 Instance type(mac-m4pro.metal
)을 선택합니다. Availability Zone 하나를 선택하고 Host maintenance를 선택 취소합니다.
또는 명령줄 인터페이스를 사용할 수 있습니다.
aws ec2 allocate-hosts \
--availability-zone-id "usw2-az4" \
--auto-placement "off" \
--host-recovery "off" \
--host-maintenance "off" \
--quantity 1 \
--instance-type "mac-m4pro.metal"
전용 호스트가 내 계정에 할당되면 방금 할당한 호스트를 선택한 다음 Actions 메뉴, Launch instance(s) onto host를 차례로 선택합니다.
콘솔은 이 유형의 호스트에 대해 Latest supported macOS versions 등의 정보를 제공합니다. 이 경우에는 macOS 15.6입니다.
인스턴스 시작 페이지의 Name에 이름을 입력합니다. macOS Sequoia Amazon Machine Image(AMI)를 선택합니다. Architecture가 64비트 Arm이고 Instance type이 mac-m4pro.metal
인지 확인합니다.
나머지 파라미터는 Amazon EC2 Mac에만 국한되지 않습니다(네트워크 및 스토리지 구성). 개발 용도로 인스턴스를 시작할 때는 최소 200Gb 이상의 볼륨을 선택해야 합니다. 기본 100Gb 볼륨 크기로는 Xcode를 다운로드하고 설치할 수 없습니다.
준비가 완료되면 페이지 하단에 있는 주황색 Launch instance 버튼을 선택합니다. 인스턴스는 콘솔에서 바로 Running 상태로 표시됩니다. 그러나 SSH를 통해 연결하려면 최대 15분이 걸릴 수 있습니다.
또는 다음 명령을 사용할 수 있습니다.
aws ec2 run-instances \
--image-id "ami-000420887c24e4ac8" \ # AMI ID depends on the region !
--instance-type "mac-m4pro.metal" \
--key-name "my-ssh-key-name" \
--network-interfaces '{"AssociatePublicIpAddress":true,"DeviceIndex":0,"Groups":["sg-0c2f1a3e01b84f3a3"]}' \ # Security Group ID depends on your config
--tag-specifications '{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"My Dev Server"}]}' \
--placement '{"HostId":"h-0e984064522b4b60b","Tenancy":"host"}' \ # Host ID depends on your config
--private-dns-name-options '{"HostnameType":"ip-name","EnableResourceNameDnsARecord":true,"EnableResourceNameDnsAAAARecord":false}' \
--count "1"
터미널에서 Xcode 설치
인스턴스가 연결 가능해지면 SSH를 사용하여 인스턴스에 연결하고 개발 도구를 설치할 수 있습니다. xcodeinstall을 사용하여 Xcode 16.4를 다운로드하고 설치합니다.
노트북에서 Apple 개발자 자격 증명을 사용하여 세션을 엽니다.
# on my laptop, with permissions to access AWS Secret Manager
» xcodeinstall authenticate -s eu-central-1
Retrieving Apple Developer Portal credentials...
Authenticating...
🔐 Two factors authentication is enabled, enter your 2FA code: 067785
✅ Authenticated with MFA.
방금 시작한 EC2 Mac 인스턴스에 연결합니다. 그런 다음 Xcode를 다운로드하여 설치합니다.
» ssh ec2-user@44.234.115.119
Warning: Permanently added '44.234.115.119' (ED25519) to the list of known hosts.
Last login: Sat Aug 23 13:49:55 2025 from 81.49.207.77
┌───┬──┐ __| __|_ )
│ ╷╭╯╷ │ _| ( /
│ └╮ │ ___|\___|___|
│ ╰─┼╯ │ Amazon EC2
└───┴──┘ macOS Sequoia 15.6
ec2-user@ip-172-31-54-74 ~ % brew tap sebsto/macos
==> Tapping sebsto/macos
Cloning into '/opt/homebrew/Library/Taps/sebsto/homebrew-macos'...
remote: Enumerating objects: 227, done.
remote: Counting objects: 100% (71/71), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 227 (delta 22), reused 63 (delta 14), pack-reused 156 (from 1)
Receiving objects: 100% (227/227), 37.93 KiB | 7.59 MiB/s, done.
Resolving deltas: 100% (72/72), done.
Tapped 1 formula (13 files, 61KB).
ec2-user@ip-172-31-54-74 ~ % brew install xcodeinstall
==> Fetching downloads for: xcodeinstall
==> Fetching sebsto/macos/xcodeinstall
==> Downloading https://github.com/sebsto/xcodeinstall/releases/download/v0.12.0/xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
Already downloaded: /Users/ec2-user/Library/Caches/Homebrew/downloads/9f68a7a50ccfdc479c33074716fd654b8528be0ec2430c87bc2b2fa0c36abb2d--xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
==> Installing xcodeinstall from sebsto/macos
==> Pouring xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
🍺 /opt/homebrew/Cellar/xcodeinstall/0.12.0: 8 files, 55.2MB
==> Running `brew cleanup xcodeinstall`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> No outdated dependents to upgrade!
ec2-user@ip-172-31-54-74 ~ % xcodeinstall download -s eu-central-1 -f -n "Xcode 16.4.xip"
Downloading Xcode 16.4
100% [============================================================] 2895 MB / 180.59 MBs
[ OK ]
✅ Xcode 16.4.xip downloaded
ec2-user@ip-172-31-54-74 ~ % xcodeinstall install -n "Xcode 16.4.xip"
Installing...
[1/6] Expanding Xcode xip (this might take a while)
[2/6] Moving Xcode to /Applications
[3/6] Installing additional packages... XcodeSystemResources.pkg
[4/6] Installing additional packages... CoreTypes.pkg
[5/6] Installing additional packages... MobileDevice.pkg
[6/6] Installing additional packages... MobileDeviceDevelopment.pkg
[ OK ]
✅ file:///Users/ec2-user/.xcodeinstall/download/Xcode%2016.4.xip installed
ec2-user@ip-172-31-54-74 ~ % sudo xcodebuild -license accept
ec2-user@ip-172-31-54-74 ~ %
알아야 할 사항
개발 용도에는 최소 200Gb의 EBS 볼륨을 선택하세요. 기본 볼륨 크기 100Gb는 Xcode를 설치하기에 충분하지 않습니다. 저는 보통 500Gb를 선택합니다. 인스턴스 시작 후 EBS 볼륨 크기를 늘리는 경우에는 APFS 파일 시스템의 크기도 조정해야 합니다.
또는 Mac mini에서 사용할 수 있는 지연 시간이 짧은 로컬 2Tb SSD 드라이브에 개발 도구 및 프레임워크를 설치할 수도 있습니다. 해당 볼륨의 콘텐츠는 전용 호스트가 아닌 인스턴스 수명 주기에 바인딩된다는 점에 유의해야 합니다. 즉, 인스턴스를 중지했다가 다시 시작하면 내부 SSD 스토리지에서 모든 항목이 삭제됩니다.
mac-m4.metal
및 mac-m4pro.metal
인스턴스는 macOS Sequoia 15.6 이상을 지원합니다.
마이그레이션할 인스턴스가 macOS 15(Sequoia)를 실행하는 경우 기존 EC2 Mac 인스턴스를 마이그레이션할 수 있습니다. 기존 인스턴스에서 사용자 지정 AMI를 생성하고 이 AMI에서 M4 또는 M4 Pro 인스턴스를 시작합니다.
마지막으로, Amazon EC2 Mac을 시작하는 데 도움이 되도록 제가 작성한 자습서를 확인해 보시기 바랍니다.
- Amazon EC2 Mac 인스턴스 시작
- Amazon EC2 Mac 인스턴스에 연결(3가지 연결 방법을 소개)
- Amazon EC2 Mac에서 CI/CD 파이프라인을 사용하여 애플리케이션을 더 빠르게 빌드
요금 및 가용성
EC2 M4 및 M4 Pro Mac 인스턴스는 현재 미국 동부(버지니아 북부) 및 미국 서부(오리건)에서 사용할 수 있으며 향후 다른 리전이 추가될 예정입니다.
Amazon EC2 Mac 인스턴스는 온디맨드 및 절감형 플랜 요금 모델을 통해 전용 호스트로 구매할 수 있습니다. EC2 Mac 인스턴스 요금은 초 단위로 청구되며 Apple macOS 소프트웨어 라이선스 계약을 준수하기 위한 최소 할당 기간은 24시간입니다. 24시간의 최소 할당 기간이 끝나면 추가 약정 없이 언제든지 호스트를 해제할 수 있습니다.
Apple 개발자들과 긴밀하게 협력하고 있는 사람으로서, 여러분은 어떻게 이 새로운 인스턴스를 활용하여 개발 주기를 가속화할지 궁금합니다. 성능 향상, 메모리 용량 향상, AWS 서비스 통합이 결합되어 iOS, macOS, iPadOS, tvOS, watchOS 및 visionOS 플랫폼용 애플리케이션을 빌드하는 팀에 새로운 가능성이 열립니다. Apple 실리콘의 Neural Engine은 애플리케이션 개발을 넘어 이러한 인스턴스를 기계 학습 (ML) 추론 워크로드를 실행하기 위한 비용 효율적인 후보로 만듭니다. 이 주제에 대해서는 AWS re:Invent 2025에서 자세히 논의할 예정이며, 그때 EC2 Mac 인스턴스에서 ML 워크로드를 최적화하기 위한 벤치마크 및 모범 사례를 공유하겠습니다.
EC2 M4 및 M4 Pro Mac 인스턴스에 대해 자세히 알아보려면 Amazon EC2 Mac 인스턴스 페이지를 방문하거나 EC2 Mac 설명서를 참조하세요. 지금 바로 이러한 인스턴스를 사용하여 AWS에서 Apple 개발 워크플로를 현대화할 수 있습니다.