JudisWeb – Cara membuat Public Bucket AWS S3 – Penyimpanan files, media, video kadang menjadikan sebuah masalah saat kapasitas penyimpanan server mulai penuh dan kinerja server makin terbebani karena harus memproses file tersebut saat diakses secara publik. AWS S3 merupakan alternatif terbaik sebagai media penyimpanan secara cloud yang bisa di akses secara publik maupun private.
Apa itu AWS S3?
Amazon Web Services S3 (Amazon Simple Storage Service) adalah layanan dari AWS sebagai penyimpanan objek. Yang menawarkan fitur untuk ketersediaan data dan keamanan data serta skalabilitas. Dan bisa digunakan sebagai analisis big data, website, cloud apps. Di desain dengan 99.9% durability artinya data yang kita simpan tidak akan hilang ataupun rusak dan mudah dalam mengelola dan mengkonfigurasi kontrol akses baik secara publik maupun private.
Secara default kebijakan pada AWS S3 adalah bersifat pribadi. Artinya file yang tersimpan hanya kita yang bisa akses, dan hanya beberapa pihak/client yang kita tentukan untuk mengaksesnya dengan memberikan rules terhadap file tersebut.
Dan untuk membuat Bucket S3 menjadi publik atau menjadikan sebagai web hosting sangatlah mudah.
AWS S3 Bucket
AWS S3 Bucket merupakan layanan cloud-storage dari AWS dimana kita bisa menyimpan apapun berupa file, gambar, video, bahkan sebuah website (statis). Sebelum masuk kedalam pembahasan S3 Bucket jika dibutuhkan akun AWS, jika belum memiliki akun AWS silahkan baca tutorial yang saya buat disini atau dalam hal ini menggunakan AWS Free Tier untuk menggunakan S3 Bucket.
AWS S3 Free Tier Spesifikasi: 5 GB storage, 20,000 Get Requests, dan 2,000 Put Requests free of charge.
Jika sudah memiliki akun AWS, login ke AWS Management Console.
Pada dashboard AWS Management Console, cari pada bagian Services dan pilih S3.
Membuat S3 Bucket
Setelah masuk Dashboard AWS S3, click Create bucket.
General configuration
Pada General Information, isi Nama S3 Bucket dan pilih Region mana kita akan menempatkan Bucket tersebut. Disini saya menggunakan region Singapore sebagai tempat penyimpanan.
Adapun beberapa aturan untuk memberi nama pada bucket:
- Panjang nama bucket harus antara 3 dan 63 karakter.
- Nama bucket hanya boleh terdiri dari huruf kecil, angka, titik (.), dan tanda hubung (-).
- Nama bucket harus diawali dan diakhiri dengan huruf atau angka.
- Nama bucket tidak boleh diformat sebagai alamat IP (misalnya, 172.122.23.4).
Copy setting from existing bucket – optional, kita bisa membuat bucket baru dengan setting yang sama dengan bucket lama yang telah kita buat sebelumnya, misal setting Permission, Tag, ACL atau Access Control List Public/Private.
Block Public Access settings for this bucket
Pada bagian Block Public Access settings for this bucket dicentang maka semua akses terhadap bucket bersifat private tidak bisa diakses secara publik.
Publik akses bisa dipergunakan sebagai web hosting statis.
Bucket Versioning
Dengan mengaktifkan Bucket Versioning maka kita diperbolehkan menyimpan varian objek didalam bucket yang sama dan varian objek tersebut bisa dijadikan sebagai objek cadangan untuk recovery misal dalam menjalakan aplikasi terjadi error atau kegagalan dalam memproses objek.
Contoh saya akan membuat file text sederhana yang berisi:
S3 Bucket Tutorial by JudisWeb
https://judisweb.com
Dan saya saya simpan file tersebut dengan nama file: S3-important-doc.txt, jika saya mengupload file yang sama dengan isi yang berbeda maka akan tersimpan dengan versi berbeda.
Jika mode Bucket Versioning dinonaktifkan maka setiap nama file yang sama otomatis tertimpa dengan file yang baru dengan nama yang sama (overwrite).
File yang sama tersebut saya rubah isi kontennya dan saya upload ke S3.
Amazon S3 Bucket Tutorial by JudisWeb
https://judisweb.com
Default encryption
Jika mengaktifkan enkripsi sisi server, Amazon S3 mengenkripsi objek sebelum menyimpannya ke disk dan mendekripsinya saat kita mendownload objek.
Advanced Settings
Object Lock: Objek akan dikunci secara permanen, tidak bisa tertimpa dengan nama file yang sama dan agar tidak terhapus.
Mengakses S3 Bucket
Setelah membuat bucket, selanjutnya kita akan mengupload file ke dalam bucket. Saat mengakses isi bucket terlihat navigasi yang sangat mudah untuk mengoperasikan. Membuat folder, mengupload file, setting meta data, dll.
Contoh: kita membuat folder documents, dan mengupload file S3-important-doc.txt. Kita bisa membuka dengan tombol Open saat kita mengklik objek tersebut dan mengaksesnya.
Tetapi saat kita membuka melalui S3 Object URL atau akses publik maka tidak ada akses yang dijinkan.
Membuat S3 Bucket Menjadi Web Hosting
Menjadikan S3 menjadi Web hosting termasuk salah satu opsi yang menarik untuk menyimpan file HTML, JS, CSS, gambar (JPG, PNG) atau video yang bisa diakses secara publik karena file tersebut bersifat statis.
Caranya sangatlah mudah, jika sudah membuat S3 Bucket dengan Block all public access tidak perlu menghapus bucket tersebut tetapi bisa dengan cara merubahnya di bagian Permissions.
Click Permissions, dan pada bagian Block Public Access click Edit kemudian hilangkan centang dan Save changes.
S3 Bucket Policy
Kemudian pada bagian Bucket Policy click Edit, kemudian masukkan kode Policy dalam JSON:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<BUCKET_ARN>/*"
}
]
}
Ganti <BUCKET_ARN> seperti yang ada pada Policy dan Save changes.
Test S3 Bucket Web Hosting
Untuk mencoba sebagai web hosting, maka disini kita akan membuat dan upload file (statis file) HTML, JS, CSS, JPG.
Kita akan membuat folder baru “test-website” di dalam S3 Bucket dan mengupload semua file dan kita buka dengan web browser.
HTML File: index.html
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<link rel="stylesheet" href="style.css"></link>
<script src="alertdate.js"></script>
<title>Welcome to S3 Bucket Tutorial by JudisWeb</title>
</head>
<body>
<div align="center">
<h1>Welcome to S3 Bucket Web Hosting</h1>
<p>Test S3 Bucket web hosting by clicking the button below</p>
<input class="button" type="button" value="SHOW ME THE DATE!!!" onclick="showDate()">
<p></p>
<p><img src="opengraph.jpg.webp" alt="JudisWeb" height="228" width="400" title="JudisWeb"></p> <p>Visit <a href="https://judisweb.com" target="_blank">JudisWeb</a> for more AWS Tutorial</p>
</div>
</body>
</html>
CSS File: style.css
.button {
display: inline-block;
padding: 0.5rem 1rem;
border-radius: 0.1875rem;
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
background: #3180c2;
color: #fff;
border: 0;
line-height: 1.5;
font-size: 1rem;
vertical-align: middle;
text-shadow: none;
-webkit-transition: background 0.1s;
-moz-transition: background 0.1s;
transition: background 0.1s;
}
.button:hover {
background: #3e8dce;
color: #fff;
}
.button:active, .button:focus {
background: #2c73ae;
box-shadow: inset -1px -1px 1px rgba(0, 0, 0, 0.15);
color: #fff;
outline: 0;
}
.button:disabled {
opacity: 0.25;
cursor: not-allowed;
}
.button:disabled:hover {
background: #3180c2;
}
Javascript File: alertdate.js
function showDate() {
var date = new Date();
var options = { weekday: "long", month: "long", day: "numeric", year: "numeric" };
date = date.toLocaleString( "en-US", options );
alert("Today is: " + date);
}
Simpan semua file tersebut dan upload ke S3 Bucket.
Buka file index.html via web browser menggunakan S3 Objet URL.
Dan jika berhasil melalui step by step maka file statis yang berhasil diupload menjadikan S3 Bucket sebagai web hosting.
File statis HTML, JS, CSS, JPG/WEBP berhasil diakses sebagai halaman website yang diupload di S3 Bucket dan diakses secara publik.
Kesimpulan
Dengan adanya Amazon S3, menjadi salah satu opsi terbaik untuk menjadikan sebagai cloud-storage alternatif, dimana file apapun yang kita upload di S3 Bucket bisa diakses secara pribadi maupun publik. Dan disamping itu S3 juga bisa dijadikan sebagai web hosting sebagai media penyimpanan file statis gambar, video, js, css, html yang bisa diakses secara publik.
Demikian tutorial Cara membuat AWS S3 Bucket Public/Private Access Dengan Mudah.
Semoga bermanfaat.