メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

サーバーアクセスのロギング

概要

バケットへのアクセスを求めるリクエストを追跡するため、サーバーアクセスのロギングを有効化することができます。各アクセスログレコードには、1 つのアクセスリクエストに関する詳細が含まれます。内容は、リクエスタ、バケット名、リクエスト時刻、リクエストアクション、応答ステータス、およびエラーコード(存在する場合)です。アクセスログ情報は、セキュリティとアクセス監査に役立ちます。また、顧客基盤について知り、Amazon S3 の請求を理解することにも役立ちます。

注記

Amazon S3 バケットでサーバーアクセスのロギングを有効化しても追加料金は発生しませんが、システムが配信するログファイルについては、通常のストレージ料金がかかります(ログはいつでも削除できます)。ログファイルの配信についてはデータ転送料金は算定されませんが、配信されたログファイルへのアクセスには、他のすべてのデータ転送と同様の料金がかかります。

ロギングはデフォルトでは無効になっています。ロギングを有効にするには、以下を実行する必要があります。

  • Amazon S3 によるアクセスログ配信の対象とするバケットにロギング設定を追加することにより、ログ配信をオンにします。このバケットをソースバケットと呼びます。

  • Amazon S3 Log Delivery グループに、アクセスログを保存するバケット上での書き込み許可を与えます。このバケットをターゲットバケットと呼びます。

ログ配信をオンにするには、以下のロギング設定情報を指定します。

  • Amazon S3 がアクセスログをオブジェクトとして保存するターゲットバケットの名前。ログは、ソースバケットを含め、所有するあらゆるバケットに配信することができます。ログを管理しやすくするため、ソースとは別のバケットにアクセスログを保存することをお勧めします。アクセスログをソースバケットに保存する場合は、ログオブジェクトを区別しやすくするため、すべてのログオブジェクトキーにプレフィックスを指定することをお勧めします。

    注記

    ソースバケットとターゲットバケットの両方が同じ AWS アカウントによって所有されている必要があります。

  • (オプション)すべてのログオブジェクトキーに割り当てる Amazon S3 のプレフィックス。プレフィックスを使用することにより、ログオブジェクトを見つけやすくなります。

    例えば、プレフィックス値として「logs/」を指定すると、Amazon S3 が作成するすべてのログオブジェクトのキーが、以下の例に示すように、「logs/」プレフィックスで開始されます。

    Copy
    logs/2013-11-01-21-32-16-E568B2907131C0C0

    キープレフィックスは、ログを削除するときに役立ちます。例えば、特定のキープレフィックスを使用して、Amazon S3 のライフサイクル設定ルールを指定することができます。詳細については、「ログファイルの削除」を参照してください。

  • (オプション)生成されたログに他のユーザーがアクセスできるようにするための許可。デフォルトでは、バケット所有者には常に、ログオブジェクトへの完全なアクセス権が与えられます。オプションで他のユーザーにもアクセス権を与えることができます。

ログオブジェクトのキーフォーマット

Amazon S3 では、ターゲットバケットにログオブジェクトをアップロードする際に、以下のオブジェクトキーフォーマットを使用します。

Copy
TargetPrefixYYYY-mm-DD-HH-MM-SS-UniqueString

キーの YYYY、mm、DD、HH、MM、および SS はそれぞれ、ログファイル配信日時の年、月、日、時、分、および秒を表します。

ある時点で配信されたログファイルには、その時点より前に書き込まれたレコードが含まれます。特定の期間のすべてのログレコードが配信されたかどうかを知る方法はありません。

キーの UniqueString コンポーネントは、ファイルの上書きを防止するためのものです。意味はありませんので、ログ処理ソフトウェアはこれを無視する必要があります。

ログの配信方法

Amazon S3 は定期的にアクセスログレコードを収集し、レコードをまとめてログファイルを作成し、そのログファイルを、ログオブジェクトとしてターゲットバケットにアップロードします。複数のソースバケットでロギングを有効化し、それらすべてに同じターゲットバケットを指定した場合、ターゲットバケットにはそれらすべてのソースバケットのアクセスログが格納されますが、各ログオブジェクトは、特定のソースバケットのアクセスログレコードをレポートします。

Amazon S3 は、Log Delivery グループと呼ばれる特別なログ配信アカウントを使用してアクセスログを書き込みます。このような書き込みは、通常のアクセスコントロールの制約に従います。ターゲットバケットのアクセスコントロールリスト(ACL)に許可のエントリを追加して、Log Delivery グループにバケットへの書き込みアクセス権を与える必要があります。Amazon S3 コンソールを使用してバケットへのロギングを有効化した場合は、ソースバケットのロギングの有効化と、Log Delivery グループに書き込みを許可するためターゲットバケットの ACL 更新が行われます。

ベストエフォート型のサーバーログ配信

サーバーアクセスログレコードの配信は、ベストエフォートで行われます。バケットのログ配信が適切に設定されている場合、ほとんどのリクエストでログレコードが配信され、ほとんどのログレコードは記録後数時間以内に配信されます。

ただしサーバーログの完全性や適時性は保証されません。リクエストのログレコードが、リクエストが実際に処理されてからかなり後に配信されたり、配信すらされないこともあり得ます。サーバーログの目的は、バケットに対するトラフィックの特性を理解することです。すべてのリクエストを完全に報告するためのものではありません。ログレコードが失われることはまれですが、すべてのリクエストが完全に報告されるとは限りません。

サーバーのログ作成機能はベストエフォート型であるため、AWS ポータルで利用できる使用状況レポート(AWS マネジメントコンソール でレポートされる請求およびコスト管理レポート)には、サーバーログに記録されていないアクセスリクエストが含まれる場合があります。

バケットのロギングステータスの変更が有効になるには時間がかかります。

バケットのロギングステータスの変更がログファイルの配信に反映されるまでには時間がかかります。例えば、バケットのログを有効にする場合、その後数時間に行われるリクエストは記録されることもあれば、されないこともあります。ログの配信先バケットをバケット A からバケット B に変更した場合、その後数時間は引き続きバケット A に配信されるログもあれば、新しい配信先バケット B に配信されるログもあります。どの場合も、最終的には新しい設定が有効になるので、他の操作は不要です。

サーバーアクセスのロギングの詳細については、以下のトピックを参照してください。

このページの内容: