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 は前の質問にどのように影響しますか?