2001년부터 macOS를 사용하고 4년 전 출시 이후 Amazon EC2 Mac 인스턴스 [https://aws.amazon.com/ec2/instance-types/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 [https://www.apple.com/mac-mini/specs/] 컴퓨터 및 AWS Nitro System [https://aws.amazon.com/ec2/nitro/]을 기반으로 구축됩니다. 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) [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html]로 지원합니다. AWS Nitro System은 고속 Thunderbolt 연결을 통해 최대 10Gbps의 Amazon Virtual Private Cloud(Amazon VPC) [https://aws.amazon.com/vpc/] 네트워크 대역폭과 8Gbps의 Amazon Elastic Block Store(Amazon EBS) [https://aws.amazon.com/ebs/] 스토리지 대역폭을 제공합니다.
Amazon EC2 Mac 인스턴스는 AWS 서비스와 원활하게 통합되므로 다음 작업을 수행할 수 있습니다.
* AWS CodeBuild [https://aws.amazon.com/codebuild/] 및 AWS CodePipeline [https://aws.amazon.com/codepipeline/]을 사용하여 자동화된 CI/CD 파이프라인을 구축
* AWS Secrets Manager [https://aws.amazon.com/secrets-manager/]에 Apple 개발 인증서 및 키와 같은 빌드 시크릿의 여러 버전을 저장 및 관리
* AWS CloudFormation [https://aws.amazon.com/cloudformation/]을 사용하여 개발 인프라를 관리
* Amazon CloudWatch [https://aws.amazon.com/cloudwatch/]를 사용하여 인스턴스 성능을 모니터링
시작하는 방법
EC2 M4 또는 M4 Pro Mac 인스턴스는 AWS Management Console [https://console.aws.amazon.com], AWS Command Line Interface(AWS CLI) [https://aws.amazon.com/cli/] 또는 AWS SDK [https://aws.amazon.com/tools/]를 통해 시작할 수 있습니다.
이 데모에서는 M4 Pro 인스턴스를 콘솔에서 시작해 보겠습니다. 먼저 인스턴스를 실행할 전용 호스트를 할당합니다. AWS Management Console [https://console.aws.amazon.com]에서 EC2, Dedicated Hosts로 다음 Allocate Dedicated Host를 선택합니다.
그런 다음 Name tag에 태그를 입력하고 Instance family(mac-m4pro) 및 Instance type(mac-m4pro.metal)을 선택합니다. Availability Zone 하나를 선택하고 Host maintenance를 선택 취소합니다.
EC2 Mac M$ - 전용 호스트 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/08/21/2025-08-21_09-36-29-1024x766.png] [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/08/21/2025-08-21_09-36-29.png]
또는 명령줄 인터페이스를 사용할 수 있습니다.
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입니다.
EC2 Mac M4 - 전용 호스트 시작 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/08/21/2025-08-21_09-45-08.png] [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/08/21/2025-08-21_09-45-08.png]
인스턴스 시작 페이지의 Name에 이름을 입력합니다. macOS Sequoia Amazon Machine Image(AMI)를 선택합니다. Architecture가 64비트 Arm이고 Instance type이 mac-m4pro.metal인지 확인합니다.
나머지 파라미터는 Amazon EC2 Mac에만 국한되지 않습니다(네트워크 및 스토리지 구성). 개발 용도로 인스턴스를 시작할 때는 최소 200Gb 이상의 볼륨을 선택해야 합니다. 기본 100Gb 볼륨 크기로는 Xcode를 다운로드하고 설치할 수 없습니다.
EC2 Mac M4 - 전용 호스트 시작 세부 정보 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/08/21/2025-08-21_09-55-02-743x1024.png] [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/08/21/2025-08-21_09-55-02.png]준비가 완료되면 페이지 하단에 있는 주황색 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 [https://github.com/sebsto/xcodeinstall]을 사용하여 Xcode 16.4 [https://developer.apple.com/documentation/Xcode-Release-Notes/xcode-16_4-release-notes]를 다운로드하고 설치합니다.
노트북에서 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 ~ %
EC2 Mac M4 - Xcode 설치 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/08/23/2025-08-23_15-54-56-1024x865.png] [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/08/23/2025-08-23_15-54-56.png]
알아야 할 사항
개발 용도에는 최소 200Gb의 EBS 볼륨을 선택하세요. 기본 볼륨 크기 100Gb는 Xcode를 설치하기에 충분하지 않습니다. 저는 보통 500Gb를 선택합니다. 인스턴스 시작 후 EBS 볼륨 크기를 늘리는 경우에는 APFS 파일 시스템의 크기도 조정 [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-instance-increase-volume.html]해야 합니다.
또는 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 인스턴스 시작 [https://builder.aws.com/content/2duUEgh4u4TIDqfECiDkEbrn2Iw/start-an-amazon-ec2-mac-instance]
* Amazon EC2 Mac 인스턴스에 연결 [https://builder.aws.com/content/2duUtYq4ENzOLGLdEg0A3aeyCuj/connect-to-an-amazon-ec2-mac-instance](3가지 연결 방법을 소개)
* Amazon EC2 Mac에서 CI/CD 파이프라인을 사용하여 애플리케이션을 더 빠르게 빌드 [https://builder.aws.com/content/2duRxOl9WuYETq6dMhAQQ1kDZLr/build-your-ios-applications-faster-with-a-cicd-pipeline]
요금 및 가용성
EC2 M4 및 M4 Pro Mac 인스턴스는 현재 미국 동부(버지니아 북부) 및 미국 서부(오리건)에서 사용할 수 있으며 향후 다른 리전이 추가될 예정입니다.
Amazon EC2 Mac 인스턴스는 온디맨드 및 절감형 플랜 [https://aws.amazon.com/savingsplans/] 요금 모델을 통해 전용 호스트로 구매할 수 있습니다. EC2 Mac 인스턴스 요금은 초 단위로 청구되며 Apple macOS 소프트웨어 라이선스 계약을 준수하기 위한 최소 할당 기간은 24시간입니다. 24시간의 최소 할당 기간이 끝나면 추가 약정 없이 언제든지 호스트를 해제할 수 있습니다.
Apple 개발자들과 긴밀하게 협력하고 있는 사람으로서, 여러분은 어떻게 이 새로운 인스턴스를 활용하여 개발 주기를 가속화할지 궁금합니다. 성능 향상, 메모리 용량 향상, AWS 서비스 통합이 결합되어 iOS, macOS, iPadOS, tvOS, watchOS 및 visionOS 플랫폼용 애플리케이션을 빌드하는 팀에 새로운 가능성이 열립니다. Apple 실리콘의 Neural Engine은 애플리케이션 개발을 넘어 이러한 인스턴스를 기계 학습 (ML) [https://aws.amazon.com/ai/machine-learning/] 추론 워크로드를 실행하기 위한 비용 효율적인 후보로 만듭니다. 이 주제에 대해서는 AWS re:Invent 2025에서 자세히 논의할 예정이며, 그때 EC2 Mac 인스턴스에서 ML 워크로드를 최적화하기 위한 벤치마크 및 모범 사례를 공유하겠습니다.
EC2 M4 및 M4 Pro Mac 인스턴스에 대해 자세히 알아보려면 Amazon EC2 Mac 인스턴스 [https://aws.amazon.com/ec2/instance-types/mac/] 페이지를 방문하거나 EC2 Mac 설명서 [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html]를 참조하세요. 지금 바로 이러한 인스턴스를 사용하여 AWS에서 Apple 개발 워크플로를 현대화할 수 있습니다.
— seb [https://linktr.ee/sebsto]