「AWSで」という枕詞がついているので、AWSに限らない一般的な手法と、AWSのソリューションを使う場合どういうものがあるかを書きます。
1. AWSで大量のサーバーを抱えなくて済む方法
一般的な考え方
これについては、AWS云々ではなくまずサーバの設計の方を検討すべきでしょう。
が、そもそも必要なサーバ数がどうしても減らせないならどうしようもありません。
サーバの数を減らしたいだけなら、複数のサイトを一つのサーバにまとめることも考えられます。
が、これは一長一短で、一つのサーバが落ちたりリソース不足に陥ると乗っている複数のサービスが影響を受けます。
AWSでできそうなこと
ちょっと難易度が高いですが、コンテナ化してECS(Fargateも使う?)をするなどすれば「サーバを抱えない」ということは満たせるかもしれません。
2. AWSで大量のサーバーを抱えたときの管理手段
一般的な考え方
手作業を減らし自動化することです。
既に身に沁みているかと思いますが、サーバが多数あるのにいちいち一つ一つSSHログインするのはあまりにも面倒です。
設定ファイルはgit管理するなどし、プロビジョニングツールを使って一斉に展開するのが一般的な手法かと思います。
シェルスクリプトを書いてもいいですが、AnsibleやChefなどサーバ管理には便利なツールがあります。
ケースによってはTerraformを使うのもいいでしょう。
また、管理することを減らすことも考えるべきでしょう。
↑に書いた自動化にも繋がりますが、サーバの設定を個別にいじらず、サーバを立ち上げる時は同じ状態のものが立ち上がるようにするなど。(Immutable Infrastructureという考え方です。)
設定は外部(gitなど)で管理します。
これを行うと、サーバになにか問題があっても立て直すだけでよくなります。
参考
Immutable Infrastructureはアプリケーションのアーキテクチャを変えていく、伊藤直也氏(前編)
コードによるインフラ構成管理はなぜ必要? 今さら聞けない「Infrastructure as Code」
AWSでできそうなこと
EC2インスタンスの管理にはSystems Managerという便利なサービスが使えます。
公式ドキュメントではハッキリ言って分かりづらいのでクラスメソッドさんの紹介記事を貼っておきます。
実に様々なことが行なえるのですが、Run Command、Automation、Session Managerだけでも使う価値はあるでしょう。
インフラ管理の効率化について書くと山ほどあってキリがないのでとりあえずこのへんで。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。