AWS: 水平スケーリングとして、単一の製品に対して複数の EC2 インスタンスと RDS を使用することを検討できますか?

AWS: 水平スケーリングとして、単一の製品に対して複数の EC2 インスタンスと RDS を使用することを検討できますか?

Stack Overflowや他のブログで読んだ内容は、

https://stackoverflow.com/questions/11707879/difference-between-scaling-horizo​​ntally-and-vertically-for-databases/11715598#11715598

http://ht.ly/cAhY6

https://hackernoon.com/database-scaling-horizo​​ntal-and-vertical-scaling-85edd2fd9944

https://stackoverflow.com/questions/27157227/can-relational-database-scale-horizo​​ntally

コンセプト: マルチテナント Web アプリ (CRM)

上記のブログをまとめると、混乱してしまいました。次のようなシナリオがあります。

  • 1 つの製品に複数の EC2 インスタンスと RDS インスタンスを用意する - ここでは、1 つの EC2 インスタンスに 1 つの RDS とフェイルオーバー プランを用意することを計画しました。図を見てみましょう。25 のテナントのリクエストは 1 つの EC2 インスタンスで処理され、データは対応する RDS で管理されます。別の 25 のテナントのセットには、別の EC2 インスタンスと RDS が管理されます。各 EC2 インスタンスは同じコード ベースを持ちます。

これは水平スケーリングだと言えますか? そうでない場合、正確な水平スケーリングを実現するには何をすべきでしょうか?

答え1

水平スケーリング通常は、艦隊を持っていることを意味します区別のないサーバー各サーバーがサービスを提供できる場所どれでもリクエストに応じて、同じサーバーを追加または削除することで、容量を拡大または縮小します。

垂直スケーリング1 台のサーバーを、より多くの CPU とメモリを備えたより大きなインスタンスなど、より大きな容量にアップグレードするだけです。

AWS での水平スケーリングでは、通常、次のようになります。

  • 艦隊のステートレスサーバーすべて同じ方法で設定されており、ユーザーデータ追加の構成なしで自動的に追加でき、データを失うことなくいつでも削除できます。
  • ユーザーデータはデータベース(例:RDS)、共有ファイルシステム(例:EFS)またはオブジェクトストレージ(例: S3) 実際のサーバー上ではありません。
  • ロードバランサー負荷をサーバー間でほぼ均等に分散する(例:EC2インスタンス、Fargateコンテナなど)
  • 自動容量スケーリングつまり、実際の負荷に基づいてサーバーを追加および削除します。

定義は様々ですが、単に別のインスタンスを追加してサポートするだけで、セットアップを水平スケーリングと呼ぶことはできません。独立した作業負荷(他のテナント セット) であり、最初のノードと同じワークロードをサポートするために容量が追加されていません。

お役に立てれば幸いです :)

関連情報