web-dev-qa-db-ja.com

S3(またはその他のAWSサービス)のログファイルに追加する

AWS S3(またはここで役立つ他のAWSサービス)でログファイルを作成する必要があります。 AFAIUS3の既存のログファイルに行を追加する方法はありません。つまり、新しいメッセージが届くたびにログ全体を取得して再送信するか、メッセージごとに新しいオブジェクトを作成する必要があります。後者のオプションは、データを取得するときに複雑になります。

私はたくさんのログメッセージを持っています、そしてそれらを失わないことが重要なので、それらをサーバーメモリにバッファリングして時々S3に送信するオプションはありません。

どのAWSサービスが私の最良の選択肢であるか(コストの節約の観点からも)。

15
Yaron Naveh

あなたが探しているのはEBS( Elastic Block Store )と呼ばれています。

EBSドライブを任意のサーバーに接続し、そこでロギングを開始できます。サーバーが停止した場合でも、EBSディスクはそのまま残り、後でデータを確認できます。

さらに良いことに、(EBSドライブを使用して)中央のsyslogサーバーを作成し、すべての(ステートレス)アプリサーバーにログを送信させるだけです。

EBSドライブがいっぱいになったら、日/週などをS3ログにアーカイブします。これにより、かなり大きなファイルをS3に保存できます(必要に応じて圧縮も実行できます)。

19

AWS SimpleDBは、あなたが望むことをします:

http://aws.Amazon.com/simpledb/usecases_logging/

Amazon SimpleDBを使用すると、本番データベースの実行に必要な作業を完全にオフロードできるため、多くの開発者は、条件やイベント、ステータスの更新、定期的なアクティビティ、ワークフロープロセス、またはデバイスとアプリケーションに関する情報をログに記録するための理想的なロータッチデータストアであると考えています。状態。 Amazon SimpleDBを使用すると、これらのデータログを費用効果の高い方法で「設定して忘れ」、次のようなさまざまな目的に使用できます。

監視または追跡メータリングビジネス分析の傾向監査アーカイブまたは規制コンプライアンスアプリケーションの例は次のとおりです。

サーバーログを一元的に保存して、実行中の各サーバーで消費するスペースを削減します。運用メトリックまたは進行中のパフォーマンステストの結果をログに記録して、後で分析します。アプリケーションまたはネットワークデバイスのアクセスエントリまたは構成変更を監査します。環境条件(温度、圧力レベル、湿度)をキャプチャして監視します。など)さまざまな場所での特定の条件に対するアラートのプログラミングオブジェクトまたはワークフロー内のアクティビティのプロセスステータスに関する地理位置情報のログ記録と追跡Amazon SimpleDBの複数の属性により、データログの魅力的なデータストアになります。

高可用性を備えた中央–以前にデータログが複数のデバイス/オブジェクト、アプリケーション、またはプロセスサイロにローカルでトラップされていた場合、クラウド内の1か所でデータに一元的にアクセスできるという利点があります。さらに、Amazon SimpleDBはデータを自動的かつ地理的に冗長に複製して、高可用性を確保します。つまり、一元化されたオンプレミスソリューションとは異なり、Amazon SimpleDBで単一障害点を作成することはなく、必要なときにデータがそこにあります。すべてのデータは、1つのソリューションでWebサービス要求を介して保存し、任意のデバイスからアクセスできます。ゼロ管理–単純なウェブサービスリクエストでデータアイテムを保存し、残りはアマゾンウェブサービスが処理します。サービスの性質上、設定して忘れることは、データログを保存および維持するためにデータベース管理に時間を費やしていないことを意味します。

費用対効果– Amazon SimpleDBは、データログの保存とクエリに安価な料金を請求します。消費するリソースに対してのみ料金を支払うため、独自の容量計画を行ったり、データベースの負荷について心配したりする必要はありません。このサービスは、要求の量に応じて応答するだけで、実際に消費されたリソースに対してのみ課金されます。 AmazonSiの詳細については

6
E.J. Brennan

あなたが探していることはS3で可能です。 S3は、データの保存を開始するために完全なファイルを持っている必要はありません。マルチパートアップロードを使用して、一度にチャンク(5MBブロック)を保存できます。終了したら、たとえば1日の実行が完了したら、最後のブロックを送信して、マルチパートアップロードを閉じることができます。翌日からロギングを開始します。

S3では最大10,000個のパーツを使用できます。したがって、5MiBのパーツサイズを選択することにより、最大50GiBの動的ファイルをアップロードできます。ほとんどのユースケースには十分なはずです。

S3マルチパートアップロードを開始します。バッファーがS3のチャンクサイズの下限(5MB)に達するまで、データをバッファーに収集します。バッファの構築中にMD5チェックサムを生成します。そのバッファをパーツとしてアップロードし、ETagを保存します。データのEOFに達したら、最後のチャンク(5MiBより小さくすることができます)をアップロードします。マルチパートアップロードを完了します。

これは、EC2インスタンスまたはEBSストレージのコストがかからないため、はるかに優れたソリューションです。

3
T.Philip
1
yegor256

これを行う最も簡単な方法は、ディスクにログを記録してから、適切な間隔でログをローテーションして送信することです。

スポットインスタンスまたはインスタンスに裏打ちされたインスタンスの場合、これは少し複雑になる可能性があります。

0
datasage