AWS 環境
- ALB
- EC2
- S3
アクセスログを S3 に保存する
ALB を使うと AWS 内のサービスを色々使えるので便利。
今回は S3 にアクセスログを保存するようにした。
さらに保存したアクセスログを Amazon Athena 使って簡単に解析できる。
らしい。
S3 側でやること
「S3」→「汎用バケット」→「バケットを作成」クリック
- 一般的な設定
- バケットタイプ: 汎用
- バケット名前空間: 適当(今回は「アカウントのリージョナル名前空間 (推奨)」を選択)
- バケット名の接頭辞: 適当
- オブジェクト所有者
- オブジェクト所有者: ACL 無効
- このバケットのブロックパブリックアクセス設定
- パブリックアクセスをすべて ブロック: チェック
- バケットのバージョニング
- バケットのバージョニング: 適当(今回は「無効にする」を選択)
- デフォルトの暗号化
- 暗号化タイプ: Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3)
- 「バケットを作成」クリック
- 一般的な設定
先ほど作成した S3バケットを選択 →「アクセス許可」→「バケットポリシー」→「編集」クリック
- 公式にて公開されている「バケットポリシー」 をほぼコピペする。
- 「Resource( arn:aws:s3:::xxxxxxxxxx/* の部分 )」項目は バケット ARN をコピペする。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logdelivery.elasticloadbalancing.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::xxxxxxxxxx/*"
}
]
}
EC2 側でやること
- 「EC2」→「ロードバランサー」→ ログを残したいロードバランサーを選択 →「属性」→「編集」クリック
- ログ記録中
- アクセスログ: チェック
- S3 URI: 先程作成した s3バケットを選択。パスを細かく指定したい場合はパスも指定する。
- 「変更内容の保存」クリック
- ログ記録中