この質問が間違ったフォーラムに掲載された場合は、事前にお詫び申し上げます。これが最初の質問です!
私の顧客はホスティングにAlibaba Cloud(中国のAliaba Cloud)を使用しています。次の構造を使用して、サーバーにマイクロサイトを展開しました。
microsite.com -> CDN1 -> SLB -> 2x ECS -> DB ECS
oss.microsite.com -> CDN2 -> OSS
SLBの下のECSインスタンスには固定セッションがあり、HTML応答のみを提供します。他のすべてのファイル(js、cssなど)はOSSドメインで提供されています。また、これらのインスタンスはデータベースを使用して、セッションデータ(たとえば、ユーザーのIPアドレス、最後のアクティビティのタイムスタンプなど)を保存します。
3週間後、データベースインスタンスのストレージ容量が40 GB不足しました。見てみると、2,300万個のセッション項目がありました。
ECSインスタンスは100〜150未満の年中無休の同時接続を維持しますが、実際のユーザー(GAを使用した追跡)はおそらく1日10〜15人です(活動はまだ開始されていません)。
顧客IT部門では、これは「はるかに深刻」なので、「攻撃」ではなく「正常」と言ったので混乱しています。彼らはトラフィックがどこから来るのか説明しませんでした。ただし、アクセスログ(tail -f access.log)に永続的なリクエストストリームを表示できます。
昼でも夜でもSSH経由でログインするたびに常に存在します。マイクロサイトを開いたり、クライアントで誰かを開いたりしない限り、GAは空です(リンクがまだメディアにプッシュされていないため)。
これが何であるかを提案する人はいますか?私が見ると、これはサーバーのリソースを枯渇させようとしているか、失敗したDDoSのようです。ただし、まだ100〜200の同時接続があるため、Alibaba Cloudはファイアウォール/セキュリティルールを有効にしていません。 Alibaba Cloudコンソールにアクセスできず、SSHを介してのみサーバーに接続できます。
私はこれが「正常」であることを信じることができませんでした。 CloudFlareには、ボット保護、JavaScriptチャレンジなどのオプションがあります。アリババクラウドには何もないようです。それとも、単に気にしません。
いくつかの技術情報:
すべてのECSインスタンスはUbuntu 20.04で実行されます。 Webサービスは、PHP7.4およびPHP7.4-FPMを実行するApache2です。データベースインスタンスはMySQL8です。データベースインスタンスはWebサーバーインスタンスの接続のみを許可し、データベースインスタンスはSLB(AWSのElastic Load Balancerと同じLoad Balancer)からのHTTP接続のみを許可します。これは、すべてのトラフィックがSLBの下のインスタンスに到達するには、まだSLBを通過する必要があることを意味します。
このようなことを経験した人はいますか?それができない場合、私のバックエンドをどのように保護できますか?
答え1
いいですね。問題を見つけたので、DDoSや攻撃がなかったので問題を終了しました。
クライアントITはロードバランサーを機関銃サーバーインスタンスとして設定し、アクセスログに表示されるすべてのトラフィックは実際にヘルスチェックです。
各確認時間を合理的な2〜3分に設定すると、これらの問題は消えます。
みんなにご迷惑をおかけして申し訳ありません。