web-dev-qa-db-ja.com

ECSクラスターにはecsインスタンスはありませんが、2つのecsインスタンスがEC2に表示されます

私はシドニー地域で非常にシンプルなクラスターを作成しようとしています。

enter image description here

これは非常に簡単な設定です。ハードディスクを60Gに指定しました。クラスターに2つのec2インスタンスが必要です。

それらはec2パネルで期待どおりに表示されます。

enter image description here

ただし、ec2インスタンスはecsクラスターページに表示されません。

enter image description here

1)なぜそれが起こるのですか?

2)根本的な問題を見つけるために調査できるロギングはありますか?

8
Anthony Kong

次の2つの手順に従って問題を修正しました。

1)「パブリックIPv4アドレスの自動割り当て」が有効になっていることを確認します

enter image description here

2)ゲートウェイを作成してVPCに接続します。次に、ルートをゲートウェイに追加します。

enter image description here

5
Anthony Kong

コメントに、インスタンスにパブリックIPアドレスがないことを示しました。そのコメントから、インスタンスにもインターネットへのルートがない可能性が高いと推定しています。

ECSを使用するには、インスタンスに(少なくとも)ECSサービスエンドポイントに到達するためのルートが必要です。インターネットへのルートは インターネットゲートウェイ(IGW)ネットワークアドレス変換(NAT) 、または HTTPプロキシ を経由できます。 ECSサービスエンドポイントに到達するためのルートがない場合、ECSエージェントはそれ自体をクラスターに登録できず、ECSでそれらのインスタンスを使用できません。

9
Samuel Karp

ecs optimized amiを使用していますか?私はそれを行い、インスタンスをスポーンするときにユーザーデータにこれを含めます

#!/bin/bash
echo ECS_CLUSTER=your-cluster-name >> /etc/ecs/ecs.config

ボックスにsshすると、クラスターに登録され、次にecsエージェントのdockerログに表示されるはずです。

例えば。

[ec2-user@ip-10-0-X-XXX ~]$ docker logs my-ecs-agent-container-id
---snip----
2019-04-23T20:46:19Z [INFO] Registered container instance with cluster!
2019-04-23T20:46:19Z [INFO] Registration completed successfully. I am running as 'arn:aws:ecs:us-west-2:XXXXXXX:container-instance/xxxxx-yyyy-zzz-ddd-12345gdd' in cluster 'your-cluster'
---snip----
1
reece

私にとっての問題は、ECSエージェントがEC2インスタンスで開始されないことでした。 /var/log/ecs/ecs-init.logのecsエージェントログに以下のエラーが表示されていました

[INFO] Agent exited with code 5
[ERROR] agent exited with terminal exit code

記載されている指示に従って ここ を実行し、var/lib/ecs/data/ecs_agent_data.jsonにあるjsonファイルを削除して、以下のコマンドを使用してECSエージェントを再起動すると、最終的に私にとってうまくいきました。

Sudo service docker restart && Sudo start ecs
0
justshams