AWS 上の Bitrise: クラウド コントローラー
Cloud Controller を使用すると、AWS 環境で Bitrise が管理するインフラストラクチャのメリットを享受できます。Cloud Controller を使用すると、AWS に関する深い知識がなくてもビルド インフラストラクチャを管理できます。
クラウドコントローラーを使用すると、Bitriseが管理するインフラストラクチャのメリットをAWS環境で享受できます。クラウドコントローラーを使用すると、AWS に関する深い知識がなくてもビルドインフラストラクチャを管理できます
AWS オファリングのタイプ
AWS AMI には、2 つの基本的なタイプの Bitrise があります。
-
ベアメタル: ビルドは AWS マシン上で直接実行されます。これは、自分のコンピュータ上にある場合と同じように、ビルド環境が永続的であることを意味します。環境をクリーンアップしない限り、ビルドのアーティファクトまたはキャッシュ アイテムが後続のビルドに影響を与える可能性があります。
-
仮想化/VMベース: Bitrise と同様に、すべてのビルドは独自の仮想マシンで実行され、ビルドが完了すると破棄されます。これは、Apple の仮想化フレームワーク上に構築された Bitrise 管理のマシン上で何百万ものビルドを実行してきた Bitrise の仮想化ソリューションを利用しています。仮想化ソリューションを含む当社の macOS 製品は、Apple シリコン マシンでのみ利用できます。
AMI の更新
Bitrise AMI は、プリインストールされたツールの最新バージョンで常に更新されます。ただし、AWS AMI のレビュー プロセスのため、Xcode および Android Studio の最新バージョンを AMI の形式で提供すると、Bitrise が管理するマシンよりも時間がかかります。現在利用可能なバージョンは、 AWSスタックレポート。
Mac 専用ホストの AWS 料金
macOS インスタンスの場合は、専用ホストを割り当てる必要があります。オンデマンド EC2 Mac D dedicated Host の最小ホスト割り当てと請求期間は 24 時間です。詳細については、AWS の公式ドキュメントを参照してください。 Amazon EC2 専用ホストの料金。
ベアメタル macOS
ベアメタル macOS AMI は、次のインスタンス タイプの Apple Silicon マシンでのみ使用できます。
-
mac-m4.metal -
mac-m4pro.metal -
mac2.metal -
mac2-m2.metal -
mac2-m2pro.metal
Android エミュレーターは、上記のすべてのインスタンス タイプでサポートされています。
仮想化された macOS
仮想化された macOS AMI は、次のインスタンス タイプの Apple Silicon マシンでのみ使用できます。
-
mac-m4.metal -
mac-m4pro.metal -
mac2.metal -
mac2-m2.metal -
mac2-m2pro.metal
仮想化は一時的なビルド環境を提供します。仮想マシンはビルドが完了するたびに破棄されます。これは、すべてのビルドが完全にクリーンな環境で実行され、以前のビルドは影響を受けないことを意味します。
ビルドごとに 1 つまたは 2 つの VM を実行するオプションがあります。ビルドのリソース集中度に応じて、2 つの VM を実行すると、ハードウェア コストが大幅に節約される可能性があります。
Androidエミュレーションなし
Apple シリコン アーキテクチャはネストされた仮想化をサポートしていないため、Android エミュレーションは利用できません。
ベアメタル Linux
ベアメタル Linux AMI は、次の AWS インスタンス タイプで利用できます。
-
t2.2xlarge -
t2.xlarge -
c5n.metal -
c5.xlarge -
c5.metal -
c5.4xlarge -
c5.2xlarge
インスタンスの種類が異なれば、コンピューティングのニーズも異なります。さまざまなインスタンス タイプの機能と機能の詳細については、次を確認してください。 AWS の公式ドキュメント。
Androidエミュレータを実行できるのは、 metal インスタンスタイプのみ。他のインスタンス タイプはエミュレータの使用をサポートしていません。
AWS オプションを選択する場合
あなたが管理するインフラ上でBitriseビルドを実行する必要がある場合、Amazon EC2 MacまたはLinuxインスタンスを使用するか、オンプレミスオプションを使用するかの2つの選択肢を用意しています。
あなたまたはあなたの会社が重要なインフラストラクチャを運用するためのAWSアカウントをすでに持っている場合は、Amazon EC2インスタンスを使用してBitriseビルドを実行することをお勧めします。Amazon EC2 インスタンスを使用することにはいくつかの利点があります
-
プラグアンドプレイ: 必要なツールがすべてプリインストールされた、Amazon Machine Image (AMI) をモバイル固有のビルド環境として提供します。特別な設定は必要ありません。EC2 インスタンスを設定するだけで済みます。
-
環境の制御: インスタンスの起動時にネットワークとストレージの設定を構成でき (たとえば、Bitrise ビルド用に別のサブネットを構成できます)、すべてのビルド マシンが独自の AWS 環境で実行され、企業のセキュリティに従って動作するようにすることができます。ポリシー。
-
セキュリティ: コードベースは完全に制御下に残ります。
AWS 環境から流出する情報
特定の機能を使用することは、AWS 環境を離れることを意味します。たとえば、ビルド キャッシュの使用、ビルド アーティファクトやテスト結果の生成などです。
AWS アカウントをお持ちでない場合、他のクラウドプロバイダーを使用している場合、またはすでに独自のマシンを管理している場合は、こちらを確認することをお勧めします。 当社のオンプレミス ランナー製品。
クラウドコントローラーの概要
Cloud Controller を使用すると、AWS 環境で Bitrise が管理するインフラストラクチャのメリットを享受できます。Cloud Controller を使用すると、AWS に関する深い知識がなくてもビルド インフラストラクチャを管理できます。
クラウドコントローラーにより、Bitrise on AWSユーザーはAmazon EC2インフラストラクチャを大規模に運用できます。
-
この自動化は、ベアメタルと VM ベースの両方の macOS サービスをサポートし、macOS 専用ホストの予約、選択した AMI を使用したインスタンスの起動、Bitrise プールへの接続を完全に自動化します。
-
Controller の自動化により、モバイル DevOps チームの時間が節約され、特定のインスタンス数を超えて拡張できない、エラーが発生しやすい手動プロセスが排除されます。
-
エージェントプール定義のインスタンス数を変更すると、Amazon EC2 のコスト削減が可能になります。週末に大規模な macOS マシンプールをスケールダウンする場合でも、設定内の 1 つの数値を変更するだけで簡単に行えます
-
Bitrise によって AMI の形式で提供される新しいビルド環境にマシンをアップデートすることはシームレスで、モバイル開発者の邪魔になりません。構成により、いつでもアップデートの影響を受けるマシンの割合を定義できます。
-
各 Bitrise プール内のインスタンスを監視し、その状態や現在実行中のビルドを確認できます。
インバウンドトラフィックは不要
最も厳格な企業ポリシー要件にも適合できるよう、最高のセキュリティ基準を念頭に置いて Bitrise on AWS サービスを作成しました。いずれの場合も、コントローラーとビルド マシンは Bitrise コントロール プレーンへのネットワーク呼び出しを開始するため、外部からの受信トラフィックは必要ありません。

手動設定
AWSでBitriseビルドを実行するには、クラウドコントローラーを使用することをお勧めします。ただし、完全な制御とカスタマイズオプションが必要な場合は、 手動設定。
コントローラーのエアギャップモード
Bitriseのコア機能をAWS環境で提供するには、コントローラーとビルドマシンの両方が以下の3つのアドレスでBitriseコントロールプレーンにアクセスする必要があります。
-
https://cloud-controller-aws-internal.services.bitrise.io -
https://exec.bitrise.io -
https://build-log.services.bitrise.io
追加のQOL機能(ビルドマシンの自動更新や外部IP収集など)には、異なるアドレスの追加リソースとの通信が必要です。AWSで最大限のセキュリティを実現するには、次のオプションを有効にしてこれらの追加機能を無効にすることができます。 エアギャップネットワークモード コントローラーの作成中。
この設定は AWS 構成には影響しません。使用するネットワークが安全に構成されていることを確認する必要があります。