

# OPS05-BP04 構築およびデプロイ管理システムを使用する
<a name="ops_dev_integ_build_mgmt_sys"></a>

 構築およびデプロイ管理システムを使用します。これらのシステムは、手動プロセスによって発生するエラーと、変更を導入する労力を減らします。 

 AWS では、以下のサービスを使用して、継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインを構築できます。 [AWS デベロッパーツール](https://aws.amazon.com/products/developer-tools/) (例: AWS CodeCommit、 [AWS CodeBuild](https://aws.amazon.com/codebuild/)、 [AWS CodePipeline](https://aws.amazon.com/codepipeline/)、 [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)、 [AWS CodeStar](https://aws.amazon.com/codestar/))。 

 **期待される成果:** 組織の構築およびデプロイ管理システムは、適正な設定で安全なロールアウトを自動化する機能を提供する、継続的インテグレーションと継続的デリバリー (CI/CD) システムをサポートします。 

 **一般的なアンチパターン:** 
+  開発システムでコードをコンパイルした後、あなたは、実行可能ファイルを本稼働システムにコピーし、起動に失敗する。ローカルログファイルは、依存関係がないために失敗したことを示す。 
+  開発環境でアプリケーションの新機能の構築を正常に完了し、品質保証 (QA) にコードを提供しても、静的アセットが欠如していたために、QA に合格しない。 
+  金曜日に、多くの労力をかけて、開発環境でアプリケーションを手動で構築でき、これには、新しくコード化された機能も含まれるけれど、月曜日に、アプリケーションを正常に構築することを可能にするステップを繰り返すことができない。 
+  そこで、新しいリリース用に作成したテストを実行する。その後、あなたは、翌週いっぱいをかけて、テスト環境をセットアップし、すべての既存の統合テストを実行してから、パフォーマンステストを実行する。新しいコードには許容できないパフォーマンスへの影響があり、再開発してから再テストする必要がある。 

 **このベストプラクティスを活用するメリット:** ビルドとデプロイのアクティビティを管理するメカニズムを提供することで、反復的なタスクを実行するための労力の程度を減らし、チームメンバーは高価値のクリエイティブなタスクに専念し、手動の手順によるエラーの発生を抑制できます。 

 **このベストプラクティスを活用しない場合のリスクレベル:** 中程度 

## 実装のガイダンス
<a name="implementation-guidance"></a>

 構築およびデプロイ管理システムを使用すると、変更の追跡と実装、手動プロセスが原因で発生するエラーの削減、安全なデプロイに必要な労力の軽減につながります。コードのチェックインから、ビルド、テスト、デプロイ、検証を通じて統合とデプロイのパイプラインを完全自動化します。これにより、リードタイム短縮、コスト低減、変更頻度の増加、労力の軽減、コラボレーションの強化につながります。 

### 実装手順
<a name="implementation-steps"></a>

![\[AWS CodePipeline と関連サービスを使用した CI/CD を説明する図\]](http://docs.aws.amazon.com/ja_jp/wellarchitected/2023-10-03/framework/images/deployment-pipeline-tooling.png)


 

1.  AWS CodeCommit を使用して、アセット (ドキュメント、ソースコード、バイナリファイルなど) のバージョン管理、保存、管理を行います。 

1.  CodeBuild を使用して、ソースコードのコンパイル、単体テストの実行、デプロイ準備が整ったアーティファクトの作成を行います。 

1.  CodeDeploy を [Amazon EC2](https://aws.amazon.com/ec2/) インスタンス、オンプレミスインスタンス、[サーバレス AWS Lambda 関数](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)、または [Amazon ECS へのアプリケーションのデプロイを自動化するデプロイメントサービスとして](https://aws.amazon.com/ecs/)使用します。 

1.  環境をモニタリングします。 

## リソース
<a name="resources"></a>

 **関連するベストプラクティス:** 
+  [OPS06-BP08 テストとロールバックを自動化する](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **関連するドキュメント:** 
+  [AWS デベロッパーツール](https://aws.amazon.com/products/developer-tools/) 
+ [AWS CodeCommit とは ](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
+  [AWS CodeBuild とは](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+  [AWS CodeDeploy とは](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **関連動画:** 
+ [AWSre\$1: Invent 2022 - AWS の DevOps 向け AWS Well-Architected ベストプラクティス ](https://youtu.be/hfXokRAyorA)