Membuat Bucket dengan Versioning pada Amazon S3

Overview:

Pada artikel kali ini kita akan mencoba membuat versioning pada AWS S3. Adapun versioning pada AWS S3 yaitu:

"Cara menyimpan berbagai varian objek dalam wadah yang sama. Kita dapat menggunakan fitur S3 Versioning untuk mempertahankan, mengambil, dan memulihkan setiap versi dari setiap objek yang disimpan di bucket. Dengan pembuatan versi, kita dapat memulihkan lebih mudah dari tindakan pengguna yang tidak diinginkan dan kegagalan aplikasi. Setelah penerapan versi diaktifkan untuk bucket, jika Amazon S3 menerima beberapa permintaan tulis untuk objek yang sama secara bersamaan, semua objek tersebut akan disimpan." lebih detail lihat disini

Adapun langkah-langkah yang akan kita lakukan pada artikel kali ini adalah, sebagai berikut:

  1. Membuat Bucket

  2. Konfigurasi Bucket

  3. Upload Bucket

  4. Mengakses Website Menggunakan Browser

  5. Upload Object Kembali

  6. Mengakses Website Menggunakan Browser

  7. Delete Object

  8. Mengakses Kembali Website Menggunakan Browser

  9. Bersihkan Bucket

Kebutuhan:

  • Memiliki Akun AWS

  • Region Virginia

  • File Sample, Github

Langkah-langkah:

Membuat Bucket

  1. Masuk ke service S3

  2. Klik Create bucket

  3. Isi Data

    • Nama Bucket

    • Kosongkan Block all public access

    • Enable Bucket Versioning

Konfigurasi Bucket

  1. Konfigurasi enable static

    • Klik bucket

    • Properties tab

    • Klik Edit pada Static web hosting

    • Klik Enable pada static website hosting

    • Isi Index document dan error document

    • Save changes

  2. Tambahkan permission publik pada bucket

    • Ke tab permission

    • Klik Edit pada bucket policy

    • Tambahkan policy untuk akses publik

        {
            "Version":"2012-10-17",
            "Statement":[
              {
                "Sid":"PublicRead",
                "Effect":"Allow",
                "Principal": "*",
                "Action":["s3:GetObject"],
                "Resource":["arn:aws:s3:::aha-cats-12121200/*"]
              }
            ]
          }
      
    • Save changes

Upload File Bucket

  1. Upload bucket

    • Pada tab Object

    • Klik Upload

    • Add files

    • Upload file and folder

    • Klik Upload

  2. Lihat detail versioning

    • Pada tab bucket

    • Centang Show versions

    • Perhatikan version ID yang terdapat pada object

Mengakses Website Menggunakan Browser

  1. Pada tab Properties

    • Akses website URL

Upload File Object Kembali

Upload file image kembali pada folder /img dengan image yang berbeda tetapi dengan nama yang sama, agar memudahkan untuk melakukan pengujian.

Mengakses Kembali Website Menggunakan Browser

Perhatikan hasilnya, berbeda dengan gambar pertama, dikarenakan kita baru saja mengupload file dengan objek yang sama namun version yang berbeda. AWS S3 versioning akan melakukan replace pada object yang terakhir diupload, sehingga kita melihat gambar yang terakhir diupload.

Perhatikan kembali object, dengan mencentang toogle see version, maka ada dua file yang akan terlihat dengan nama object yang sama, namun version ID yang berbeda. Dibagian atas adalah file yang terakhir diupload, sedangkan pada posisi bawah adalah file asli yang pertama kali diupload.

Delete Object

  1. Delete object cat.jpg

  2. Perhatikan kembali object, lihat type dan version ID yang ada. terlihat object tidak dihapus, tetapi hanya di tandai menjadi Delete marker.

    Terlihat pada gambar diatas, object tidak dihapus secara permanen, namun hanya di tandai sebagai delete marker, begitulah cara kerja versioning, urutan filenya yaitu file nomor urut 2 adalah file yang terakhir diupload sedangkan file nomor urut ketiga adalah file asli (yang pertama kali diupload).

  3. Delete file secara permanen

    • Pilih file cat.img pada urutan pertama yang memiliki type Delete marker

    • klik Delete

    • isi permanently delete

    • Delete Objects

Mengakses Kembali Website Menggunakan Browser

  1. Akses kembali website

    Terlihat gambar masih tetap menampilkan gambar yang terakhir. Sekarang coba untuk menampilkan gambar yang aslinya, yaitu gambar yang pertama kali diupload.

  2. Delete object secara permanent, yaitu file yang terakhir diupload, karena itu bukanlah gambar yang asli

    • Centang file cat.img yang paling atas

    • Klik Delete

  3. Kemudian lihat kembali object, terlihat ini merupakan object yang asli yang pertama kali di upload

  4. Akses kembali website, seharunya gambar yang asli yang akan terlihat

    gambar asli sudah terlihat

Bersihkan Bucket

Bersihkan bucket dengan menghapus semua object agar tidak terkena biaya dari layanan AWS S3.

Catatan:

Ketika versioning sudah di enable, bucket tidak bisa di disable, hanya bisa di suspend, sehingga object yang baru diupload tidak memiliki version ID, namun tidak akan menghapus version ID pada object yang sebelumnya sudah memiliki version ID.

Referensi:

https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html

learn cantrill - aws sysops training