share facebook facebook2 twitter menu hatena pocket slack

2014.07.31 THU

ELBアクセスログを期限付きでS3に自動保存する設定

WRITTEN BY三浦 剛慈

cloudpack三浦 剛慈です。

ELBアクセスログを期限付きでS3に自動保存する設定

・ELBのログ保存機能
・S3のlifecycle設定
を利用して、2つのELBに対するアクセスログを、同一バケットの別フォルダに期限付きで保存するよう設定します。

今回の例では
<ELB>
1.elb01
2.elb02
の二つのELBを利用し、
<S3>
koujibacketバケットのelbフォルダ下にelb01とelb02のアクセスログを期限付きで保存します。

参考URL:


①バケットポリシーでELBがS3にputObject出来る設定をする
03
⬇️
Policy Generatorを利用します
04
⬇️
05
⬆️上記の各入力項目について
principal = 以下の一覧より合致するアカウントID(今回は東京)を入力
06
⬇️
Action = PutObjectのみ選択
07
ARN = 以下フォーマットで
08
今回の例に当てはめると・・・・ “arn:aws:s3:::koujibacket/elblog/elb01/AWSLogs/XXXXXXXXX/*”
⬇️
入力が終わったら”Generate Policy”を押下して、出来上がったJSONをコピペします。
09
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してバケットポリシー設定は完了です。
10

②ELBでアクセスログ保存設定

<elb01でアクセスログ保存設定>
11

Access Logs(Edit)をクリックし
⬇️

12

“Enable Access Logs”をチェックし、intervalに5 or 60minutes設定し、S3の保存パスを入力して”Save”を押下すれば完了です。
ちなみに、”Create the location for me”をチェックすると入力したS3バケットを自動作成し、なおかつS3バケットポリシー設定も自動で行われます。今回は既にあるS3バケットに対して保存設定するケースなので少しイバラの道を歩んでいます・・・・。

<elb02でアクセスログ保存設定>
13

elb02もelb01と同様の設定を行って”Save”押下すれば完了です。

⬇️
14

③ELBログ自動保存の設定状況を確認

以下のように自動でフォルダとファイルが作成されます
15
16
17

ELBアクセスするとログが以下のフォルダ構成で保存されます
18

19

④S3バケットのlifecycle設定を行う
20
バケットを選択し、Lifecycle -> Add ruleを押下します

⬇️
21
“A Prefix”をチェックし、対象のフォルダを入力します
⬇️
22
今回は一日後に削除の設定を行いました
⬇️
23
あとはRule Nameに任意の名前を入力し”Create and Activate Rule”を押下すれば完成です。

⑤最後に保存期間が過ぎたら削除されたかを確認
24

25
こんな感じに日付フォルダ毎削除されてます(15日フォルダが削除された)。
削除タイミングは非同期なので、期限過ぎたら即消される訳ではないようで、「あれ?消えない;;」と焦りました。

以上です。

元記事は、こちら