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

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

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

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

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

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

CodeDeploy_Header

AWS CodeDeploy では、異なるグループ全体に対して、簡単にアプリケーションを繰り返しデプロイできます。CodeDeploy はファイルおよびコマンドベースのインストールモデルを使用しているため、すべてのアプリケーションをデプロイでき、既存の設定コードを再利用できます。デバッグ目的で開発インスタンスにアプリケーションのリビジョンをデプロイするコード設定は、テストのためのステージングインスタンスに対するデプロイ、またお客様にリリースするためのプロダクションインスタンスに対するデプロイにも使用できます。デプロイから手動のステップを排除することで、ソフトウェア配信プロセスの速度と信頼性を向上させます。

AWS CodeDeploy は Auto Scaling と統合されており、動的に変化するインフラストラクチャの中でアプリケーションソフトウェアを常に最新の状態に維持します。Auto Scaling により、トラフィックの急増など、お客様が定義する条件に応じて Amazon EC2 の容量を自動的にスケールアップまたはスケールダウンできます。CodeDeploy は新しいインスタンスが Auto Scaling Group に追加されると通知を受け、そのインスタンスが Elastic Load Balancing に追加される前に自動的にアプリケーションのデプロイを実行します。

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

AWS CodeDeploy では、アプリケーションをリビジョンにアップグレードする際にダウンタイムが発生しません。CodeDeploy はインスタンスグループ全体にローリング更新を実行でき、その際にオフラインとなるインスタンスはごく一部のみです。CodeDeploy はインスタンス全体に段階的に作用するためアプリケーションは利用可能なままであり、トラフィックの提供が中断されません。CodeDeploy ではブルー/グリーンデプロイも実行できます。これにより、新しいインスタンスセットが最新のリビジョンを使用してプロビジョニングおよびインストールされます。新しいインスタンスに新しいリビジョンがインストールされると、CodeDeploy では本番用インスタンスから新しいインスタンスにトラフィックのルートが変更されます。

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

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

AWS マネジメントコンソールから、または AWS CLI、SDK、API を使用して、任意のアプリケーションのターゲットインスタンスに対するデプロイを開始、管理、モニタタリングできます。各インスタンスで実行されている個々の設定イベントに対して、デプロイの進行状況を確認できます。障害が発生した場合、障害が発生しているスクリプトとインスタンスのみを特定でき、個々のインスタンスにログインする必要はありません。Amazon Simple Notification Service を利用した SMS やメールのメッセージにより、デプロイのステータスをモニタリングするプッシュ通知も設定できます。

アプリケーションは複数のデプロイグループにデプロイできます。デプロイグループはステージング環境または実稼働環境など、複数のインスタンスで構成されます。リビジョンをステージング環境でテストし、準備ができたら同じリビジョンをプロダクション環境にデプロイできます。AWS CodeDeploy は、タグまたは Auto Scaling group 名を使用してデプロイグループを定義します。インスタンスをデプロイグループに追加するにはタグを付けるだけです。AWS CodeDeploy は次のデプロイ時に、自動的にアプリケーションの最新のリビジョンをそのインスタンスにデプロイします。

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

AWS CodeDeploy はファイルおよびコマンドベースのインストールモデルを使用しているため、任意のアプリケーションをデプロイでき、既存の設定コードを再利用できます。CodeDeploy は単一の AppSpec 設定ファイルを使用してアプリケーション内のファイルを送信先ホストにマッピングし、「install dependencies」または「stop server」など、各ライフサイクルイベント(段階またはデプロイ)で実行するコマンドを指定します。コマンドはシェルスクリプト、カスタムプログラム、または設定管理ツールなど、任意のコードを使用できます。

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