Application Load Balancer のアクセス ログを有効にする方法

Application Load Balancer Noakusesu Roguwo You Xiaonisuru Fang Fa



Application Load Balancer (ALB) は、トラフィックをさまざまなサーバーまたはノードに効率的に分散します。これにより、アプリケーションの崩壊が防止され、クライアントに高可用性、容量の増加、およびパフォーマンスの向上が提供されます。さらに、アプリケーションロードバランサーへのリクエストも「 アクセスログ ”。ユーザーは、トラフィック パターンの分析や問題のトラブルシューティングのために、ダッシュボードを通じてこれらのビュー ログにアクセスできます。

概要

この記事では、次の側面について説明します。

アクセスログとは何ですか?

アクセスログ です オプション機能 ロード バランサーに送信されたリクエストに関する詳細情報を取得するアプリケーション ロード バランサーの。この詳細情報には、リクエストを受信した日時、クライアント IP アドレス、レイテンシ、ポートなどが次の形式で含まれます。 「アクセスログファイル」 。 Application Load Balancer (ALB) では、この機能を手動で有効にする必要があります。これらのアクセス ログは S3 バケットによって受信され、ユーザーはそこからアクセスして表示できます。







アクセスログファイルとは何ですか?

アクセスログには次の内容が含まれます 「アクセスログファイル」 これらは 5 分ごとにロード バランサー ノードごとに公開されます。サイトのトラフィックが多い場合は、複数のログが存在する可能性があります。アクセス ログ ファイルは、指定された形式に従います。



