CDP:Web Storage Archiveパターン

From AWS-CloudDesignPattern
Jump to: navigation, search

大容量データのアーカイブ化

Contents

解決したい課題

各サーバで大量に発生するログやバックアップファイルは、一定期間保存しておく必要がある。しかし、そのために大量のディスクを用意するのはコスト的に効率が悪く、成長しているシステムでは、保存するファイルサイズの見積もり(キャパシティプランニング)も難しい。 各サーバのログは短期でローテーションし、共有ストレージにログをアーカイブする方法で、各サーバに対してディスク拡張のメンテナンスを無くすことはできる。 しかし共有ストレージに対しては、同様のキャパシティプランニングに関する課題が残ってしまう。

クラウドでの解決/パターンの説明

各サーバのログは短期でローテーションを行い共有ストレージにログをアーカイブしても、共有ストレージに対するディスクのメンテナンスは必要となり、調達に伴うキャパシティプランニングも事前に行う必要がある。 しかしクラウドでは、実質キャパシティ無限のインターネットストレージが用意されていることが多く、このインターネットストレージをログのアーカイブ先として利用することができる。 この場合、ディスク拡張のメンテナンスと事前のキャパシティプランニングを考える必要が無くなり、容易に共有ストレージへのログアーカイブを実現することが可能となる。 (当然コストに関わるキャパシティプランイングは常に実施する必要がある)

実装

AWSでは実質キャパシティ無制限のS3と呼ばれるインターネットストレージが利用できる。そしてS3へのアップロードはs3cmdやs3syncなどのツールを利用することで、容易に行うこともできる。さらにS3は、高い可用性と非常に高い耐久性を持っており、ログの保存先としても信頼できるものである。

  • EC2上で出力される各種ログを、ログローテーションソフトウェア(logrotateなど)でローテーションさせる。
  • ローテーションのタイミングで、そのログをS3へ保存する。

(ログローテーションスクリプトにs3cmdやs3syncを用いたS3へのアップロード処理を記述する)

構造

6wNg0ISJczU5Pz1m-C4C10.png

利点

  • 耐久性が高く容量無制限のS3に保存することで、ディスクスペースを気にすることなく、また、障害による紛失の危険性もなくログを貯め続けることが可能。
  • バックアップファイルの保存に関しても同様の仕組みを利用することができる。
  • コストをEBSのサイズベースからS3の利用量ベースに変換でき、よりリーズナブルに運用が可能。

注意点

  • ログローテーションする前にEC2(EBSまで)障害があった場合は、以前のローテーションからのログは紛失してしまう。
  • Auto Scalingを利用している場合は、EC2のシャットダウン時にも該当ログをインターネットストレージに保存する必要がある。


寄贈したアーキテクト

Ninja of Three

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox