iOS 앱을 개발하면서 코드사이닝, 버전 및 빌드 번호 변경, 테스트하여 TestFlight 및 App Store에 배포하는 일련의 과정은 번거로운 작업일 수 있습니다. Fastlane과 GitLab CI/CD 파이프라인을 사용하면 이러한 작업을 자동화할 수 있습니다. 개발자는 새로운 기능을 개발하거나 기존 기능을 개선한 후, 코드를 커밋하고 GitLab에 Push만 하면 됩니다. GitLab CI/CD 파이프라인이 개발자를 대신해 자동으로 빌드, 테스트하고 TestFlight 및 App Store에 앱을 배포합니다.
이번 글에서는 AWS EC2 Mac 인스턴스를 시작하고 Apple Remote Desktop(ARD)을 사용하여 인스턴스에 연결한 후, GitLab macOS Runner를 설치 및 구성하는 내용을 다루겠습니다. “GitLab과 Fastlane으로 iOS 앱 빌드 및 배포 자동화하기” 시리즈의 첫 번째 포스트입니다.
GitLab에서 iOS 앱을 빌드하고 배포하기 위해서는 macOS Runner가 필요합니다. 소규모 기업이나 팀에서는 Mac mini나 MacBook에 Runner를 설치하고 사무실 한편에 두고 사용할 수 있겠으나 보안, 안정성 및 확장성 향상을 고려한다면 AWS EC2 Mac 인스턴스를 사용하는 것도 방법입니다. 다만 AWS EC2 Mac 인스턴스 사용에 대한 비용은 고려해야 할 사항입니다.
AWS EC2 Mac 인스턴스 시작
Mac1 인스턴스는 기본적으로 macOS 운영 체제를 지원합니다. Mac 미니 하드웨어에 구축되며 3.2GHz 인텔 8세대(Coffee Lake) Core i7 프로세서로 구동됩니다. 이러한 인스턴스는 iPhone, iPad, iPod, Mac, Apple Watch 및 Apple TV와 같은 Apple 디바이스용 애플리케이션의 개발, 구축, 테스트 및 서명에 적합합니다. SSH 또는 Apple Remote Desktop(ARD)을 사용하여 Mac 인스턴스에 연결할 수 있습니다.
EC2 Mac 인스턴스 상세 정보
현재는 x86 기반 EC2 Mac 인스턴스만 사용 가능하고, M1 Mac 인스턴스는 preview 상태입니다.
Instance Family | Instance Size | Processor | Physical cores | vCPUs | Memory (GiB) | Instance Storage | Network Bandwidth (Gbps) | EBS Bandwidth (Mbps) |
---|---|---|---|---|---|---|---|---|
Mac1 | mac1.metal | Intel Core i7 | 6 | 12 | 32 | EBS-Only | 10 | 8,000 |
Mac2 | mac2.metal | Apple M1 | 4 performance +4 efficiency cores | 12 | 16 | EBS-Only | 10 | 8,000 |
가격
Amazon EC2 Mac 인스턴스는 온디맨드 및 Savings Plan 요금 모델을 통해 전용 호스트로 구입할 수 있습니다. EC2 Mac 인스턴스에 대한 청구는 Apple macOS 소프트웨어 라이선스 계약을 준수하기 위해 24시간의 최소 할당 기간으로 초당 청구됩니다. 온디맨드를 통해 EC2 Mac 호스트를 시작하고 몇 분 안에 가동 및 실행할 수 있습니다. 24시간의 최소 할당 기간이 끝나면 호스트는 추가 약정 없이 언제든지 해제될 수 있습니다.