2017-12-26 8 views
0

AWSをインフラ要件に使用しています。請求および原価計算の目的で、特定の用途向けにEC2インスタンスに転送されるデータの正確な量クライアント。このようなユーティリティがAWSで利用可能か、この問題にどう対処する必要がありますか?AWSで毎月クラウドを介して転送されるデータの量を計算する方法

私たちのアーキテクチャは簡単ですec2インスタンスの1つにNode.js®サーバのapiサーバがあります。これは別のec2のMongoDB®であるdbサーバと話します。これ以外にもWebアプリケーションサーバがあります。再度Node.js®に角ウェブアプリケーションを実行します。

現在、私たちはELBを使用していません。ログイン情報、つまり組織IDがJWT Tokenであるクライアントを特定しました。

+0

まず、システムのアーキテクチャとクライアントの接続方法について説明します。直接TCP接続を行うのか、HTTPを使用しますか? ELBを使用していますか?クライアントをどのように特定していますか?アクセストークン?ホワイトリストに登録されたIP?他に何か?これらの点のすべてが直接的に回答に影響します。 – kdgregory

+0

アーキテクチャに関する質問が更新されました。その他の情報が必要な場合はお知らせください。 – Jeet

+0

ELBを使用していますか?クライアントをどのように特定していますか?アクセストークン?ホワイトリストに登録されたIP?他に何か? – kdgregory

答えて

1

現在のアーキテクチャでは、クライアントIDを抽出し、要求(および/または応答)からcontent-lengthを抽出して永続ストレージに書き込む何らかの形式のノードミドルウェアを作成する必要があります。 AWSエコシステム内では、DynamoDB、またはKinesis、さらにはSQSに書き込むことができます。 AWSエコシステムの外では、永続ストアに情報を移動するために、ある種のログエージェントを使用してリレーショナルDBまたはコンソールログに書き込むことができます。

しかし、ここではデータをキャプチャすることはいくつかの問題があります。コンソールへのロギング以外

  • を、それが各要求に時間を追加します。
  • コンソールにログを記録すると、実際の要求と永続ストレージにログが配送されるまでの時間に時間差が生じます。その間隔でマシンがクラッシュすると、データが失われてしまいます。
  • AWSサービスを使用する場合は、レート制限(SQSがKinesisまたはDynamoDBより優れているエリアの1つです)を準備する必要があります。
  • 使用する方法にかかわらず、ログを処理するために追加のコードを記述する必要があります。

より良いアプローチは、クライアントIDをURLに追加し、ELBをフロントエンド負荷分散に追加することです。次に、request loggingをオンにして、AWS Athenaまたは他のツールを使用してログの分析を行ってください。

+0

これは私にとって理想的な解決策のように聞こえる。私はこれを実装し、更新します。そのような詳細な解決策を書く時間をとってくれてありがとう。 – Jeet

0

これらのEC2インスタンスをVPCで実行する場合は、VPC Flow Logsを使用して、各インスタンスが転送するデータの量を把握できます。

+1

これは良い答えになる可能性がありますが、説明が必要です。まず、フロー・ログがどのように見えるか(私はその例が文書にあると思います)と、OPが顧客に請求するために必要な情報をどのように抽出するのかを説明します。 – kdgregory

+1

ELBが混在している場合、分析がどのように変化するかを説明する必要があります。 – kdgregory

関連する問題