Skip to main content

マシンプールの構成

AWS コントローラーを作成しました、マシン プールを構成できます。プールは、同じ構成を共有し、Bitrise ビルドを実行できるインスタンスのグループです。コントローラーは、必要な量の一致するリソースが AWS 上で開始されるようにします。

新しいプールの作成

新しいプールの作成は複数段階のウィザードを通じて行われ、プールに関する詳細を指定する必要があります。

  1. を開きます ワークスペースの設定 ページ。

  2. 選択する セルフホスト型インフラストラクチャ そして、に行きます AWS 上のビットライズ タブをクリックし、 プールの作成

    create-pool.png
  3. 最初の画面で、エージェント プール設定を構成します。

    • プール名 (必須): プール名は スタックとマシン ワークフロー エディターのタブで、ビルドを実行するプールを選択できます。名前は、ワークスペース内、他のプール、および Bitrise エージェント プール間で一意である必要があります。名前が一意でない場合、プールを作成できません。

    • マシンの数 (必須): 作成されたマシンの数。数値が大きいほど、利用可能な同時実行数内でより多くのビルドを並行して実行できます。

    • ローリング更新の割合 (必須): ローリング アップデートのパーセンテージは、マシンの再起動時に予想されるシステム可用性を構成します。数値が小さいほど、変更のロールアウト中に利用できるマシンが増えますが、ロールアウトに必要な全体の時間が大幅に長くなる可能性があります。指定する値は 1% ~ 100% の範囲にする必要があります。システムはパーセントベースの値を切り上げます。ローリング アップデートの割合が 95% のマシンが 5 台ある場合、5 台のマシンすべてが同時に再起動しようとします。重大な変更またはブロックする変更がリリースされる場合 (SSH キーのローテーションなど) に備えて、この数値を高くしておくことをお勧めします。また、小規模な変更 (ディスク サイズの減少など) の場合は、この数値を低くすることもできます。

  4. クリック後 、次の画面でマシンのパラメータを指定します。

    machine-parameters.png
    • Amazon マシンイメージ (AMI) ID (必須): AMI は、モバイル ビルドを実行するために必要なすべてのツールがプリインストールされた Bitrise で構築された環境です。サブスクライブした AMI の提供された ID をここで構成する必要があります。現在のバージョンでは、Bitrise が管理する AMI のみが受け入れられます。

    • スタック (VM ベースの AMI に必要): スタック セレクターは、選択した AMI が VM ベースの MacOS AMI である場合にのみ使用可能になります。この場合、ユーザーはドロップダウンからスタックを 1 つ選択する必要があります。選択したスタックに基づいて、選択したスタックを備えたホスト上で常に 2 つの VM が実行されます。

    • アベイラビリティゾーン (必須): アベイラビリティーゾーンは、リソースが予約される場所を定義します。コントローラーはリソースを開始します。 mac2.メタル インスタンス タイプは、すべての AWS アベイラビリティ ゾーンで利用できるわけではありません。有効なアベイラビリティーゾーンを選択してください リストから

    適切な地域を選択してください

    コントローラーは、コントローラーが配置されているのと同じリージョン内でのみリソースを開始できます。選択したアベイラビリティ ゾーンが同じリージョンにない場合、マシンは起動しません。

  5. 次の画面で、 ネットワークとセキュリティの設定、マシンに関する詳細を指定できます。

    network-and-security.png
    • サブネットID (必須): 前に構成したアベイラビリティーゾーンからマシンに使用するサブネット ID を指定します。作成されたすべてのマシンは同じサブネットで実行されます。マシンはサブネットから Bitrise サービスにアクセスできる必要がありますが、Bitrise は通信を開始しないため、パブリック サブネットである必要はありません。インスタンスが次のエンドポイントにアクセスできることを確認してください。

      • https://den.services.bitrise.io

      • https://build-log.services.bitrise.io

      これらのエンドポイントにアクセスしないと、インスタンスに接続した後でもビルドを実行できません。サブネットの詳細については、次を確認してください。 AWS の公式ドキュメント

    • セキュリティグループ (必須): 1 つ以上のセキュリティ グループ ID を指定できます。セキュリティ グループを使用すると、AWS リソースへのトラフィックを制御できます。

      少なくとも、 empty-default セキュリティグループが必要です。このセキュリティグループは受信側からは空で、送信側では 0.0.0.0/0 を許可します。インスタンスへのアクセスに SSH を使用する場合は、セキュリティグループで受信ポート 22 が開いている必要があります。SSH アクセス機能が不要な場合は、関連するセキュリティグループを削除することをお勧めします。セキュリティグループの詳細については、 公式AWSドキュメント

      ネットワーク設定

      選択したサブネットとセキュリティ グループが同じネットワークに属していることを確認してください。そうでない場合、マシンは起動しません。

    • インスタンスプロファイル (オプション): インスタンス プロファイルを使用して、マシンに追加の IAM ロールを構成できます。これは、AWS の他のリソースにアクセスする場合に必要です。たとえば、S3 バケットをアーティファクト ストアとして使用したい場合です。このような機能が必要ない場合は、プロファイルを空のままにしてください。

      このオプションを使用して、ストリーミングの権限を含めることができます Bitrise エージェントは CloudWatch に直接ログを記録します、ログ管理と監視のための一元的なソリューションを提供します。 AWS CloudFormation パラメータが正しく設定されている場合、インスタンス プロファイルは bitrise-agent-log-instance-profile が生成されました。 AWS では、ここで使用するプロファイルの生成された ARN を取得できます。

    • SSHキー (オプション): インスタンスのデバッグが容易になります。 SSH キーが提供され、正しいセキュリティ グループ設定が構成されている場合、作成されたインスタンスに SSH 経由でアクセスできます。デバッグが必要ない場合は、このフィールドを空のままにすることをお勧めします。

  6. クリック後 、ストレージ要件を構成します。

    • ディスクの種類 (必須): さまざまなルート ボリューム タイプから選択できます。少なくとも gp3 設定を使用することをお勧めします。詳細については、こちらをご覧ください AWSのドキュメント

    • ストレージサイズ (必須): ルート ボリュームのサイズを GB 単位で指定します。必要な最小ディスク サイズとは異なるディスク サイズで、異なるイメージが作成されます。ディスク サイズは、最小サイズより少なくとも 50 GB 大きく設定することをお勧めします。

  7. 完了したら、クリックします プールの作成

