你好!我是 Tsukasa!
大家有在 AWS 上取得過日誌嗎?
我基本上每次第一次使用任何服務,所以這次我試著在 ALB 上取得日誌。
那麼,讓我們立即開始吧!
那麼,ALB 日誌到底是什麼呢?
ALB 日誌(Application Load Balancer 的訪問日誌)是,
AWS 的 ALB(Application Load Balancer)接收到的請求資訊,
會記錄在 S3 儲存桶中的日誌。
簡單來說,可以說「ALB 日誌 = 記錄誰、何時、發送了什麼請求的日誌」。
我也附上了官方資訊,有興趣的朋友可以參考一下!
本次要做的事情是紀錄在 AWS 上存取簡單的 Hello World 頁面的日誌。
我使用 EC2 建立了一個如下面所示的簡單頁面。

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 可通過 EC2 的負載均衡器來創建。
這次我將使用已經建立好的。
如下面所示,打開屬性標籤。

在屬性標籤中有「監控」這一項,因此啟用訪問日誌並輸入剛才建立的 S3 儲存桶名稱,然後保存。
這樣一來,ALB 接收到的 HTTP 請求就會自動上傳到 S3。

這樣準備就完成了。
然後我訪問了剛剛建立的 Hello World 頁面。
隨後一進入 S3 儲存桶,就可以看到日誌已經上傳,如下圖所示。

接著只需一路開啟路徑即可。

這樣就能找到日誌,然後下載這個檔案。

打開下載的檔案。

日誌確實已被記錄。

大家覺得如何呢?
我認為日誌在進入現場時,對於解決問題和安全對策來說是必不可少的技術,學到這次的製作方法真是太好了!
今後我也希望繼續動手擴展自己的能力範圍!