Skip to main content

AWS CloudFormation テンプレート

AWSクラウドフォーメーション ワンクリックで AWS 上の Bitrise クラウド コントローラーのプロビジョニングと管理を簡素化します。 CloudFormation テンプレートが顧客 VPC にデプロイされると、Bitrise クラウド コントローラーと付随するインフラストラクチャが作成されます。

cloudformation.png

Bitrise は、さまざまなユースケースに対応する 2 つの CloudFormation テンプレートを維持しています。

  • Cloud Controller を既存の VPC にデプロイします。 ユーザーが AWS のプレゼンスを確立しており、すでにネットワークが構築されている場合は、このテンプレートを選択します。

  • Cloud Controller を新しい VPC にデプロイする: ユーザーが AWS を初めて使用する場合、またはネットワークが構築されていない場合は、このテンプレートを選択します。 2 つのテンプレートの唯一の違いは、このテンプレートでは最初に (顧客の設定に基づいて) 新しい VPC を作成し、次にそこにコントローラーをデプロイすることです。

CloudControllerを既存のVPCにデプロイする

テンプレートパラメータ:

  • スタック名 (必須): AWS アカウント内の Bitrise クラウド コントローラーの親スタックを識別します。

  • BitriseControllerトークン (必須): Bitrise Web サイトでコントローラーを作成するときにユーザーが受け取るコントローラー トークン。

  • BitriseワークスペースID (必須): 顧客の Bitrise アカウントに属するワークスペース ID。

  • コントローラロググループクラス (必須): コントローラーはエラー ログを顧客の AWS アカウント内の CloudWatch ログ グループに保存します。どちらを選択するかは顧客が制御します ロググループクラス 彼らの予算に最も適しています。デフォルト値はほとんどの場合に適しています。デフォルト: INFREQUENT_ACCESS

  • コントローラログ保持日数 (必須): Cloud Watch がコントローラーのエラー ログを保持する日数。デフォルト: 7 (日)。

  • コントローラSshKey (必須): Cloud Controller インスタンスに SSH アクセスを提供します。

  • サブネットID (必須): 同じリージョン内で異なる AZ にある少なくとも 2 つのサブネット。プライベート サブネットの使用をお勧めしますが、パブリック サブネットも同様に機能します。

  • VpcId (必須): コントローラーがデプロイされる VPC。

  • VpcCidrブロック (必須): 選択した VPC の CIDR ブロック。

テンプレートによってプロビジョニングされるインフラストラクチャ

  • 内部アプリケーションロードバランサー: サーバーにはトラフィックがなく、Cloud Controller インスタンスで定期的なヘルスチェックのみを実行します。

  • 自動スケーリンググループ: 健全なクラウド コントローラー インスタンスが一度に実行されていることを確認します。インスタンス: クラウド コントローラーが実行される t2.small インスタンス。

  • 起動テンプレート: クラウド コントローラー インスタンスの構成。コントローラーの自己更新機能にも必要です。

  • IAM ロール、インスタンス プロファイル、およびポリシー: コントローラーがビルド ノードの状態をクエリするには、特定の権限が必要です。

  • シークレットマネージャー: テンプレートは、WorkspaceID とコントローラー トークンを保存するための 2 つのシークレットをそれぞれ作成します。

  • Cloud Watch ログ グループ: テンプレートは、コントローラー エラー ログを保存するための Cloud Watch ログ グループを作成します。

  • セキュリティグループ: テンプレートは 2 つのセキュリティ グループを作成します。1 つはロードバランサー用、もう 1 つはインスタンス用です。

クラウド コントローラーを新しい VPC にデプロイする