プールが作成されると、プールの詳細が画面に表示されます。

pool-details.png

ヘッダーには、プールの名前とその状態が表示されます。プールが望ましい状態にまだ到達していない場合、状態は「更新中」になります。完全に動作しているプールのステータスは「最新」です。

プール構成に関するセクションと、その後に個々のマシンについてのセクションも表示されます。各マシンには状態もあり、そのマシンで実行されているかどうか、またどのビルドが実行されているかを示します。

プールの再構成

プールの設定が正しくない場合(たとえば、異なるSSHキーと異なるサブネットを必要とするものを調査する必要がある場合)、 編集 構成されているプールのボタンをクリックし、プールを再構成します。

再構成が要求されると、コントローラーは実行中の一部のリソースと正しく構成されていないリソースを終了します。このような終了が完了すると、代わりに新しいリソースが作成されます。このアプローチは、コストを可能な限り削減することを目的としています。

を確認することをお勧めします。 ローリング更新の割合 設定が高いと可用性が低下する可能性があるため、構成時に設定を変更してください。ただし、設定が低い場合はロールアウトが遅くなる可能性もあります。

再構成が開始されると、プールのステータスは次のようになります。 更新中すべてのリソースが新しい構成に従って実行されるまで、このステータスが維持されます。このときのプールのステータスは、 最新の また。