VPC Flow Logsの出力先にS3が追加になって安価に使いやすくなりました | Developers.IO

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 Flow LogsでVPC内のIPトラフィックを監視することができるようになりました!

コスト

データ量 フローログの取得にかかる料金 S3に配信する料金
初めの10TBまで $0.76 $0.38
次の20TB(10TB-30TB) $0.38 $0.228
次の20TB(30TB-50TB) $0.152 $0.114
50TBから $0.076 $0.076

https://aws.amazon.com/cloudwatch/pricing/

また、S3でデータを保管する料金もかかります。

https://aws.amazon.com/jp/s3/pricing/

やってみた

それでは早速試していきたいと思います。

以下を参考にして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を利用するなど目的に応じて使い分けができますね。

さいごに

いかがでしたでしょうか?今回のupdatedeでコストが抑えられるので、VPCフローログの導入がしやすくなったのではないでしょうか? この記事が誰かのお役に立てば幸いです。