AWS CodeDeployとは?デプロイを自動で実行する


AWS CodeDeployの概要

AWS CodeDeployは、ビルドしたアプリケーションのデプロイを自動で実行するフルマネージドサービスで、下記のサービスなどへのデプロイを自動化できます。

  • Amazon EC2
  • AWS Fargate
  • AWS Lambda
  • オンプレミスのサーバー

AWS CodeDeployを使うことで、スピーディーなデプロイが可能となり、ヒューマンミスを引き起こす手動作業を削減できます。また、デプロイ作業をモニタリングし、作業が停止してしまうリスクを回避します。

AWS CodeDeployによって、デプロイの開始から運用管理、モニタリングまでを、下記のツールによって一元管理して、進捗を表示します。また、デプロイの変更履歴は保存され必要に応じ追跡することが可能です。

  • AWSマネジメントコンソール
  • AWS CLI
  • AWS SDK
  • AWS API

AWS CodeDeployの利点

自動化によるアプリケーションの簡単なデプロイ

AWS CodeDeployによって、複数のサービスに既存の設定コードを利用して簡単にアプリケーションのデプロイを実行できます。

自動スケーリング

AWS CodeDeployは自動でスケーリングする機能を備えています。たとえば、AmazonEC2へのデプロイの場合、AWS Auto Scalingと連携してアプリケーションをモニタリングし、作業量が急激に増加した場合や必要に応じてAmazonEC2の容量を自動的にスケーリングします

アプリケーションのアップグレードでダウンタイムが発生しない

AWS CodeDeployでは、Amazon EC2、AWS Fargate、AWS Lambdaにブルー/グリーンデプロイを実行するため、アプリケーションのアップグレードでダウンタイムが発生しません。

ブルー/グリーンデプロイでは、アプリケーションアップグレードの際に、旧バーションと新バージョンが同時に起動され、新バージョンのテストが完了しアップデートができる準備が整った段階でアップグレードが実行されます。

また、AWS CodeDeploy を使って、Amazon EC2全体に更新をかける際に、ダウンタイムを最小限に抑えながら実行することも可能です。AWS CodeDeployは、アプリケーション利用が可能な範囲で段階的に更新を行い、一部のインスタンスがオフラインになる状態にとどめます。

AWS Lambdaの更新の際には、旧バージョンから新バージョンへ徐々にルーティングすることで、ダウンタイムを最小限に抑えます。

デプロイ業務を一元管理

AWS CodeDeployを使用することで、デプロイの開始から運用管理、モニタリングまでを一元管理できます。モニタリングはデプロイの一連の作業のすべての段階で実施され、問題点の早期発見に役立ちます。

また、Amazon Simple Notification Serviceと連携することで、デプロイのモニタリング状況をSMSやメールメッセージで受け取れるように設定することも可能です。

参考資料
https://aws.amazon.com/jp/codedeploy/