Mengaktifkan logs Application Load Balancer.
Kita bisa mengaktifkan logs pada Application Load Balancer (ALB) di cloud AWS untuk menangkap request yang masuk berupa URL, IP address pengguna, versi HTTP, method yang digunakan dan yang lainnya untuk kebutuhan logging.
Cara kerjanya adalah ketika ada request yang masuk, Loadbalancer akan membuat logs dan menyimpannya kedalam S3 bucket setiap 5 menit. Jadi akan ada banyak file logs di bucket.
Step yang akan kita lakukan adalah:
- Membuat S3 Bucket
- Mengaitkan Policy ke S3 Bucket
- Mengkonfigurasi access logs di loadbalancer
- Cek file logs di S3 Bucket
- Penyelesaian Masalah
1. Membuat S3 Bucket
Kita harus buat bucket dengan ketentuan sebagai berikut:
- Bucket yang dibuat harus berada di Region yang sama dengan Loadbalancer.
- Folder log harus bernama AWSLogs
- Enkripsi server-side yang disupport adalah Amazon S3-managed keys (SSE-S3)
Cara membuat bucket
- Buka Amazon S3 console di https://console.aws.amazon.com/s3/
- Klik Create Bucket
- Pada halaman Create Bucket, lakukan hal berikut
- Untuk nama bucket saya beri nama loadbalancer-logs-123x. Catatan: nama bucket disini harus unik.
- Pilih AWS Region sesuai Loadbalancer kamu berada. Misal Loadbalancer ada di Region Singapore, maka Bucket juga harus berada di Singapore.
- Untuk Default Encryption pilih Amazon S3-managed keys (SSE-S3).
- Klik Create Bucket
2. Mengaitkan Policy ke S3 Bucket
Supaya Loadbalancer dapat menulis logs ke dalam S3 bucket, loadbalancer harus memiliki akses. Jadi kita akan buat policy di S3 bucket.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::114774131450:root"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::loadbalancer-logs-123x/AWSLogs/112233445566/*"
}
]
}
114774131450 merupakan elb-account-id untuk region singapore.
loadbalancer-logs-123x merupakan nama bucket yang sudah kita buat.
AWSLogs merupakan folder logsnya.
112233445566 merupakan ID akun AWS.
Untuk elb-account-id bisa lihat disini:
US East (N. Virginia) – 127311923021
US East (Ohio) – 033677994240
US West (N. California) – 027434742980
US West (Oregon) – 797873946194
Africa (Cape Town) – 098369216593
Asia Pacific (Hong Kong) – 754344448648
Asia Pacific (Jakarta) – 589379963580
Asia Pacific (Mumbai) – 718504428378
Asia Pacific (Osaka) – 383597477331
Asia Pacific (Seoul) – 600734575887
Asia Pacific (Singapore) – 114774131450
Asia Pacific (Sydney) – 783225319266
Asia Pacific (Tokyo) – 582318560864
Canada (Central) – 985666609251
Europe (Frankfurt) – 054676820928
Europe (Ireland) – 156460612806
Europe (London) – 652711504416
Europe (Milan) – 635631232127
Europe (Paris) – 009996457667
Europe (Stockholm) – 897822967062
Middle East (Bahrain) – 076674570225
South America (São Paulo) – 507241528517
AWS GovCloud (US-West) – 048591011584
AWS GovCloud (US-East) – 190560391635
Catatan: Untuk Region yang baru tersedia di Agustus 2022 menggunakan format policy json yang berbeda, untuk lebih jelasnya bisa lihat disini Regions avaiable as of August 2022 or later.
Cara mengaitkan policy ke S3 Bucket
- Masuk ke AWS S3 Console di https://console.aws.amazon.com/s3/
- Pilih nama bucket yang sudah kita buat tadi loadbalancer-logs-123x
- Pilih Tab Permission, Klik Bucket Policy, Edit
- Masukkan Policy diatas tadi
- Klik Save Changes
3. Mengkonfigurasi access logs di Loadbalancer
Selanjutnya kita akan mengaktifkan access log di halaman Loadbalancer.
- Open Amazon EC2 console di https://console.aws.amazon.com/ec2/
- Pada menu sebelah kiri klik Load Balancers.
- Pilih loadbalancer kalian.
- Pada halaman detail loadbalancer, Klik Tab Attributes, Edit.
- Pada halaman Edit load balancer attributes
- Pada Bagian Monitoring, aktifkan Access Logs
- Klik Browse S3 dan pilih bucket loadbalancer-logs-123x
- Klik Save Changes
4. Cek file logs di S3 Bucket
Setelah mengaktifkan access logs pada loadbalancer, seharusnya akan muncul file dan folder baru di dalam S3 bucket seperti format berikut:
loadbalancer-logs-123x/AWSLogs/112233445566/ELBAccessLogTestFile
Jika sudah ada file ELBAccessLogTestFile berarti loadbalancer sudah mempunyai akses untuk menulis logs ke dalam bucket. Tunggu 5 menit lagi, dan hit loadbalancer kalian maka akan ada folder baru lagi bernama elasticloadbalancing
5. Penyelesaian Masalah
Jika kalian menemukan masalah seperti access denied, ada beberapa penyebabnya:
- Bucket policy tidak memberikan loadbalancer akses untuk menulis log ke bucket. Pastikan policy yang diset sudah benar.
- Bucket menggunakan enkripsi yang tidak disupport. Pastikan enkripsi diset ke Amazon S3-managed keys (SSE-S3).