最近、AWSによるタスク定義を使用してDockerコンテナーをデプロイしようとしました。途中で、次の質問に出くわしました。
クラスターにインスタンスを追加するにはどうすればよいですか? Amazon ECSコンソールを使用して新しいクラスターを作成するときに、新しいクラスターに新しいec2インスタンスを追加する方法。つまり、新しいec2インスタンスを起動するときに、Amazon ECSでユーザーが作成したクラスターにインスタンスを割り当てるために必要な構成は何ですか。
クラスターにはいくつのECSインスタンスが必要ですか?その要因は何ですか?
クラスターに2つのインスタンス(ins1、ins2)があり、webappがある場合、dbコンテナーはins1で実行されています。実行中のサービスを更新した後( http://docs.aws.Amazon.com/AmazonECS/latest/developerguide/update-service.html を使用)、新しく作成したサービスが実行中であることがわかります「ins2」、「ins1」の古いサービスをドレインする前。私の質問は、私のwebappコンテナーが別のインスタンスに割り当てられた後、アクセスIPアドレスが別のインスタンスIPになることです。同じIPアドレスをwebappにアクセスさせないようにする方法または解決策IPだけでなく、新しいインスタンスに変更した後のデータはどうですか?
これらは実際には3つのかなり異なる質問であるため、ここではそれらを異なる質問に分割することをお勧めします-私は関係なく回答を提供しようとします:
デフォルトでは、コンテナインスタンスはデフォルトのクラスタで起動します。デフォルトではなく独自のクラスターで起動する場合は、[詳細]リストを選択し、次のスクリプトを[ユーザーデータ]フィールドに貼り付けます。your_cluster_nameはクラスターの名前に置き換えます。
#!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
クラスター自体はAWSがユーザーに代わって管理するため、ECSがそのように機能するために必要なインスタンスは1つだけです。ただし、これは高可用性シナリオでは十分ではありません。
これは、2。で述べた高可用性とサービスオーケストレーションのトピックをさかのぼります。すでに、より正確には、 サービスディスカバリ の問題に直面しています。