ELBアクセスログを期限付きでS3に自動保存する設定
・ELBのログ保存機能
・S3のlifecycle設定
を利用して、2つのELBに対するアクセスログを、同一バケットの別フォルダに期限付きで保存するよう設定します。
今回の例では
<ELB>
1.elb01
2.elb02
の二つのELBを利用し、
<S3>
koujibacketバケットのelbフォルダ下にelb01とelb02のアクセスログを期限付きで保存します。
参考URL:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/configure-s3-bucket.html
http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
http://docs.aws.amazon.com/ja_jp/ElasticLoadBalancing/latest/DeveloperGuide/configure-s3-bucket.html
以下のbacket、フォルダがある前提で
かつ以下2つのELBがある前提で
記載します。
①バケットポリシーでELBがS3にputObject出来る設定をする
⬇️
Policy Generatorを利用します
⬇️
⬆️上記の各入力項目について
・principal = 以下の一覧より合致するアカウントID(今回は東京)を入力
⬇️
・Action = PutObjectのみ選択
・ARN = 以下フォーマットで
今回の例に当てはめると・・・・ “arn:aws:s3:::koujibacket/elblog/elb01/AWSLogs/XXXXXXXXX/*”
⬇️
入力が終わったら”Generate Policy”を押下して、出来上がったJSONをコピペします。
elb01単体用に作成されたものが出来上がり・・・
{ "Id": "Policy1405427887316", "Statement": [ { "Sid": "Stmt1405427778992", "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::koujibacket/elblog/elb01/AWSLogs/XXXXXXXX/*", "Principal": { "AWS": [ "582318560864" ] } } ] }
そこにさらにelb02用の記載も追加してJSONを完成させます。
{ "Id": "Policy1405427887316", "Statement": [ { "Sid": "Stmt1405427778992", "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::koujibacket/elblog/elb01/AWSLogs/XXXXXXXXXXXX/*", "arn:aws:s3:::koujibacket/elblog/elb02/AWSLogs/XXXXXXXXXXXX/*" ], "Principal": { "AWS": [ "582318560864" ] } } ] }
あとはそれをSAVEしてバケットポリシー設定は完了です。
②ELBでアクセスログ保存設定
<elb01でアクセスログ保存設定>
Access Logs(Edit)をクリックし
⬇️
“Enable Access Logs”をチェックし、intervalに5 or 60minutes設定し、S3の保存パスを入力して”Save”を押下すれば完了です。
ちなみに、”Create the location for me”をチェックすると入力したS3バケットを自動作成し、なおかつS3バケットポリシー設定も自動で行われます。今回は既にあるS3バケットに対して保存設定するケースなので少しイバラの道を歩んでいます・・・・。
<elb02でアクセスログ保存設定>
elb02もelb01と同様の設定を行って”Save”押下すれば完了です。
⬇️
③ELBログ自動保存の設定状況を確認
以下のように自動でフォルダとファイルが作成されます
ELBアクセスするとログが以下のフォルダ構成で保存されます
④S3バケットのlifecycle設定を行う
バケットを選択し、Lifecycle -> Add ruleを押下します
⬇️
“A Prefix”をチェックし、対象のフォルダを入力します
⬇️
今回は一日後に削除の設定を行いました
⬇️
あとはRule Nameに任意の名前を入力し”Create and Activate Rule”を押下すれば完成です。
⑤最後に保存期間が過ぎたら削除されたかを確認
こんな感じに日付フォルダ毎削除されてます(15日フォルダが削除された)。
削除タイミングは非同期なので、期限過ぎたら即消される訳ではないようで、「あれ?消えない;;」と焦りました。
以上です。
元記事は、こちら