0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon ECS でコンテナインスタンスを任意のタイミングで起動する方法

Last updated at Posted at 2024-12-01

はじめに

Amazon ECS(Elastic Container Service)を使うとき、多くの場合はECSクラスターを作成すると同時に、バックエンドでEC2インスタンス(=コンテナインスタンス)が自動的に起動します。
これらのインスタンスはECSクラスターに紐づいており、クラスターを削除すれば自動的に消えます。

しかし、
「毎回クラスターを作り直すのは面倒」
「インスタンスを一時的に停止したい」
といったケースもあると思います。

そこで今回は、既存のECSクラスターを残したまま、コンテナインスタンスを自由に起動・停止できる方法を紹介します。


背景:ECSクラスターとEC2の関係

ECSクラスターを「EC2起動タイプ」で作成した場合、クラスターには自動的にAuto Scaling グループが作成されます。
このASGが、EC2インスタンス(コンテナインスタンス)の起動・削除を管理しています。

つまり、

  • コンテナインスタンスを増やす・減らす
  • 一時的にすべて停止する
    といった操作は、Auto Scaling グループの設定を変更するだけで実現できる、という仕組みです。

手順:ECSクラスターを再作成せずにコンテナインスタンスを操作する

1. ECSクラスターを作成

まずは通常通り、ECSクラスターを「EC2起動タイプ」で作成します。

2. EC2コンソールを開く

AWSマネジメントコンソールで「EC2」を開きます。

3. Auto Scaling グループを開く

左のメニューから「Auto Scaling グループ」をクリックします。

4. ECS用のAuto Scaling グループを選択

クラスター作成時に自動生成されたAuto Scaling グループを探してクリックします。
名前は次のようになっているはずです:

Infra-ECS-Cluster-<ECSクラスター名>-ECSAutoScalingGroup-xxxxxxxxxx

5. キャパシティ設定を編集

「キャパシティの概要」セクションにある「編集」をクリックします。

6. インスタンスを停止(削除)する設定

次のように設定して「更新」をクリックします:

  • 希望するキャパシティ:0
  • スケーリング制限の最小希望容量:0

設定後しばらく待つと、EC2インスタンスが自動的に終了します。

ECSコンソールに戻ると、「コンテナインスタンス」が0 EC2と表示されていれば成功です。


7. 再度インスタンスを起動したい場合

停止後に再起動したくなった場合は、同じ手順でAuto Scaling グループを編集し、以下のように設定を戻します:

  • 希望するキャパシティ:1
  • スケーリング制限の最小希望容量:1

数分待てば、新しいEC2インスタンスが起動し、ECSクラスターに自動的に登録されます。
このとき、ECSクラスターの再作成は不要です。


まとめ

操作 設定値 結果
コンテナインスタンスを停止 希望するキャパシティ:0 / 最小希望容量:0 EC2インスタンスが削除される
コンテナインスタンスを再起動 希望するキャパシティ:1 / 最小希望容量:1 新しいEC2インスタンスが起動する

おわりに

もし AWS Fargate を使っている場合は、このようなインスタンス管理は不要です。
しかし、GPUインスタンスなどFargateが対応していない環境では、今回の方法が非常に便利です。

ECSクラスターを使い回しながら、必要なタイミングでコンテナインスタンスを起動・停止できるようになると、コスト削減や管理の手間の軽減にもつながります。ぜひ試してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?