VPC Flow Logsの出力先にS3が追加になって安価に使いやすくなりました
ご機嫌いかがでしょうか、豊崎です。
VPCフローログをアップデートがありましたので、ご紹介したいと思います。 https://aws.amazon.com/about-aws/whats-new/2018/08/amazon-vpc-flow-logs-can-now-be-delivered-to-s3/
AWS CLI、AWSマネジメントコンソール、またはEC2を使用してVPCフローログをS3に直接配信できるようになりました。 これによってVPCフローログを配信できる先はS3とCloudWatchLogsになりました。
これで安価にVPCフローログを貯めることができるようになり、導入がしやすくなりましたね!
まずはVPCフローログについて
VPCフローログ自体の説明はこちらをご覧ください。
コスト
データ量 | VPCフローログ→CloudWatch Logs | VPCフローログ→S3 |
初めの10TBまで | $0.76/GB | $0.38/GB |
次の20TB(10TB-30TB) | $0.38/GB | $0.228/GB |
次の20TB(30TB-50TB) | $0.152/GB | $0.114/GB |
50TBから | $0.076/GB | $0.076/GB |
https://aws.amazon.com/cloudwatch/pricing/
また、S3でデータを保管する料金もかかります。
https://aws.amazon.com/jp/s3/pricing/
つまり、VPCのフローログ をS3に配信する場合にかかるコストとしては以下の2点の料金が
- 取り込まれたデータを S3 にログを配信するコスト(上記表のVPCフローログ→S3)
- S3でデータを保管する料金
やってみた
それでは早速試していきたいと思います。
以下を参考にしてAWS CLIからS3への配信をしたいと思います。 https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html ※執筆時点では英語版のみに記載があります。
まずはログを貯める用のS3バケットを作っておきます。 オプションは全てデフォルトのS3バケットを作りました。 あとで利用するので、作成したS3のARNをコピーしておきましょう。
次にVPCフローログを有効化するVPCを選択してフローログタブからフローログの作成をクリックします。
Destinationの部分に「Send to an S3 bucket」という選択項目が増えていますね。 それでは設定していきます。
Filterは「ALL」、Destinationは「S3」、S3 bucket ARNには先ほどコピーしたS3のARNを入力して作成します。
これで設定は完了です。
S3のバケットポリシーを確認すると以下のようなポリシーが記述されています。
{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::demo-flow-logs-201808/AWSLogs/xxxxxxxxxxxx/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::demo-flow-logs-201808" } ] }
適当なEC2を作成して、sshやhttp、pingなど外部から通信をおこなってみました。 10分くらい待つとS3にフローログが配信されます。
version account-id interface-id srcaddr dstaddr srcport dstport protocol packets bytes start end action log-status 2 xxxxxxxxxxxx eni-xxxxxxxxxxxxxxxxx xx.xx.xx.xx yy.yy.yy.yy 58128 22 6 2959 154697 1533762015 1533762248 ACCEPT OK 2 xxxxxxxxxxxx eni-xxxxxxxxxxxxxxxxx xx.xx.xx.xx yy.yy.yy.yy 22 58128 6 3369 522961 1533762015 1533762248 ACCEPT OK
コストを抑えたい場合やAthenaを利用した確認でOKな場合、蓄積したログをあとで利用する場合などはS3を利用して、リアルタイムなログの可視化や、アラートが必要な場合はCloudWatchLogsを利用するなど目的に応じて使い分けができますね。
さいごに
いかがでしたでしょうか?今回のupdateでコストが抑えられるので、VPCフローログの導入がしやすくなったのではないでしょうか? この記事が誰かのお役に立てば幸いです。