ようへいの日々精進XP

よかろうもん

「Amazon ECS のコンテナインスタンスはインスタンスタイプの変更は出来ない」という事を知った

tl;dr

今更次郎な話かもしれないけど, 「そうなんだ〜」と思うことがあったのでメモっておきます.

どんなことなのか

Amazon ECS のコンテナインスタンスってインスタンスタイプの変更は出来ない」ということです.

厳密に言うと, コンテナインスタンス EC2 自体のインスタンスタイプは変更は完了して無事に起動するのですが, コンテナインスタンス上で動く ecs-agent コンテナが起動しません.

コンテナインスタンスSSH でログインして, ecs-agent を手動で起動させると /var/log/ecs-agent.log に以下のようなログを吐いてコンテナが異常終了します.

2019-02-20T02:49:28Z [ERROR] Unable to register as a container instance with ECS: ClientException: Container instance type changes are not supported. Container instance xxxxxxxxxxxxx-db72-4694-934b-xxxxxxxxxxxxxx was previously registered as t2.large.
        status code: 400, request id: 23c5fd6b-34ba-11e9-8259-a997a65d9f18
2019-02-20T02:49:28Z [ERROR] Error re-registering: ClientException: Container instance type changes are not supported. Container instance xxxxxxxxxxxxx-db72-4694-934b-xxxxxxxxxxxxxx was previously registered as t2.large.
        status code: 400, request id: 23c5fd6b-34ba-11e9-8259-a997a65d9f18
2019-02-20T02:49:28Z [CRITICAL] The current instance type does not match the registered instance type. Please revert the instance type change, or alternatively launch a new instance: ClientException: Container instance type changes are not supported. Container instance xxxxxxxxxxxxx-db72-4694-934b-xxxxxxxxxxxxxx was previously registered as t2.large.
        status code: 400, request id: 23c5fd6b-34ba-11e9-8259-a997a65d9f18

えー, そうなんだと思った次第です.

ドキュメント読め案件

各コンテナインスタンスに、それぞれに固有の状態情報がコンテナインスタンスにローカルで保存され、Amazon ECS にも保存されているため、以下のような制限があります。

コンテナインスタンスに固有の情報が保存されるが所以の話で, その情報との整合性が取れない (取らない?) 為, ecs-agent が起動しないようです. 固有の情報がプレーンなテキストでコンテナインスタンスに保存されているのであれば, そのテキストを書き換えてしまえば良いのではと思いましたが, 試せていません. そんなことをするよりも, 新しく作り直した方が早いですし, リソースは使い捨てという考え方からするとこちらの仕様の方が正しいのかもしれません.

以上

学びの多い日常の 1 コマでした.