CodeDeployエージェントをインストールする

2021.03.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、yagiです。

本日は、EC2インスタンスに「CodeDeployエージェントをインストールする」内容について記載します。

CodeDeployとは?


CodeDeployは、Amazon EC2インスタンス、オンプレミスインスタンス、サーバーレスLambda関数、またはAmazonECSサービスへのアプリケーションのデプロイを自動化するデプロイサービスです。

CodeDeployを使用すると、次のことが簡単になります。

 ・新機能を迅速にリリースします。

 ・AWSLambda関数のバージョンを更新します。

 ・アプリケーションの展開中のダウンタイムを回避します。

 ・エラーが発生しやすい手動デプロイメントに関連するリスクの多くを発生させることなく、アプリケーションの更新の複雑さを処理します。

このサービスはインフラストラクチャに合わせて拡張できるため、1つのインスタンスまたは数千のインスタンスに簡単にデプロイできます。 (公式ドキュメントからの引用)

先日作成したAutoScalingGroupにCodeDeployエージェントをインストールして複数インスタンスへのデプロイをしたいため、今回はその前段としてEC2インスタンスにCodeDeployエージェントをインストールします。

設定してみる


Install the CodeDeploy agent for Amazon Linux or RHEL

リージョン別に入手できるCodeDeployリソースキットは以下から入手します。

CodeDeploy resource kit reference

上記公式ドキュメントの案内にしたがって進めていきます。 大まかには、以下の2つの手順を実行するのみです。

  1. EC2インスタンスをAMIから起動

  2. CodeDeployリソースキットからCodeDeployエージェントをインストール

1. EC2インスタンスをAMIから起動


まずはプラットフォームがLinuxのAMIから、EC2インスタンスを起動します。この後SSH接続するのでセキュリティグループのポート22の設定とキーペアの確保をしておきます。 なお公式の事前準備ページで設定したIAMロールも念のため付与しておきます。

2. CodeDeployリソースキットからCodeDeployエージェントをインストール


ターミナルから以下を実行してSSH接続します。

% ssh -i XXXXX.pem ec2-user@XXX.XXX.XXX.XXX


       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/

公式ドキュメントに従い以下を実行していきます。

$ sudo yum update
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
No packages marked for update

$ sudo yum install ruby
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
...

完了しました!

$ sudo yum install wget
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
パッケージ wget-1.14-18.amzn2.1.x86_64 はインストール済みか最新バージョンです
何もしません

ec2-user配下にディレクトリを移動し、リージョン別に入手できるCodeDeployリソースキットを参照して、作業しているリージョンにあわせて、以下のbucket-name と region-identifier を書き換えます。

wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install

$ cd /home/ec2-user
$ wget https://aws-codedeploy-eu-central-1.s3.eu-central-1.amazonaws.com/latest/install
--2021-03-24 20:39:18--  https://aws-codedeploy-eu-central-1.s3.eu-central-1.amazonaws.com/latest/install
aws-codedeploy-eu-central-1.s3.eu-central-1.amazonaws.com (aws-codedeploy-eu-central-1.s3.eu-central-1.amazonaws.com) をDNSに問いあわせています...
...
2021-03-24 20:39:18 (24.6 MB/s) - `install' へ保存完了 [17231/17231]

続いて、権限変更してからインストールしていきます。最新バージョンでインストールしました。

$ chmod +x ./install
$ sudo ./install auto
I, [2021-03-24T20:39:43.995033 #3380]  INFO -- : Starting Ruby version check.
...
インストール:
  codedeploy-agent.noarch 0:1.3.1-1880                                                                            

完了しました!
I, [2021-03-24T20:39:46.599067 #3380]  INFO -- : Update check complete.
I, [2021-03-24T20:39:46.599165 #3380]  INFO -- : Stopping updater.

これで作業完了です。

以下のコマンドを実行して、サービスが実行されていることを確認します。

$ sudo service codedeploy-agent status
The AWS CodeDeploy agent is running as PID XXXX

無事インストールできました。

結論


AWS CodeDeploy を使用する準備作業として、CodeDeployエージェントのインストールを実施して確認する手順を記載しました。 今回はEC2インスタンスをAMIから起動し、CodeDeployエージェントのインストールを行った上で、AMIを取っておき、このEC2インスタンス自体はシャットダウンをしておきます。

参考リンク


Working with the CodeDeploy agent Getting started with CodeDeploy