翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CodeCommit および を使用して、CI/CD パイプラインを複数のAWSアカウントにAWS CodePipeline デプロイする
作成者: Kirankumar Chandrashekar (AWS) と Abdal Garuba (AWS)
環境:PoC またはパイロット | テクノロジー: DevOps | ワークロード:その他すべてのワークロード |
AWS サービス: AWS CodeCommit; AWS CodePipeline |
[概要]
注意: 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) バケットのアーティファクトストアにアップロードされ、AWSKey Management Service (AWS KMS) キーで暗号化されます。ソースステージのステータスが Succeeded
で に変更されると CodePipeline、コードはパイプライン実行の次のステージ に移行されます。
前提条件と制限
前提条件
必要な環境 (DevOps、デベロッパー、ステージング、本番稼働) ごとに既存のAWSアカウント。これらのアカウントは AWS Organizations によってホストできます。
アーキテクチャ
テクノロジースタック
AWS CodeBuild
AWS CodeCommit
AWS CodePipeline
Amazon EventBridge
AWS Identity and Access Management (IAM)
AWS KMS
AWS 組織
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キーを作成します。 | クラウド管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
アカウントからイベントを受信する EventBridge ように を設定します DevOps AWS。 | 個々のAWSアカウントの 1 つ (開発者、ステージング、または本番稼働用) の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アカウントにリソースを作成する
その他のリソース