9

かなりの量のデータを取り込むプロジェクトのために、Amazon AWS をいじくり回してきました。サービスの大部分は非常に安価ですが、クラウド ウォッチのログ ストレージが請求額の大半を占めており、クラウド ウォッチのログ ストレージは合計 18 ドルの請求書のうち 13 ドルです。私はすでにログを削除しています。

クラウドウォッチの使い方

クラウドウォッチビル

ストレージからログを削除するにはどうすればよいですか (コンソールからグループを削除しても解決しないようです)、またはログのコストを下げます (この投稿では、$0.03/GB である必要があることが示されていますが、これはそれ以上です)。または、他の何か?

人々はどのような戦略を使用していますか?

4

3 に答える 3

15

すべてを記録しない

1 時間あたりにプッシュしているログの数を教えてください。

私が何年にもわたって学んだことの 1 つは、マルチレベルのログ記録は良いことですが (、、、、) DebugInfo2つWarnの重大な欠点があるということです。ErrorFatal

  • 実行時にこれらすべてのレベルを評価しなければならないアプリケーションの速度が低下します。たとえ「 log のみWarnErrorおよびFatal」、 Debug および Info はすべて実行時に評価されます!
  • ロギング コストが増加します (私は LogEntries を使用していましたが、devops の労働力と、LogStash + ElasticSearch のクラスターを実行するためのホスティング コストを使用するように移行したことで、さらに増加し​​ました)。

記録のために、私は以前のプロジェクトのロギングに月額 1000 ドル以上を支払いました。セキュリティ監査の PCI 準拠には 2 年間のログが必要であり、1 秒あたり数千のログを送信していました。

コンテキスト内ですべてをログに記録する方法についても話しました。

http://go-talks.appspot.com/github.com/eduncan911/go-slides/gologit.slide#1

それ以来、アプリケーションと関数、および本番環境での人件費とログ ストレージの全体的なコストをベンチマークした後、このスタンスから撤回しました。

最小限のエラー (エラー) のみをログに記録し、ログ レベルが設定されていない場合は実行時に評価を無効にするパッケージを使用しますGlog

また、Go 開発に移行して以来、非常に少量のコード (マイクロサービスやパッケージなど) と専用の CLI ユーティリティの戦略を採用しDebugましInfoた。 /代わりに各サービスから。さらに良いことに、イベントバスを監視するだけです。

最後に、これらの小さなサービスの単体テストを使用すると、コードがどのように動作するかを確認できます。テストで入力条件の良し悪しが示されるため、これらInfoのステートメントは必要ないためです。Debugこれらの Info ステートメントと Debug ステートメントを単体テストの内部に入れることができるため、コードは分野横断的な問題から解放されます。

これらすべては基本的に、最終的にログの必要性を減らします。

代替手段: ログをフィルタリングする

ログはどのように発送されますか?

Debug、Infos、およびその他の行をすべて除外できない場合は、別の方法として、ログを送信する前に を使用してログをフィルタリングするsedawk、別のファイルにパイプすることをお勧めします。

何かをデバッグする必要があるときは、sed/awk を変更して追加のログ情報を送信します。デバッグが完了したら、フィルタリングに戻り、例外やエラーなどの最小限のものだけをログに記録します。

于 2016-05-25T05:02:06.120 に答える
1

多くのログ データを保持しないように、ログ保持設定を変更する必要があるようです。

このページには、CloudWatch と CloudWatch Logs の現在の価格が一覧表示されています。過大請求されていると思われる場合は、AWS サポートに連絡する必要があります。

于 2016-05-24T16:15:06.140 に答える