Skip to main content

AWS CloudFormation テンプレート

概要

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

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

cloudformation.png

Bitrise はさまざまなユースケース向けの CloudFormation テンプレートを維持しています。

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

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

  • 既存の VPC にエアギャップ クラウド コントローラーをデプロイする: ユーザーが既にネットワークを構築したAWSプレゼンスを確立しており、コントローラーを厳密に エアギャップ環境これは完全に自動化されているわけではない。 手動設定が必要

  • エアギャップクラウドコントローラを新しいVPCにデプロイする: ユーザーがAWSを初めて使用するか、ネットワークがまだ構築されておらず、コントローラーを厳密に エアギャップ環境このテンプレートは、まず正しいエアギャップ構成で新しい VPC を作成し、次にその VPC にコントローラをデプロイします。

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

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

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

  • 最新のAMI ID: この AMI ID は、クラウド コントローラーを実行するためのベース AMI として使用されます。

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

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

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

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

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

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

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

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

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

  • 内部アプリケーション ロードバランサ: サーバーにはトラフィックがなく、Cloud Controller インスタンスで定期的なヘルス チェックのみを実行します。いずれの場合も、コントローラーとビルド マシンは Bitrise コントロール プレーンへのネットワーク呼び出しを開始するため、外部からの受信トラフィックは必要ありません。

  • オートスケーリンググループ: 正常な Cloud Controller インスタンスが常に実行されていることを確認します。インスタンス: Cloud Controller が実行される t2.small インスタンス。

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

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

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

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

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

新しい VPC に Cloud Controller をデプロイする

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

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

  • 最新のAMI ID: この AMI ID は、クラウド コントローラーを実行するためのベース AMI として使用されます。

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

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

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

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

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

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

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

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

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

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

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

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

  • 内部アプリケーション ロードバランサ: サーバーにはトラフィックがなく、Cloud Controller インスタンスで定期的なヘルス チェックのみを実行します。いずれの場合も、コントローラーとビルド マシンは Bitrise コントロール プレーンへのネットワーク呼び出しを開始するため、外部からの受信トラフィックは必要ありません。

  • オートスケーリンググループ: 正常な Cloud Controller インスタンスが常に実行されていることを確認します。

  • 実例: ア t2.small Cloud Controller が実行されるインスタンス。

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

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

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

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

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

  • 仮想PC: ベストプラクティスに基づいた標準の汎用 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-logAWS 環境内での組織的なログ管理とリアルタイム分析を容易にします。

既存の VPC にエアギャップ クラウド コントローラーをデプロイする

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

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

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

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

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

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

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

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

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

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

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

  • 内部アプリケーション ロードバランサ: サーバーにはトラフィックがなく、Cloud Controller インスタンスで定期的なヘルス チェックのみを実行します。いずれの場合も、コントローラーとビルド マシンは Bitrise コントロール プレーンへのネットワーク呼び出しを開始するため、外部からの受信トラフィックは必要ありません。

  • オートスケーリンググループ: 正常な Cloud Controller インスタンスが常に実行されていることを確認します。インスタンス: Cloud Controller が実行される t2.small インスタンス。

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

  • エアギャップ IAM ロール、インスタンス プロファイル、ポリシー: コントローラーがビルドノードの状態を照会し、必要な Bitrise プライベート ECR にアクセスするには、特定の権限が必要です。

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

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

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

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

エアギャップテンプレートの手動設定

  1. 設定されたサブネットを使用して、次のインターフェースタイプの VPC エンドポイントを作成します。

    プライベート DNS がすべてに対して有効になっていることを確認します。

    • com.amazonaws.${AWS::Region}.autoscaling: コントローラーの自己更新に使用されます。

    • com.amazonaws.${AWS::Region}.ec2: EC2 インスタンスおよび専用ホストの管理に使用されます。

    • com.amazonaws.${AWS::Region}.ecr.api: Bitrise プライベート ECR からコントローラー バイナリをダウンロードするために使用されます。

    • com.amazonaws.${AWS::Region}.ecr.dkr: Bitrise プライベート ECR からコントローラー バイナリをダウンロードするために使用されます。

    • com.amazonaws.${AWS::Region}.logs: コントローラーログを CloudWatch に送信するために使用されます。

    • com.amazonaws.${AWS::Region}.secretsmanager: シークレットにアクセスするために使用されます。

  2. 作成したエンドポイントをインスタンス セキュリティ グループに適用します。

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

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

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

  • 最新のAMI ID: この AMI ID は、クラウド コントローラーを実行するためのベース AMI として使用されます。

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

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

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

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

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

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

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

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

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

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

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

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

  • 内部アプリケーション ロードバランサ: サーバーにはトラフィックがなく、Cloud Controller インスタンスで定期的なヘルス チェックのみを実行します。いずれの場合も、コントローラーとビルド マシンは Bitrise コントロール プレーンへのネットワーク呼び出しを開始するため、外部からの受信トラフィックは必要ありません。

  • オートスケーリンググループ: 正常な Cloud Controller インスタンスが常に実行されていることを確認します。インスタンス: Cloud Controller が実行される t2.small インスタンス。

  • 実例: ア t2.small Cloud Controller が実行されるインスタンス。

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

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

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

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

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

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

    • 1 つの VPC。

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

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

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

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

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

  • VPC エンドポイント: テンプレートは 6 つのインターフェイス タイプのエンドポイントを作成し、それらをインスタンス セキュリティ グループに接続して、コントローラーが AWS リソースにアクセスできるようにします。

    • com.amazonaws.${AWS::Region}.autoscaling: コントローラーの自己更新に使用されます。

    • com.amazonaws.${AWS::Region}.ec2: EC2 インスタンスおよび専用ホストの管理に使用されます。

    • com.amazonaws.${AWS::Region}.ecr.api: Bitrise プライベート ECR からコントローラー バイナリをダウンロードするために使用されます。

    • com.amazonaws.${AWS::Region}.ecr.dkr: Bitrise プライベート ECR からコントローラー バイナリをダウンロードするために使用されます。

    • com.amazonaws.${AWS::Region}.logs: コントローラーのログを CloudWatch に送信するために使用されます。

    • com.amazonaws.${AWS::Region}.secretsmanager: シークレットにアクセスするために使用されます。

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

必要なAWS権限と接続

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

コントローラーは特定のBitriseエンドポイントへの接続を必要とします。詳細を見る コントローラーのドキュメント