
私はクラウド プラットフォーム インフラストラクチャについてはほとんど詳しくありません。説明を簡単にするために、ここで取り上げるプラットフォームは AWS と Google Cloud の 2 つだけだとします。
ここで、オンライン ゲームのオープン API を介して主に HTTP 応答を処理する HTTP サーバーがあるとします。平均応答サイズが 10 KB で、1 日に約 100 万の応答が送信されるとします。
私の理解では、月額料金は GB 単位で転送されるデータ量によって決まります。問題は、誰かが私のサーバーから繰り返し応答を受け取り続けるスクリプトを作成すると、料金が急騰してしまうことです。
良いサーバーならこの問題は避けられると思いますが、この問題をどうやって避けるかはよく分かりません。私の観察によると、多くの実際の大規模なオンラインゲーム API サーバーは、応答サイズが数 KB しかない場合、応答サイズを最適化しません。何らかの「月額固定料金または1秒あたりのデータ転送量に基づく支払い「転送されるデータの量に依存しない出来事が起こります。」
しかし、プラットフォームの Web サイトでそのようなオプションに関する参照を見つけることができませんでした。
ご協力いただければ幸いです。
答え1
クラウド サービスは、その使用のために特別に構築されたプロジェクトに素晴らしいメリットをもたらします。アプリケーション/Web ホスティングについて言えば、クラウドの価格モデルは、そのアプリケーション/Web サイトを使用するユーザーから主な収入を得るビジネスに適しています。
それが主な収入源でない限り (その場合は、生の Web トラフィックと利益を簡単に変換できるはずです)、クラウド ホスティングはまったく適さない可能性があります。
アプリケーションがクラウド インフラストラクチャ用に構築されていない場合 (前述のゲーム サーバーなど)、DevOps 作業に一定の時間を費やさない限り、単一インスタンスの VPS/専用ホスティングに比べてメリットがないことに注意してください。説明した帯域幅への攻撃を効果的に防ぐには、同じ DevOps 作業が必要です。
この種の攻撃にはすでに名前が付けられているので、「ウォレットの拒否「
答え2
どちらのクラウド ベンダーも、XX 帯域幅を固定価格で提供していません。価格は消費量に基づいています。
リソースへのクライアント アクセスを制御するのはお客様の責任です。
これは、認証やスロットル、その他のテクノロジを導入することを意味しますが、その方法と使用する製品を選択することになります。
クラウド サービスは、家を建てることによく似ています。ホーム デポでは、釘や木材を無制限に提供してくれるわけではありません。家を建てるのに必要なものを購入します。その後、家を暖める燃料を購入します。
私は最初からクラウドで働いています。それ以前はプライベート データ センターでした。あなたの懸念はあり得ますが、現実の世界では、ほとんどの人がクラウドにデプロイするのを止めるほどのことは起こりません。あなたの帯域幅を消費するには、私が利用可能なネットワーク帯域幅を消費する必要があります。ハッカーがあなたをダウンさせたい場合、ハッカーにとってはるかに安価で、誰がどこにいるのかを追跡するのがより困難な、より厄介な方法がたくさんあります。
答え3
サーバー側でこれを回避する方法は次のとおりです。
- リクエストには認証が必要です。つまり、追跡できるようにしてください誰がこのような攻撃を行っているアカウントを特定し、そのような攻撃を禁止すべき違反行為とします。その後、アカウント作成を適切にロックダウンして、禁止された後に新しい認証情報を簡単に取得できないようにします。
- レート制限を実装します。通常、これは複数の段階で行われます。多くの場合、認証されたアカウントごとにレート制限が行われます (すべてのユーザーにレート制限が適用される)、API エンドポイントごとにレート制限が行われます (頻繁に呼び出されない計算コストの高いエンドポイントが DoS 攻撃に悪用されないようにするため)、および IP ごとにレート制限が行われることもあります。他の理由でもこれを行う必要があります (最も顕著なのは、スマート DoS 攻撃やゲーム ロジックに対するタイミング ベースの攻撃の可能性から保護するため)。
- プロトコルで適切な圧縮を利用します。指定した応答サイズの場合、Brotli (または snappy や LZ4) を検討する価値があるでしょう。パフォーマンスのニーズを満たすのに十分な速度で、応答サイズを数 KB 削減できます。また、毎月数百万件のリクエストを処理する場合、節約されるデータ量は無視できない量になります。
他の場所で緩和するとなると、そう簡単にできるものではありません。あなたがおっしゃっているような完全なクラウドプロバイダーは、開発者が大金を費やすことなく簡単に実験できるように、最低限の「無料枠」を提供することがよくあります。たとえば、AWSの場合は、送信5GB/月(受信データにはまったく課金されません)だと思います。あなたがおっしゃっているように、このような完全なクラウド設定で使用をブロックできるのは、これが限界です。なぜなら、ほとんどのユーザーは、ちょうど使用量は「一括」購入ではなく、比例配分されます。
ただし、本当に大きな容量が必要な場合は、AWS Lightsail を検討してください。ここでは、固定数の CPU、固定量の RAM と統合ストレージ、および指定されたネットワーク使用量の上限を含む仮想ノードのパッケージ プランを購入します。請求サイクルでその上限を下回るネットワーク使用量には料金はかかりませんが、上限を超えた場合は、完全なクラウド セットアップと同様に比例配分されます。GCP に同等のものがあるかどうかはわかりませんが、ほとんどの VPS プロバイダー (Vultr、Linode、Digital Ocean など) は、主要なサービスで同じ方法で動作するため、この方法を選択する場合は、代わりにそちらを検討することをお勧めします。これらのネットワーク上限は通常、数テラバイトの範囲で、使用量が多い方向のみが会計のために追跡されるのが一般的です。