Menghapus file S3 secara otomatis.
Di S3 ada yang namanya fitur lifecyle rules untuk menghapus folder/file pada bucket secara otomatis.
Pada contoh kali ini saya akan menggunakan bucket yang sudah ada pada tutorial Mengaktifkan logs pada Application Load Balancer (ALB) di cloud AWS.
Pada tutorial tersebut Load Balancer akan membuat logs dan menyimpannya kedalam bucket berdasarkan format berikut:
<nama bucket>/AWSLogs/<AWS ID>/elasticloadbalancing/<availability zone code>/<year>/<month>/<day>/file.log.gz
Contoh path aslinya adalah sebagai berikut:
loadbalancer-logs-123x/AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/06/06/file.log.gz
Loadbalancer akan membuat folder tahun, bulan dan hari seperti contoh diatas 2023/06/06.
Contoh Kasus
Disini kita akan coba untuk menghapus folder dan file yang ada pada bulan 06 secara otomatis setiap 1 hari menggunakan lifecycle rules.
Membuat Lifecycle Rules
Berikut langkah membut lifecyle rules:
- Pilih bucket
- Klik tab Management
- Klik Create Lifecycle rule
- Pada Lifecycle rule name beri nama: delete_logs_loadbalancer_month_6
- Pada Choose a rule scope, pilih Limit the scope of this rule using one or more filters
- Pada Filter Type, masukkan Prefix AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/06
- Pada Lifecycle rule actions, centang Expire current versions of objects
- Pada Expire current versions of objects, masukkan Days after object creation = 1
- Klik Save
Testing
Kita tunggu 1 hari kemudian.
Folder dan file yang ada pada folder bulan 06 akan terhapus setelah 1 hari.
Berikut ini contoh folder hari(06,07,08) pada bulan ke 06 sebelum terhapus
Setelah terhapus
Folder hari 06 akan terhapus otomatis oleh lifecycle rules yang sudah kita buat. Dan file.log.gz yang ada didalam folder hari 06 otomatis akan terhapus juga.
Tambahan
Pada contoh kasus diatas kita hanya membuat lifecycle rules untuk bulan ke 6. Artinya logs yang terhapus hanya bulan ke 6 saja. Supaya logs terhapus dibulan-bulan lainnya maka kita harus buat rules lagi. Contoh dibawah ini kita buat rules untuk 12 bulan. Prefix pada lifecycle rules yang digunakan adalah seperti ini:
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/01
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/02
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/03
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/04
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/05
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/06
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/07
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/08
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/09
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/10
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/11
AWSLogs/112233445566/elasticloadbalancing/ap-southeast-1/2023/12
Sekedar informasi, maksimal rule yang bisa dibuat dalam 1 bucket adalah 1000 rules. Detailnya bisa cek disini.
Demikian tutorial Menghapus file S3 secara otomatis. Semoga bermanfaat.