QA@IT

AWSでのログの運用方法、保存場所

7349 PV

現在AWSで運用中のEC2のインスタンスで日次でS3にログをS3syncで保存しているのですが、
これだとインスタンスが異常終了した時などにログが残らない場合があるのでEBSに保存を考えています。

起動時に自動でEBSのインスタンスを作成しアタッチする仕組みは作ったのですが
この方法だとsyslogなどの/var/log以下に出力されるログなどをEBSのボリュームに保存する適切な方法などがあるのでしょうか?
EBSをアタッチした段階ですでにインスタンスのボリュームにログが書きこまれてしまうので、
そのログなどをどうやったらスマートに残せるかを悩んでます。

いい方法などがあれば教えていただけないでしょうか?

  • 自己完結になりますが、
    結局EBSに保存する仕組みにしました。
    起動時にEBSのボリュームをマウントして
    /var/log 以下をリンクに張り替えてしまってEBSに書きこむような仕組みにしました。
    なんらかの理由でEBSがマウントできない場合は
    インスタンスのディスク領域に書き込むような方法をとりました。
    ありがとうございます。
    -

回答

Twitterの会話でオススメしたのでこちらにも書いておきます。

必要なログをfluentdを使ってS3に保存しておくのはどうでしょう。ローカルにバッファしたログをS3に送信するプラグインもあります。あるいはmongodbやredisを経由してそこからS3にバックアップしてもいいのですが、単純なやり方の方が好ましいでしょう。いずれにせよ比較的高価なEBSを使わないで実現できます。AWS用のイメージを作成する際にfluentdを組み込んでおけばフロントエンドをスケールさせた際のログ管理も簡単なので、要件を満たすのではないかと思います。

編集 履歴 (0)
  • ありがとうございます。
    fluentdも面白そうな仕組みでしたが
    あんまり新しいことやるとハマりそうなので今回は見送りました!
    複数台のログを収集する場合はチャレンジしてみたいと思います。
    -

自己完結になりますが、 結局EBSに保存する仕組みにしました。 起動時にEBSのボリュームをマウントして /var/log 以下をリンクに張り替えてしまってEBSに書きこむような仕組みにしました。 なんらかの理由でEBSがマウントできない場合は インスタンスのディスク領域に書き込むような方法をとりました。 ありがとうございます。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。