CodeDeployでデプロイを簡単にしよう

今回はAWS(Amazon Web Services)のサービスの一つ「CodeDeploy」について解説していきます。

CodeDeployとは

CodeDeployはAWSで提供されている、Amazon EC2、オンプレミス、Lambda 関数、Amazon ECSでアプリケーションのデプロイを自動化するサービスのことを指します。主にAmazon S3 バケット、GitHub リポジトリ、または Bitbucket リポジトリに保存されているアプリケーションコンテンツ。サーバーレス Lambda 関数をデプロイすることができ、既存のコードを変更することなく使用することができます。

CodeDeployの特徴

サーバーアプリケーション、サーバーレスアプリケーション、コンテナアプリケーションをデプロイできる

サーバー従来のアプリケーションと、サーバーレスAWS Lambda関数バージョン、または Amazon ECSアプリケーションを展開するアプリケーションに対応しています。

自動でデプロイしてくれる

開発、テスト、本番稼働環境にまたがるアプリケーションのデプロイを完全に自動化してくれます。インフラストラクチャに合わせてスケールされるので、1 つのインスタンスか数千のインスタンスにデプロイできます。

同時にデプロイしてくれる

EC2、オンプレミスで使用する複数のアプリケーションがある場合でも、CodeDeployは同じインスタンスのセットでこれらを同時にデプロイすることができます。

ダウンタイムを最小化できる

アプリケーションが EC2/オンプレミスを使用している場合、複数の Amazon EC2インスタンスにまたがってローリング更新を実行したり、最新アプリケーションのリビジョンを、置き換え先インスタンスにインストールすることでダウンタイムを最小限に抑えるように設計されています。また、設定したルールに従ってアプリケーションの状態を追跡するので管理がしやすいです。

ロールバックが手軽

エラーが発生した場合は自動か手動でデプロイを停止してロールバックすることができます。

コントロールが一元化されている

CodeDeployコンソールかAWS CLIでデプロイし、そのステータスを追跡することができます。各アプリケーションのリビジョンがいつデプロイされて、どのAmazon EC2インスタンスがリストされているかを示すレポートを受け取れるので管理が容易です。

導入が簡単

CodeDeployは、プラットフォームに依存せず、すべてのアプリケーションで動作可能です。

CodeDeployのデプロイ

CodeDeployではデプロイするタイプが2通りあり、それぞれインプレースデプロイとBlue/Greenデプロイが選択可能です。それぞれデプロイする方式が違うので、ここでは各デプロイタイプについて解説していきます。

インプレースデプロイ

デプロイするグループにある各インスタンス上のアプリケーションを停止し、最新のアプリケーションのリビジョンがインストールされることで、新バージョンのアプリケーションが開始、検証されるデプロイタイプです。※ロードバランサーを使用すれば、各インスタンスがデプロイ中でも登録が解除されて、デプロイ完了後にサービスへ復元されるようにすることが可能です。使用できるプラットフォームはEC2、オンプレミスを使用するデプロイです。

※サーバーにかかる負荷を、平等に振り分けるための装置、仕組みのこと。AWSでも「ELB(Elastic Load Balancing)」としてリリースされている。

Blue/Greenデプロイ

EC2、オンプレミス、Lambda関数、Amazon ECSのすべてのプラットフォームで使用することが可能なデプロイ方法です。動作がプラットフォームによって異なります。またデプロイ設定でデプロイのルール、デプロイの成功条件、デプロイの失敗条件を指定することができます。

EC2、オンプレミス:デプロイグループのインスタンスがインスタンスの別のセットにプロビジョニングされることでデプロイされる。デプロイ設定で正常なインスタンスの最小数を指定できる。

Lambda関数:使用しているサーバーレス環境から、更新されたLambda関数のバージョンへ環境が移行されることでデプロイされる。Blue/Greenデプロイでしか扱えないのでデプロイタイプを指定する必要がない。デプロイ設定でCanary、線形、All-at-onceから設定することができる。

Amazon ECS:Amazon ECSサービス内のアプリケーション元のバージョンのタスクセットから、同じサービスの置き換えタスクセットに移行されることでデプロイされる。デプロイ設定でCanary、線形、All-at-onceから設定することができる。

まとめ

CodeDeployはデプロイを自動化することによって、手動操作の必要を無くし、デプロイする際にも、デプロイ設定を行うことによって、開発における手戻りを減少させることができます。開発効率を上げたいと思っている方は思い切って採用してみるのはいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

Amazon Textractについて