バケツ [ / 接頭語 / AWSログ / AWS - アカウント - ID / 弾性負荷分散 / 地域 / yyyy / んん / DD / AWS - アカウント - id_elasticloadbalancing_region_app. 負荷 - バランサー - id_end - time_ip - アドレスランダム - 弦。 ログ ガズ
  • バケツ ”: フィールドには、ログ ファイルを受信するバケットの名前が含まれます。
  • 接頭語 ”: はオプションです。 S3 バケットの作成時にユーザーが指定したプレフィックスがある場合、このフィールドには値が含まれます。プレフィックスには「」を含めることはできません AWSログ 」というキーワード。
  • 「aws-アカウントID」 : 所有者の AWS アカウント ID が含まれます。
  • 地域 ”: フィールドにはロードバランサーのリージョンが含まれます。
  • yyy/mm/dd ”: ログが配信されたデータを指定します。
  • ロードバランサID ”: ロードバランサーの固有の ID を示します。さらに、ID 内のスラッシュはピリオド (.) に置き換えられます。
  • 終了時間 ”: ロギング間隔の終了日時を指定します。
  • IPアドレス ”:ロードバランサが動作するIPアドレスを指定します。
  • ランダム文字列 ”: システムによって生成されたランダムな文字列が含まれます。

アクセスログエントリとは何ですか?

これらのアクセス ログ エントリには、Application Load Balancer に対して行われたすべてのリクエストに関する情報が含まれています。このような単一のリクエストは、 「ログエントリ」 。これらのログ エントリには、不正な形式のリクエスト、つまりロード バランサ (ALB) に送信されなかったリクエストも含まれています。ロード バランサーに対して行われたリクエストに Web ソケットが含まれる場合、このログ エントリは接続が閉じられたときにのみ記録されます。



アクセスログファイルはどのように処理されるのですか?

デフォルトでは、 アクセスログファイル 圧縮された 。したがって、情報を表示するには、これらのファイルをダウンロードするときに、まず圧縮を解除する必要があります。ただし、S3 コンソールを使用すると、ユーザーはこれらのログ ファイルの情報を直接表示できます。





これら ログファイル に対して行われたリクエストの結果として生成されます。 ロードバランサ 。現在 Web サイトのトラフィックが多い場合、ロード バランサーによって生成されたログ ファイルにはギガバイト単位のデータが含まれます。このような大量のデータは、 処理された を使用して 分析ツール Amazon Athena、Splunk、Sumo ロジックなど。

Application Load Balancer のアクセス ログを有効にする方法は?

次の方法を使用して、アクセス ログをさまざまなリージョンに設定できます。



  • 方法 1: 2022 年 8 月より前に利用可能なリージョンのアクセス ログ
  • 方法 2: 2022 年 8 月以降に利用可能なリージョンのアクセス ログ

方法 1: 2022 年 8 月より前に利用可能なリージョンのアクセス ログ

2022 年 8 月より前に利用可能であったリージョンのアクセス ログを構成するには、以下の手順に従います。

  • ステップ 1: S3 バケットを作成する
  • ステップ 2: ロードバランサ属性を編集する
  • ステップ 3: 検証

ステップ 1: S3 バケットを作成する

最初のステップは、ALB のアクセス ログを有効にするための S3 バケットを作成することです。この目的のために、S3 バケット サービスにアクセスするには、 AWS マネジメントコンソール:

から S3 ダッシュボード 、 クリック 「バケットを作成」 ボタン:

の中に 一般的な構成 、「」内の S3 バケットにグローバルに一意の識別子を提供します。 バケット名 ' テキストフィールド。 「」を考慮することが重要です。 AWS リージョン ” は、ロード バランサーのリージョンと同様である必要があります。

残りの設定はデフォルトのままにし、「」をクリックします。 バケットの作成 インターフェイスの下部にある「」ボタン:

バケツ は正常に作成されました:

から S3バケットダッシュボード をタップし、「 S3 ” バケット名を使用して権限を設定します。

から S3バケットコンソール 、 クリック ' 権限 ' タブ:

インターフェースを下にスクロールして「」をクリックします。 編集 「」ボタンから バケットポリシー ' セクション:

の中に 編集者 、以下のポリシーを貼り付け、次の変数を置き換えます。

{
'バージョン' : 「2012-10-17」
'声明' : [
{
'効果' : '許可する'
'選考科目' : {
「AWS」 : 「arn:aws:iam::elb-アカウントID:root」
}
'アクション' : 「s3:PutObject」
'リソース' : 「私のs3アーン」
}

}
  • elb アカウント ID : このフィールドに、AWS リージョンの ID を入力します。これらの ID は、 AWS の公式ドキュメント 。 「」まで下にスクロールします。 2022 年 8 月より前に利用可能なリージョンのアクセス ログ 」セクションとポリシーの下に、それぞれの ID を持つリージョンが記載されています。

  • my-s3-arn : S3 バケットの ARN は、次の 2 つの形式を使用して置き換えることができます。
    • 形式 1: プレフィックス付きの ARN
    • 形式 2: プレフィックスのない ARN

形式 1: プレフィックス付きの ARN : バケットにプレフィックス値が含まれる場合は、この形式に従います。

arn:aws:s3:::バケット名 / 接頭語 / AWSログ / aws アカウント ID /*
  • バケット名 : このフィールドをバケットの元の名前に置き換えます。
  • 接頭語 : バケットにプレフィックスが含まれている場合は、プレフィックスを指定します。この形式で指定されるため、プレフィックスの値は必須です。
  • aws アカウント ID: このフィールドに AWS アカウント ID を入力します。この目的のために、インターフェイスの左上隅に記載されている AWS アカウントの名前をタップします。ドロップダウン メニューからアカウント ID をコピーします。

形式 2: プレフィックスのない ARN : この形式は、バケットにプレフィックスが含まれていない場合に使用されます。指定されたすべてのフィールドは、上記の ARN に記載されているものと同じままになります。唯一の違いは、この「 RNA 」には「プレフィックス」フィールドが含まれていません。

arn:aws:s3:::バケット名 / AWSログ / aws アカウント ID /*

ここで、 ポリシー されています 交換された :

インターフェイスの一番下までスクロールし、 '変更内容を保存' 変更を適用するボタン:

ポリシー 編集されました 無事に :

ステップ 2: ロードバランサ属性を編集する

から EC2ダッシュボード 、 クリックしてください 「ロードバランサー」 の下のオプション 「ロードバランシング」 ナビゲーション ペインのセクション:

から ロードバランサーダッシュボード 、ロード バランサーの名前をクリックして、 アクセスログを有効にする 。このデモでは、ロード バランサーには次のものがあります。 すでに作成されています そして実行中:

「」の下に、 詳細 」セクションでは、複数の異なるオプションが利用可能です。クリック ' 属性 ' タブ:

から ' 属性 「」タブで「」をクリックします。 編集 ' ボタン:

次のインターフェイスで、「」まで下にスクロールします。 監視 ' セクション。 「」を切り替えます アクセスログ 」ボタンを押して有効にします。 アクセスログ機能 。次に、 「S3を閲覧」 ボタンをクリックしてバケットを選択します。

をクリックした後、 「S3を閲覧」 ボタンを押すと、ポップアップウィンドウが表示されます。 S3 バケットを選択し、「」をクリックします。 選ぶ ' ボタン:

バケットを追加した後、「」をクリックします。 変更内容を保存 ' ボタン:

AWS は、 確認メッセージ アクセス ログへの S3 バケットの構成が成功すると、次のようになります。

ステップ 3: 検証

バケットが追加されたかどうかを確認するには、S3 ダッシュボードにアクセスしてバケットを選択します。

ここで、このバケットにはフォルダーが含まれています 「AWSログ/」 。このフォルダーには、アクセス ログに関連するすべての情報が含まれます。

方法 2: 2022 年 8 月以降に利用可能なリージョンのアクセス ログ

2022 年 8 月以降に利用可能なリージョンのアクセス ログを有効にするには、以下の手順に従います。

  • S3バケットを作成します。
  • S3バケットを作成したら、「」をタップします。 権限 ' タブ。 「」をタップします 編集 次のセクションから「」ボタンを押してください。
  • 既存のポリシーを次のポリシーに置き換えます。
{
'バージョン' : 「2012-10-17」
'声明' : [
{
'効果' : '許可する'
'選考科目' : {
'サービス' : 「logdelivery.elasticloadbalancing.amazonaws.com」
}
'アクション' : 「s3:PutObject」
'リソース' : 「arn:aws:s3:::バケット名/プレフィックス/AWSLogs/aws-アカウントid/*」
}

}

上記のポリシーで、次の変数を置き換えます。

  • バケット名 : このフィールドを元のバケット名に置き換えます。
  • プレフィックス (オプション) : オプションのフィールドです。バケットにプレフィックスが含まれている場合は、このフィールドにプレフィックスの名前を入力します。ただし、指定するプレフィックスがない場合、ユーザーはこのフィールドをスキップすることもできます。

このポリシーを指定した後、「」をクリックします。 変更内容を保存 」ボタンをクリックして変更を適用します。残りの手順は、方法 1 で説明したのと同じ順序で実行します。

おまけのヒント: アクセス ログを無効にする

アプリケーションのアクセス ログを無効にするには、以下の手順に従います。

  • ロード バランサー ダッシュボードからロード バランサーを選択します。
  • インターフェースを下にスクロールして「」をクリックします。 属性 ' タブ。
  • 以内 ' 属性 」セクションで、「」をタップします 編集 ' ボタン。
  • 「」まで下にスクロールします。 監視 ' セクション。ここで、ユーザーは次の強調表示されたボタンを切り替えることでアクセス ログを無効にすることができます。ヒット '変更内容を保存' 変更を保存して適用するためのボタン:

アクセスログ されています 正常に無効になりました そして属性が変更されます。

このガイドの内容は以上です

結論

ロードバランサーのアクセスログを有効にするには、「権限」タブから作成したS3バケット内の前述のポリシーを編集し、「変更を保存」ボタンを押します。これらのログ ファイル内の情報には、S3 バケット コンソールから直接アクセスできます。ユーザーはログ ファイルをダウンロードし、解凍してその内容を表示することもできます。このブログは、ロード バランサーのアクセス ログを有効または無効にするための段階的なデモンストレーションです。