テンプレートパラメータ:

  • スタック名 (必須): AWS アカウント内の Bitrise クラウド コントローラーの親スタックを識別します。

  • BitriseControllerトークン (必須): Bitrise Web サイトでコントローラーを作成するときにユーザーが受け取るコントローラー トークン。

  • BitriseワークスペースID (必須): 顧客の Bitrise アカウントに属するワークスペース ID。

  • コントローラロググループクラス (必須): コントローラーはエラー ログを顧客の AWS アカウント内の CloudWatch ログ グループに保存します。どちらを選択するかは顧客が制御します ロググループクラス 彼らの予算に最も適しています。デフォルト値はほとんどの場合に適しています。デフォルト: INFREQUENT_ACCESS

  • コントローラログ保持日数 (必須): Cloud Watch がコントローラーのエラー ログを保持する日数。デフォルト: 7 (日)。

  • コントローラSshKey (必須): Cloud Controller インスタンスに SSH アクセスを提供します。

  • 環境名 (オプション): Bitrise 関連のインフラストラクチャの各部分に環境名を含むプレフィックスを追加します。顧客が膨大な数のリソースを所有している場合、Bitrise 関連のリソースをその他のリソースから区別できると便利になる可能性があります。

  • PrivateSubnet1CIDR (必須): 新しい VPC の最初のプライベート サブネットの CIDR 範囲。デフォルト: 10.192.32.0/20。

  • PrivateSubnet2CIDR (必須): 新しい VPC の 2 番目のプライベート サブネットの CIDR 範囲。デフォルト: 10.192.64.0/20。

  • パブリックサブネット1CIDR (必須): 新しい VPC の最初のパブリック サブネットの CIDR 範囲。デフォルト: 10.192.0.0/20。

  • PublicSubnet2CIDR (必須): 新しい VPC の 2 番目のパブリック サブネットの CIDR 範囲。デフォルト: 10.192.16.0/20

  • VpcCidrブロック (必須): 選択した VPC の CIDR ブロック。

テンプレートによってプロビジョニングされるインフラストラクチャ

  • 内部アプリケーション ロードバランサ: サーバーにはトラフィックがなく、Cloud Controller インスタンスに対して定期的なヘルス チェックのみを実行します。

  • 自動スケーリンググループ: 健全なクラウド コントローラー インスタンスが一度に実行されていることを確認します。インスタンス: クラウド コントローラーが実行される t2.small インスタンス。

  • 実例:a t2.small クラウド コントローラーが実行されるインスタンス。

  • 起動テンプレート: クラウド コントローラー インスタンスの構成。コントローラーの自己更新機能にも必要です。

  • IAM ロール、インスタンス プロファイル、およびポリシー: コントローラーがビルド ノードの状態をクエリするには、特定の権限が必要です。

  • シークレットマネージャー: テンプレートは、WorkspaceID とコントローラー トークンを保存するための 2 つのシークレットをそれぞれ作成します。

  • Cloud Watch ログ グループ: テンプレートは、コントローラー エラー ログを保存するための Cloud Watch ログ グループを作成します。

  • セキュリティグループ: テンプレートは、LoadBalancer 用とインスタンス用の 2 つのセキュリティ グループを作成します。

  • VPC: ベスト プラクティスに基づいた標準の汎用 VPC。デフォルトの CIDR ブロックを選択すると、4096 個の使用可能な IP アドレスを持つサブネットが作成されます。テンプレートが作成する VPC 関連リソースのリスト:

    • 1 つの VPC。

    • 2 つのパブリック サブネット。

    • 2 つのプライベート サブネット。

    • 1 つの NAT ゲートウェイ + 1 つの Elastic IP。

    • 1 つのインターネット ゲートウェイ + 1 つの Elastic IP。

    • ルーティングテーブル。

  • Bitrise エージェントのログ: この機能により、Bitrise Agent のビルド ログを AWS CloudWatch にシームレスに送信できます。 CloudFormation を活用して、必要な IAM ロールとポリシーを自動的にセットアップし、Bitrise Agent に適切な権限が付与されていることを確認します。さらに、CloudWatch に次の名前の特定のログ グループを作成します。 bitrise-agent-log、AWS 環境内での組織的なログ管理とリアルタイム分析が容易になります。

必要な AWS 権限と接続

コントローラーがビルド ノードでアクションを実行するには、特定の AWS 権限が必要です。必要な権限を最小限の範囲に制限するために最善を尽くしました。私たちも作りました CloudFormation テンプレート リポジトリ 信頼を築くために公開します。をご覧ください。 (最新の) 必要な権限の全リスト リポジトリ内。

コントローラーには、特定の Bitrise エンドポイントへの接続が必要です。続きを見る コントローラーのドキュメントにある