問題タブ [amazon-ecs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - Amazon ECS の Docker でノード API を実行する最適な方法は何ですか?
Amazon の ECS のような docker とスケジューリングおよびオーケストレーション サービスの出現により、Node API をデプロイする最適な方法を決定しようとしています。Docker と ECS はさておき、ノード クラスター ライブラリを利用して、マスター プロセスと複数のワーカー プロセッサを作成することにより、ドキュメントで提案されているように、非同期エラーが発生した場合にノード アプリのクラッシュを適切に処理したいと考えました。
クラスタ アプローチの利点の 1 つは、エラーを適切に処理することに加えて、使用可能な CPU ごとにワーカー プロセッサを作成することです。しかし、これは docker の世界では意味があるのでしょうか? ECS 上の EC2 インスタンスのクラスターにスケーリングされる単一の Docker コンテナーで複数のノード プロセスを実行することは理にかなっていますか?
ノード クラスターのアプローチがなければ、エラーを適切に処理する能力が失われるため、少なくとも、Docker コンテナーごとにマスター プロセスと 1 つのワーカー プロセスを実行する必要があると思います。ECS のタスク定義で定義する CPU の数については、まだ混乱しています。ECSのドキュメントには、各コンテナー インスタンスが CPU あたり 1024 ユニットを持っていることが記載されています。しかし、それは EC2 コンピューティング ユニットと同じではありませんね。そうは言っても、この権利を達成するには、適切な量の vCPU を備えた EC2 インスタンス タイプを選択する必要がありますか?
最適な構成を実現するには、特定の Node API アプリケーションのベンチマークをある程度行う必要があることは理解していますが、どこから始めればよいかをよりよく理解できれば素晴らしいと思います。たぶん、私がしなければならない勉強/研究がありますか?パスまたは推奨事項について私を導くための指針は、非常に高く評価されます!
編集:私の特定の質問を要約するには:
ここで説明されているように、docker コンテナー内でマスター/ワーカー クラスターを実行して、適切なクラッシュを実現することは理にかなっていますか?
クラスターのドキュメントで説明されているのとほぼ同じコードを使用して、使用可能な CPU に「スケーリング」することは理にかなっています
require('os').cpus().length
か?ECS タスク定義のドキュメントで Amazon が意味することは何
cpus
ですかcontainer instance has 1024 units per CPU
? そして、この設定の良い出発点は何ですか?上記に基づいてノード API を提供することを目的とした ECS クラスターに使用するインスタンス タイプの出発点として適切なものは何ですか? また、利用可能な vCPU は前の質問にどのように影響しますか?
amazon-web-services - Amazon EC2 Container Service (ECS) で安全でない docker レジストリを使用するにはどうすればよいですか?
外部からアクセスできない AWS VPC 内で Docker レジストリを使用します。このレジストリから ECS でタスクを起動できるようにしたいのですが、Docker デーモンがレジストリにアクセスできないため、サービスが PENDING 状態になっていることがわかります。
起動構成のユーザーデータを変更することで一種の回避策を見つけましたが、これが最善の方法であるとは思えません。
これは完全に機能し、タスクが期待どおりに実行されていることがわかります。これが必ずしも最善の方法だとは思いません。
AWS は、プライベート レジストリを使用した認証について説明しているこの記事を紹介してくれましたが、認証するつもりはありません。Docker に、安全でない (つまり、HTTPS ではない) レジストリを使用しているという事実を無視させるためです。
誰かがより良い解決策を持っていますか?
ありがとう
amazon-web-services - Docker Hub 統合なしで Amazon コンテナ サービスを構成する方法
新しい springboot+docker(マイクロサービス) ベースのプロジェクトをセットアップしようとしています。デプロイは aws を対象としています。すべてのサービスには、Dockerfile が関連付けられています。デプロイに amazon コンテナー サービスを使用することを考えていますが、私が見る限り、docker ハブからイメージをプルするだけです。ECS が docker-hub からプルするのではなく、docker ファイルからイメージをビルドしてから、それらのコンテナーのデプロイを引き継ぐことを望んでいません。それは可能ですか? はいの場合、どのように。
amazon-web-services - cloudformation を使用して ecs クラスターを作成する方法は?
Cloudformation テンプレートを使用して、手作業で作成するのではなく、ecs クラスターを作成したいと考えていますが、まだ方法を見つけていません。Cloudformation テンプレートのリソースとして ecs クラスターを作成できる、これは単にまだ実装されていないのでしょうか。
amazon-web-services - AWS ECS コンテナ インスタンス
Ansible EC2 モジュールを使用して ECS コンテナー インスタンスを起動しようとしました。
私のプレイブックは次のとおりです。
その結果、2 つのインスタンスが起動されました。そのうちの1つは意図したとおりに構成されていますが、別のタグには設定するつもりのない次のタグがあります。
- aws:autoscaling:groupName
- aws:cloudformation:論理 ID
- aws:cloudformation:stack-id
- aws:cloudformation:スタック名
さらに、ECS ダッシュボードでこれら 2 つのインスタンスを見つけることができます。
ただし、クラスター「デフォルト」でのみ表示され、他のクラスターでは表示されません。
私が本当にやりたいことは次のとおりです。
- ECS コンテナ インスタンスを起動する
- コンテナー インスタンスをクラスターに登録する
上記の処理がaws-cliでできれば良いのですが、まずはコンテナインスタンスの挙動がおかしいことを理解して手動で行う必要があります。
amazon-web-services - ECS サービスが使用可能な EC2 インスタンスを ELB に登録できないのはなぜですか?
ECS に最適化された AMI を構築する EC2 起動構成があります。常に少なくとも 2 つのインスタンスを利用できるようにする Auto Scaling グループがあります。最後に、ロードバランサーを手に入れました。
ロード バランサーのインスタンス間でタスクを分散する ECS サービスを作成しようとしています。
ECS ロード バランシングのドキュメントを読んだ後、ASG が EC2 インスタンスを ELB に自動的に登録するべきではないことを理解しました。これは、ECS が処理するためです。したがって、私の ASG は ELB を指定していません。同様に、私の ELB には EC2 インスタンスが登録されていません。
ECS サービスを作成するときに、ELB を選択し、ecsServiceRole も選択します。サービスを作成した後、[ECS インスタンス] タブに使用可能なインスタンスが表示されません。また、サービスはタスクの開始に失敗し、非常に一般的なエラーが発生します...
リソースが見つからなかったため、サービスはタスクを配置できませんでした。
私はこれを約2日間行ってきましたが、どの構成設定が適切に構成されていないのかわかりません。これが機能しない原因について何か考えがある人はいますか?
2015 年 6 月 25 日の更新:
ECS_CLUSTER
これはユーザーデータの設定と関係があるのではないかと思います。
私の EC2 Auto Scaling 起動設定では、ユーザー データ入力を完全に空のままにしておくと、インスタンスはECS_CLUSTER
「デフォルト」の値で作成されます。これが発生すると、「default」という名前の自動作成されたクラスターが表示されます。このデフォルト クラスターでは、インスタンスが表示され、予想どおり ELB にタスクを登録できます。タスクが ELB に登録されると、私の ELB ヘルス チェック (HTTP) はパスし、すべてがうまくいきます。
しかし、そのECS_CLUSTER
設定をカスタムに変更すると、その名前で作成されたクラスターは表示されません。その名前でクラスターを手動で作成すると、クラスター内でインスタンスが表示されなくなります。このシナリオでは、タスクを ELB に登録することはできません。
何か案は?
deployment - Docker を使用した単一コンテナー アプリケーション用の ECS または EB?
Docker を使用して単一コンテナーの SailsJS アプリケーションをデプロイし (イメージ サイズは約 597.4 MB)、ElasticBeanstalk に接続しました。
しかし、ECS は Docker 用に構築されているため、EB よりも ECS を使用した方が良いのでしょうか?