AWS CodeDeploy は、Amazon EC2、AWS Lambda、オンプレミスで稼働するインスタンスなど、さまざまなコンピューティングサービスへのアプリケーションのデプロイを自動化するサービスです。CodeDeploy はアプリケーションのデプロイを完全に自動化するため、手動操作の必要はなくなります。CodeDeploy はローリング更新およびデプロイの正常性追跡機能により、アプリケーションをデプロイ中のダウンタイムから保護します。CodeDeploy では AWS マネジメントコンソール、CLI、SDK、API からデプロイを一元管理し、デプロイを開始、管理、モニタリングできます。デプロイの進行状況を個々の設定イベントに至るまで表示できます。CodeDeploy はデプロイの最近の履歴を追跡および保存するため、過去のデプロイのタイムラインおよび変更履歴を調査できます。

AWS を無料でお試しください

まずは無料で始める »
またはコンソールにサインイン

12 か月間の AWS 無料利用枠と、24 時間年中無休のカスタマーサービスやサポートフォーラムなどの AWS ベーシックサポート機能を利用できます。

AWS アカウント作成の流れはこちら »

AWS CodeDeploy はプラットフォームや言語に依存せずすべてのアプリケーションと使用できるため、既存の設定コードを再利用できます。また、CodeDeploy API を使用して、アプリケーションのデプロイを既存のソフトウェア配信プロセスと統合したり、継続的配信ツールチェインに組み込んだりできます。

CodeDeploy_Header

AWS CodeDeploy では、さまざまなインスタンスグループや AWS Lambda 関数を対象に、簡単にアプリケーションを繰り返しデプロイできます。CodeDeploy はファイルおよびコマンドベースのインストールモデルを使用しているため、すべてのアプリケーションをデプロイでき、既存の設定コードを再利用できます。同じ設定コードを使用することで、Amazon EC2 のインスタンスまたは Lambda 関数のデプロイ、テスト、および本番用リリースのステージ全体にわたって、更新を一貫してデプロイしてテストできます。デプロイから手動のステップを排除することで、ソフトウェア配信プロセスの速度と信頼性を向上させます。

AWS CodeDeploy を使用すると、ソフトウェアのデプロイとスケーリングアクティビティを統合して、動的に変化する運用環境の中でアプリケーションを常に最新の状態に保つことができます。Amazon EC2 インスタンスの場合、CodeDeploy は Auto Scaling と統合されています。Auto Scaling により、トラフィックの急増など、お客様が定義する条件に応じて EC2 の容量をスケールできます。CodeDeploy は新しいインスタンスが Auto Scaling グループに追加されると通知を受け、そのインスタンスが Elastic Load Balancing のロードバランサーに追加される前に自動的にアプリケーションのデプロイを実行します。AWS Lambda の場合、トラフィックの増加または減少に応じて関数が自動的にスケールされ、CodeDeploy と統合されて最新のコードが確実にデプロイされます。

AWS CodeDeploy を使うと、開発、テスト、運用環境での実行など、あらゆるインスタンス (データセンターのインスタンスを含む) へのソフトウェアのデプロイを自動化できます (インスタンスは AWS パブリックエンドポイントに接続されている必要があります)。1 つのサービスを使用して、ハイブリッド型アーキテクチャでのアプリケーションのデプロイを一貫して行えます。

AWS CodeDeploy では、アプリケーションをリビジョンにアップグレードする際にダウンタイムが発生しません。CodeDeploy は Amazon EC2 のインスタンスグループ全体にローリング更新を実行でき、その際にオフラインとなるインスタンスはごく一部のみです。CodeDeploy はインスタンス全体に段階的に作用するためアプリケーションは利用可能なままであり、トラフィックの提供が中断されません。AWS Lambda 関数の場合、着信トラフィックは古いバージョンから新しいバージョンに徐々にルーティングされます。

AWS CodeDeploy ではブルー/グリーンデプロイも実行できます。これにより、Amazon EC2 の新しいインスタンスセットが最新のリビジョンを使用してプロビジョニングおよびインストールされます。新しいインスタンスに新しいリビジョンがインストールされると、CodeDeploy では本番用インスタンスから新しいインスタンスにトラフィックのルートが変更されます。AWS Lambda の更新は、プロビジョニングする新しいインスタンスが存在しないため、すべてブルー/グリーンです。

デプロイの正常性追跡はローリング更新と連動して実行され、デプロイ中のアプリケーションの可用性を高い状態で維持します。誤った更新がデプロイされると予期しないダウンタイムが発生するおそれがあります。AWS CodeDeploy はデプロイをモニタリングし、失敗した更新が多すぎる場合はデプロイを停止します。

アプリケーションの進行中のデプロイは、AWS マネジメントコンソール、AWS CLI、任意の AWS SDK を使用して常に停止できます。停止したデプロイをあとから続行する必要がある場合は、そのリビジョンを再デプロイするだけです。また、以前のリビジョンを再デプロイすることですぐにロールバックできます。

AWS マネジメントコンソールから直接、または AWS CLI、SDK、API を使用して、ソフトウェアのデプロイを開始、管理、モニタリングできます。障害が発生した場合は、障害が発生したスクリプトを特定できます。Amazon Simple Notification Service を利用した SMS やメールのメッセージにより、デプロイのステータスをモニタリングするプッシュ通知も設定できます。

1 つのアプリケーションを複数のデプロイグループにデプロイできます。デプロイグループは、ステージング環境や運用環境などの特定の環境に構成を一致させるために使用されます。リビジョンをステージング環境でテストし、準備ができたら同じデプロイ手順で同じコードを運用環境にデプロイできます。

AWS CodeDeploy は最近のデプロイの履歴を追跡し、保存します。ターゲットのデプロイグループに現在アプリケーションのリビジョンがデプロイされているかを確認できます。特定のデプロイグループに対する過去のデプロイの変更履歴および成功率を確認できます。また、過去のデプロイのタイムラインを調査して、正常なデプロイとエラーについて詳しく確認することもできます。

AWS CodeDeploy はファイルおよびコマンドベースのインストールモデルを使用しているため、任意のアプリケーションをデプロイでき、既存の設定コードを再利用できます。CodeDeploy では、単一の AppSpec 設定ファイルを使用してアプリケーション内のファイルをマッピングしたり、更新する AWS Lambda 関数を指定したりします。AppSpec ファイルを使用して、各ライフサイクルイベント (デプロイの段階) でアクション、テスト、または検証を実行できます。コマンドはシェルスクリプト、カスタムプログラム、または設定管理ツールなど、任意のコードを使用できます。

AWS CodeDeploy API を使用することで、アプリケーションのデプロイを既存のソフトウェア配信ツールチェインと簡単に統合できます。AWS CodePipelineAWS CodeStar、および一部の AWS パートナーでは、継続統合および継続配信サービスのために事前に構築された CodeDeploy の統合を提供しているため、簡単に最新のアプリケーションを自動でデプロイできます。