AWS CodeDeploy - AWS でのデプロイオプションの概要

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CodeDeploy

AWS CodeDeploy は、Amazon EC2、Amazon Elastic Container Service (Amazon ECS)、AWS Lambda、オンプレミスサーバーなどのコンピューティングサービスへのアプリケーションのデプロイを自動化するフルマネージド型のデプロイサービスです。組織は CodeDeploy を使用してアプリケーションのデプロイを自動化し、デプロイプロセスからエラーが発生しやすい手動操作を削除できます。CodeDeploy は、コード、サーバーレス関数、設定ファイルなど、さまざまなアプリケーションコンテンツで使用できます。

CodeDeploy は、アプリケーションデベロッパーが既存のインフラストラクチャで実行されているソフトウェアをデプロイおよび更新するのを支援することに焦点を当てた構成要素サービスとして使用されることを目的としています。これはend-to-endのアプリケーション管理ソリューションではなく、完全な CI/CD パイプラインの一部としてAWS CodeStar、、AWS CodePipeline、その他の AWS 開発者ツール、サードパーティーサービス (製品統合の完全なリストについては「製品統合」を参照) などの他の AWS デプロイサービスと組み合わせて使用することを目的としています。 AWS CodeDeployさらに、CodeDeploy はユーザーに代わってリソースの作成を管理しません。

表 3: AWS CodeDeploy デプロイ機能

機能 説明
プロビジョニング

CodeDeploy は、既存のコンピューティングリソースでの使用を目的としており、ユーザーに代わってリソースを作成することはありません。CodeDeploy では、アプリケーションコンテンツをデプロイするために、コンピューティングリソースをデプロイグループと呼ばれるコンストラクトに整理する必要があります。

CodeDeploy をコンピューティングリソースにリンクする方法の詳細については、「CodeDeploy でのデプロイグループの操作」を参照してください。 CodeDeploy

構成する

CodeDeploy は、アプリケーション仕様ファイルを使用してコンピューティングリソースのカスタマイズを定義します。

CodeDeploy でのリソースのカスタマイズの詳細については、「CodeDeploy AppSpec ファイルリファレンス」を参照してください。 CodeDeploy

デプロイ

CodeDeploy が使用されるコンピューティングリソースのタイプに応じて、CodeDeploy はアプリケーションをデプロイするためのさまざまな戦略を提供します。

サポートされるデプロイプロセスのタイプの詳細については、CodeDeploy でのデプロイの使用」を参照してください。

スケール CodeDeploy は基盤となるアプリケーションインフラストラクチャのスケーリングをサポートしていませんが、デプロイ設定によっては、ブルー/グリーンデプロイをサポートする追加のリソースを作成する場合があります。
モニタリング

CodeDeploy はデプロイの成功または失敗をモニタリングし、すべてのデプロイの履歴を提供しますが、パフォーマンスまたはアプリケーションレベルのメトリクスは提供しません。

CodeDeploy が提供するモニタリング機能のタイプの詳細については、「CodeDeploy でのデプロイのモニタリング」を参照してください。 CodeDeploy

次の図は、完全な CI/CD ソリューションの一部としての CodeDeploy の一般的なユースケースを示しています。この例では、CodeDeploy は追加の AWS 開発者ツール、つまり AWS CodePipeline (CI/CD パイプラインを自動化)、 AWS CodeBuild (アプリケーションコンポーネントの構築とテスト)、 AWS CodeCommit (ソースコードリポジトリ) と組み合わせて使用され、Amazon EC2 インスタンスのグループにアプリケーションをデプロイします。CodeDeploy は、完全な CI/CD パイプラインの一部として他のツールとともに使用されます。CodeDeploy は、デプロイグループの一部であるコンピューティングリソースへのアプリケーションコンポーネントのデプロイを管理します。すべてのインフラストラクチャコンポーネントは CodeDeploy の外部で作成されます。

AWS CodePipeline workflow showing CodeCommit, CodeBuild, CodeDeploy, and EC2 with Auto Scaling.

AWS CodeDeploy ユースケース

AWS CodeDeploy の AWS Lambda

AWS CodeDeploy for AWS Lambda を使用すると、サーバーレスデプロイを自動化できるため、アプリケーションリリースをより詳細に制御および可視化できます。CodeDeploy を使用して、サーバーレス関数の新しいバージョンを少数のユーザーまたはトラフィックにデプロイし、新しいバージョンに自信が持てるにつれてトラフィックを徐々に増やすことができます。CodeDeploy を使用すると、同じイベントソースからトラフィックを受信する一連の Lambda 関数を表すデプロイグループを定義できます。例えば、API Gateway または Amazon EventBridge ルールによって開始される一連の Lambda 関数のデプロイグループを作成できます。その後、CodeDeploy を使用してデプロイを作成できます。CodeDeploy は、指定したデプロイグループに新しいバージョンの Everless 関数をデプロイします。

CodeDeploy では、デプロイタイプ、デプロイ戦略、トラフィックシフトルールなど、デプロイの設定を指定するデプロイ設定を定義することもできます。Canary デプロイ戦略を使用して、サーバーレス関数の新しいバージョンを少数のトラフィックにデプロイし、新しいバージョンのヘルスとパフォーマンスをモニタリングしてから、トラフィックを増やすことができます。

サーバーレスに CodeDeploy を使用することで、デプロイプロセスを自動化し、アプリケーションの新しいバージョンのリリースに必要な時間と労力を削減し、サーバーレス関数の安定性と信頼性を向上させることができます。