Techfirm Cloud Architect Blog

テックファーム株式会社クラウドインフラグループのブログ

【AWS】ECS on EC2 エージェントの登録について

はじめに

Amazon ECSにおいてEC2インスタンスをホストで稼働させる場合、Fargateと異なりエージェントの登録といった作業が必要になります。
今回は、ECS on EC2環境のECSエージェントの登録方法について忘備録としてまとめます。

エージェントの登録手順

  • クラスターの作成

Fargate、EC2どちらもECSのクラスターが必要なため作成します。
今回はtest-clusterという名前で作成します。

test-cluster の作成

  • ECSに最適化されたAMIからEC2を復元

EC2をクラスターに登録するためにECS関連のパッケージが必要なので、ECS用に最適化されたAMIからEC2を復元します。 どのAMIを使用するかは、以下の公式ページを参考にしてください。

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/retrieve-ecs-optimized_AMI.html

今回は ami-0ec3dcc987d10643f を使用します。

❯ aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id --region ap-northeast-1
{
    "Parameters": [
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id",
            "Type": "String",
            "Value": "ami-0ec3dcc987d10643f",
            "Version": 17,
            "LastModifiedDate": "2023-11-09T05:04:33.494000+09:00",
            "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id",
            "DataType": "text"
        }
    ],
    "InvalidParameters": []
}

IAM Roleの権限は、AmazonEC2ContainerServiceforEC2Roleのポリシーを付与しています。

  • 設定ファイルの変更

ECSのクラスターに登録するため、EC2の設定ファイルにクラスターを定義しサービスの更新を行います。

# vi /etc/ecs/ecs.config

ECS_CLUSTER=test-cluster

# service ecs restart
Redirecting to /bin/systemctl restart ecs.service
  • クラスターの画面を確認

ECSのクラスターを確認してみると、クラスターにEC2が登録されていることが確認できます。

クラスターにEC2のエージェントが登録されている

エージェントの再登録

インスタンスのスペックアップといった操作や、別のクラスターにエージェントを登録し直したいといった場合、エージェントの再登録が必要になります。  

エージェントの再登録が必要

  • エージェントの再登録

設定ファイルを書き換えてサービスを再起動するのみでは登録が行えないため、EC2に残っている過去のエージェント情報を削除する必要があります。

# rm -f /var/lib/ecs/data/agent.db
# service ecs restart

上記のコマンドを実施後、クラスターを確認してみるとエージェントが再登録されていることが確認できます。

エージェントが再登録されている

  • 以前のエージェントの削除

クラスターに以前のエージェントが登録された状態のため、コンソールから削除したら完了です。

過去のエージェント情報を削除

終わりに

ECS on EC2環境におけるECSエージェントの登録について説明しました。
本番環境でエージェントを登録し直す機会は少ないと思いますが、実際に実行する前に一度開発環境などで試して頂ければと思います。