Amazon Cloudwatch は、EC2、ロードバランサー、elasticache、RDS データベースなどを監視するための非常に便利なメトリクスを提供し、あらゆる範囲の基準に対してアラームを設定できるようにします。私のS3も監視するように設定する方法はありますか?または、S3 リソースの POST/GET リクエストの数とデータ量を監視するのに役立つ他の監視ツール (単にログを有効にする以外に) はありますか? また、アクティビティのしきい値やデータストレージの増加に対してアラームを提供するには?
5 に答える
AWS S3 はマネージド ストレージ サービスです。AWS CloudWatch for S3 で利用できる唯一のメトリクスはNumberOfObjects
とBucketSizeBytes
です。S3 の使用状況をよりよく理解するには、追加の作業を行う必要があります。
私は最近、あなたが求めていることを正確に実行する AWS Lambda 関数を作成しました。ここで入手できます。
https://github.com/maginetv/s3logs-cloudwatch
これは、S3 サーバー側のログ ファイルを解析し、メトリクスを AWS Cloudwatch に集約/エクスポートすることによって機能します (CloudWatch では、カスタム メトリクスを発行できます)。
この関数を AWS アカウントにデプロイした後に AWS CloudWatch で取得されるグラフの例は次のとおりです。
RestGetObject_RequestCount
RestPutObject_RequestCount
RestHeadObject_RequestCount
BatchDeleteObject_RequestCount
RestPostMultiObjectDelete_RequestCount
RestGetObject_HTTP_2XX_RequestCount
RestGetObject_HTTP_4XX_RequestCount
RestGetObject_HTTP_5XX_RequestCount
+ many others
メトリックは CloudWatch にエクスポートされるため、それらのアラームも簡単に設定できます。CloudFormation テンプレートは GitHub リポジトリに含まれており、この機能を非常に迅速にデプロイして、S3 バケットの使用状況を可視化できます。
編集 2016-12-10:
2016 年 11 月、AWS は必要に応じて有効にできる CloudWatch に追加の S3 リクエスト メトリクスを追加しました。これには、、、、、などのメトリクスが含まれます。このAllRequests
機能の詳細については、Amazon CloudWatch ドキュメントによるメトリクスのモニタリングを参照してください。GetRequests
PutRequests
DeleteRequests
HeadRequests
また、CloudWatch でこれを行う方法を見つけることもできませんでした。2012 年 4 月からのこの質問は、Derek@AWS によって、CloudWatch で S3 がサポートされていないと回答されました。https://forums.aws.amazon.com/message.jspa?messageID=338089
私が考えることができる唯一のことは、S3 アクセス ログをログ サービス (Splunk など) にインポートすることです。次に、ログから解析したデータを投稿するカスタム クラウド ウォッチ メトリックを作成します。しかしその後、アクセス ログのポーリングを除外する必要があり、また、S3 ではなく Splunk でアラームを作成することもできます。
ユース ケースが、使用量が多すぎるときに単にアラートを出すことである場合は、S3 の使用に対してアカウント請求アラートを設定できます。
これは、アクセスを追跡する場所に依存する可能性があると思います。つまり、http/https リクエストの外部から S3 オブジェクトの使用状況を測定/監視しようとしている場合、S3 ロギングを有効にしてから分析のために splunk (または redshift) にインポートする場合の Anthony の提案が機能する可能性があります。リクエストの請求状況も毎日見ることができます。
独自のアプリケーション内から使用状況を測定しようとしている場合は、AWS SDK クラウドウォッチ メトリクスがいくつかあります。
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/metrics/package-summary.html
と
S3 は管理されたサービスです。つまり、システム イベントに基づいてアクションを実行し続ける必要はありません (サービスの使用料を支払う余裕がある限り)。CloudWatch の精神は、実行を維持するためにアクションを実行する必要があるサービスの監視を支援することです。
たとえば、EC2 インスタンス (自分で管理する) は通常、過負荷になったとき、使用率が低いとき、またはクラッシュしたときにアラートを出すために監視する必要があります。ある時点で、新しいインスタンスをスピンアップしてスケールアウトしたり、未使用のインスタンスをスピンダウンしてスケールインしたり、クラッシュしたインスタンスを再起動したりするためにアクションを実行する必要があります。CloudWatch は、これらのリソースをより効果的に管理する作業を支援することを目的としています。