翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CodeCommit と AWS CodePipeline を使用して CI/CD パイプラインを複数のAWSアカウントにデプロイする
作成者: Kirankumar Chandrashekar (AWS) と Abdal Garuba (AWS)
概要
注意: AWS CodeCommit は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS CodeCommit 引き続き使用できます。詳細はこちら
このパターンは、アプリケーションコードワークロードの継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを DevOps、、開発者、ステージング、本番稼働用の個別の Amazon Web Services (AWS) アカウントにデプロイする方法を示しています。
複数のAWSアカウント戦略
アプリケーションのコードは、これらすべての個別のAWSアカウントで同じままであり、 DevOps アカウントがホストする中央AWS CodeCommit リポジトリに保持されます。デベロッパーアカウント、ステージングアカウント、本番稼働用アカウントには、この CodeCommit リポジトリに個別の Git ブランチがあります。
例えば、コードが中央 CodeCommit リポジトリのデベロッパー Git ブランチにコミットされると、 EventBridge DevOps アカウントの Amazon はデベロッパーアカウント EventBridge でリポジトリの変更を通知します。デベロッパーアカウントでは、 AWS CodePipeline とソースステージは InProgress
ステータスになります。ソースステージは、中央 CodeCommit リポジトリの開発者 Git ブランチから設定され、 DevOps アカウントのサービスロールを CodePipeline 引き受けます。
デベロッパーブランチの CodeCommit リポジトリのコンテンツは、Amazon Simple Storage Service (Amazon S3) バケットのアーティファクトストアにアップロードされ、 AWS Key Management Service (AWSKMS) キーで暗号化されます。ソースステージのステータスが Succeeded
で に変わると CodePipeline、コードはパイプライン実行の次のステージに移行されます。
前提条件と制限
前提条件
必要な各環境 (DevOps、開発者、ステージング、本番稼働) の既存のAWSアカウント。これらのアカウントは AWS Organizations によってホストできます。
アーキテクチャ

テクノロジースタック
AWS CodeBuild
AWS CodeCommit
AWS CodePipeline
Amazon EventBridge
AWS Identity and Access Management (IAM)
AWS KMS
AWS Organizations
Amazon S3
ツール
AWS CodeBuild – CodeBuild は、ソースコードをコンパイルし、テストを実行し、デプロイ可能なソフトウェアパッケージを生成するフルマネージド型の継続的統合サービスです。
AWS CodeCommit – 安全な Git ベースのリポジトリをホストするフルマネージド型のソースコントロールサービス CodeCommit です。
AWS CodePipeline - CodePipeline は、リリースパイプラインを自動化して、アプリケーションとインフラストラクチャを迅速かつ確実に更新できるようにする、フルマネージド型の継続的デリバリーサービスです。
Amazon EventBridge – は、アプリケーションをさまざまなソースのデータに接続するためのサーバーレスイベントバスサービス EventBridge です。
AWS Identity and Access Management (IAM) – IAM AWSサービスとリソースへのアクセスを安全に管理できます。
AWS KMS – AWS Key Management Service (AWS KMS) は、暗号化キーを作成および管理し、幅広い AWS サービスおよびアプリケーションでの使用を制御するのに役立ちます。
「Amazon S3」— Amazon Simple Storage Service (Amazon S3)は、インターネット用のストレージです。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
CodeCommit リポジトリを作成します。 | DevOps アカウントの AWSマネジメントコンソールにサインインし、 CodeCommit コンソールを開きます。リポジトリを作成し、デベロッパー、ステージング、本番稼働用AWSアカウントに必要なすべての Git ブランチを設定します。このストーリーやその他のストーリーに関するヘルプは、「関連リソース」セクションを参照してください。 | DevOps エンジニア |
CodeCommit リポジトリのアクセス認証情報を作成します。 | IAM コンソールでアクセス認証情報を作成し、アプリケーションデベロッパーが CodeCommit リポジトリからアプリケーションのコードベースをプッシュおよびプルできるようにします。 | DevOps エンジニア |
CodePipeline サービスIAMロールの ロールを作成します。 | IAM コンソールで、すべての CodePipeline サービスIAMロールが中央 CodeCommit リポジトリにアクセスするために使用できる ロールを作成します。 | クラウド管理者 |
他のAWSアカウントの EventBridge ルールを設定します。 | Amazon EventBridge コンソール EventBridge で、個々のデベロッパー、ステージング、および本番稼働用AWSアカウントの関連する CodeCommit リポジトリの変更に関する通知を に送信するルールを設定します。 | クラウド管理者 |
AWS KMS キーを作成します。 | AWS KMS コンソールで、個々のデベロッパー、ステージング、および本番稼働用AWSアカウント CodePipeline でアーティファクトの暗号化と復号を許可するKMSキーを作成します。 | クラウド管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
アカウントから DevOps AWSイベントを受信する EventBridge ように を設定します。 | 個々のAWSアカウント (デベロッパー、ステージング、または本番稼働用) の マネジメントAWSコンソールにサインインします。Amazon EventBridge コンソールで、 DevOps アカウントから CodeCommit リポジトリ変更イベントを受信する EventBridge ように を設定します。 | クラウド管理者 |
S3 バケットを作成します。 | Amazon S3 コンソールで、 CodePipeline アーティファクトを保存する S3 バケットを作成します。 | クラウド管理者 |
CodePipeline ステージに必要なすべてのAWSリソースを作成します。 | CodePipeline ステージに必要な他のすべてのAWSリソースを作成します。これらのリソースは、CI/CD パイプラインの各AWSアカウントのロールによって異なります。 | クラウド管理者 |
IAM ロールを作成します。 | IAM コンソールで、 CodePipeline サービスIAMロールの ロールを作成します。このサービスロールは、 CodeCommit リポジトリにアクセスするには、 DevOps アカウントのIAMロールを引き受けることができる必要があります。 | クラウド管理者 |
でパイプラインを作成します CodePipeline。 | CodePipeline コンソールで、パイプラインを作成します。次に、個々の Git ブランチの DevOps アカウントの CodeCommit リポジトリを指すソースステージを作成します。 | クラウド管理者 |
すべての AWSアカウントに対してこの手順を繰り返します。 | CI/CD 戦略の一部として必要なすべてのAWSアカウントに対して、これらのステップを繰り返します。 | クラウド管理者 |
関連リソース
アカウントに DevOps AWSリソースを作成する
他のAWSアカウントでリソースを作成する
その他のリソース