はじめに
こんにちは。Tsukasaです!
皆さんAWSでログを取ったことはありますか?
私は基本的にどんなサービスも初めて使うので、今回はALBでログを取ってみました。
それでは早速見て行きましょう!
ALBログとは
そもそもALBログとは何なのでしょう?
ALBログ(Application Load Balancer のアクセスログ)は、
AWSのALB(Application Load Balancer)が受け取ったリクエスト情報を
S3バケットに記録してくれるログのことです。
簡単に言うと「ALBログ=誰が・いつ・どんなリクエストを送ってきたかを記録するログ」と言えると思います。
公式の情報も載せておくので、気になる方はこちらもご覧ください!
今回やること
今回やることはAWSで簡単なHello Worldページにアクセスしたログを記録することです。
下記のように簡単なページをEC2を使って作成しました。

S3バケットの作成
S3バケットはログを保管するために必要です。
作成の手順等はここでは割愛いたしますが、下記のように作成しました。

その後ALBからの書き込みを許可するためにバケットポリシーを設定します。
[アクセス許可] → [バケットポリシー] を編集します。
S3バケットポリシーは下記のようになります。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {
"Service": "logdelivery.elasticloadbalancing.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::ohkawado-alb-accesslog/AWSLogs/538815528650/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
},
{
"Sid": "AWSLogDeliveryAclCheck",
"Effect": "Allow",
"Principal": {
"Service": "logdelivery.elasticloadbalancing.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::ohkawado-alb-accesslog"
}
]
}
ALBのアクセスログを有効化する
ALBはEC2のロードバランサーから作成できます。
今回は既に作成済のものを使います。
下記のように属性タブを開きます。
属性タブの中に「モニタリング」という項目があるので、アクセスログを有効化して先程作った、S3のバケット名を入力して保存します。
これで、ALBが受けたHTTPリクエストが自動的にS3にアップロードされるようになります。

ログを確認してみる
これで準備が完了しました。
その上で先程作成したHello Worldのページにアクセスしています。
その後、S3バケットにアクセスしてみると、下記のようにログがアップされているのが見えます。

そうするとログにたどり着くので、このファイルをダウンロードします。

終わりに
いかがでしたでしょうか?
ログは現場に入った際にもトラブルやセキュリティ対策のためにも必須の技術になると思うので、今回作り方を学べて良かったと思います!
今後も手を動かして自分のできることの幅をどんどん広げて行きたいと思います!



