Penyimpanan Objek dengan Amazon S3

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Penyimpanan Objek dengan Amazon S3

Tidak seperti Amazon EBS, Amazon S3 adalah solusi penyimpanan mandiri yang tidak terikat dengan komputasi.


Solusi ini memungkinkan Anda untuk mengambil data dari mana saja di web. Jika Anda pernah menggunakan layanan penyimpanan online untuk mencadangkan data dari mesin lokal Anda, kemungkinan besar Anda telah menggunakan layanan yang mirip dengan Amazon S3.


Perbedaan besar antara layanan penyimpanan online tersebut dan Amazon S3 adalah jenis penyimpanannya.


Amazon S3 adalah layanan penyimpanan objek. Penyimpanan objek menyimpan data dalam struktur datar, menggunakan pengidentifikasi unik untuk mencari objek ketika diminta.


Sebuah objek hanyalah sebuah file yang digabungkan dengan metadata dan Anda dapat menyimpan sebanyak mungkin objek-objek ini yang Anda inginkan.


Semua karakteristik penyimpanan objek ini juga merupakan karakteristik Amazon S3.

1) Memahami Konsep Amazon S3


Di Amazon S3, Anda harus menyimpan objek dalam wadah yang disebut bucket. Anda tidak dapat mengunggah objek apa pun, bahkan satu foto pun, ke S3 tanpa membuat bucket terlebih dahulu.


Ketika Anda membuat bucket, Anda memilih, paling tidak, dua hal: nama bucket dan AWS Region tempat bucket tersebut berada.


Bagian pertama adalah memilih Region yang Anda inginkan untuk menyimpan bucket.


Biasanya, ini adalah Region yang telah Anda gunakan untuk sumber daya lain, seperti komputasi Anda.


Ketika Anda memilih Region untuk bucket Anda, semua objek yang Anda letakkan di dalam bucket itu disimpan secara berlebihan di beberapa perangkat, di beberapa Zona Ketersediaan.


Tingkat redundansi ini dirancang untuk memberi pelanggan Amazon S3 daya tahan 99,999999999% dan ketersediaan 99,99% untuk objek selama satu tahun.


Bagian kedua adalah memilih nama bucket yang harus unik di semua akun AWS.


AWS melarang Anda memilih nama bucket yang telah dipilih oleh orang lain di akun AWS lain.


Setelah Anda memilih nama, nama tersebut menjadi milik Anda dan tidak dapat diklaim oleh orang lain kecuali Anda menghapus bucket tersebut, yang kemudian melepaskan nama tersebut untuk digunakan orang lain.


AWS menggunakan nama ini sebagai bagian dari pengenal objek. Di S3, setiap objek diidentifikasi menggunakan URL, yang terlihat seperti ini:

memahami konsep amazon s3 memahami konsep amazon s3 // coursera


Setelah http://, Anda akan melihat nama bucket. Dalam contoh ini, bucket diberi namadoc.


Kemudian, pengenal menggunakan nama layanan s3 dan menentukan penyedia layanan amazon aws.


Setelah itu, Anda memiliki folder tersirat di dalam bucket bernama 2006-03-01 dan objek di dalam folder tersebut bernama AmazonS3.html. Nama objek sering disebut sebagai nama kunci.


Perhatikan, Anda dapat memiliki folder di dalam bucket untuk membantu Anda mengatur objek.


Namun, ingatlah bahwa tidak ada hirarki file yang sebenarnya yang mendukung hal ini di sisi belakang. Yang ada adalah struktur datar di mana semua file dan folder berada pada level yang sama.


Menggunakan bucket dan folder menyiratkan hierarki, yang membuatnya mudah dipahami oleh mata manusia.

2) Kasus Penggunaan S3


Amazon S3 adalah salah satu layanan penyimpanan yang paling banyak digunakan, dengan lebih banyak kasus penggunaan daripada yang dapat ditampung dalam satu layar.


Daftar berikut ini merangkum beberapa cara paling umum untuk menggunakan Amazon S3.


  • Pencadangan dan penyimpanan: S3 adalah tempat yang pas untuk mencadangkan file.

  • Hosting media: Karena Anda dapat menyimpan objek tak terbatas, dan masing-masing objek dapat mencapai 5 TB, S3 adalah lokasi yang ideal untuk meng-host unggahan video, foto, atau musik.

  • Pengiriman perangkat lunak: Anda dapat menggunakan S3 untuk menghosting aplikasi perangkat lunak Anda yang dapat diunduh pelanggan.

  • Data lakes: S3 adalah fondasi optimal untuk data lake karena skalabilitasnya yang hampir tak terbatas. Anda dapat meningkatkan penyimpanan dari gigabyte menjadi petabyte konten, hanya membayar untuk apa yang Anda gunakan.

  • Situs web statis: Anda dapat mengonfigurasi bucket Anda untuk meng-host situs web statis HTML, CSS, dan skrip sisi klien.

  • Konten statis: Karena penskalaan yang tidak terbatas, dukungan untuk file besar, dan fakta bahwa Anda dapat mengakses objek apa pun melalui web kapan pun, S3 adalah tempat yang tepat untuk menyimpan konten statis.


3) Pilih Opsi Konektifitas yang Tepat


Semua yang ada di Amazon S3 bersifat privat secara default. Artinya, semua sumber daya S3, seperti bucket, folder, dan objek hanya dapat dilihat oleh pengguna atau akun AWS yang membuat sumber daya tersebut. Sumber daya Amazon S3 semuanya bersifat privat dan terlindungi sejak awal.


Jika Anda memutuskan bahwa Anda ingin semua orang di internet melihat foto-foto Anda, Anda dapat memilih untuk menjadikan bucket, folder, dan objek Anda publik.


Perlu diingat bahwa sumber daya publik berarti semua orang di internet dapat melihatnya.


Sering kali, Anda tidak ingin izin Anda menjadi semua atau tidak sama sekali. Biasanya, Anda ingin lebih terperinci tentang cara Anda memberikan akses ke sumber daya Anda.


Untuk lebih spesifik tentang siapa yang dapat melakukan apa dengan sumber daya S3 Anda, Amazon S3 menyediakan dua fitur manajemen akses utama: Kebijakan IAM dan kebijakan bucket S3.

4) Memahami Kebijakan IAM


Ketika kebijakan IAM dilampirkan ke pengguna, grup, dan peran IAM, kebijakan tersebut menentukan tindakan yang dapat mereka lakukan.


Kebijakan IAM tidak terikat pada satu layanan AWS dan dapat digunakan untuk menentukan akses ke hampir semua tindakan AWS. Anda harus menggunakan kebijakan IAM untuk bucket privat ketika:


  • Anda memiliki banyak bucket dengan persyaratan izin yang berbeda. Alih-alih mendefinisikan banyak kebijakan bucket S3 yang berbeda, Anda dapat menggunakan kebijakan IAM sebagai gantinya.

  • Anda ingin semua kebijakan berada di lokasi terpusat. Dengan menggunakan kebijakan IAM, Anda dapat mengelola semua informasi kebijakan di satu lokasi.


5) Memahami Kebijakan Bucket S3


Kebijakan S3 bucket mirip dengan kebijakan IAM, yaitu keduanya didefinisikan menggunakan bahasa kebijakan yang sama dalam format JSON.


Perbedaannya, kebijakan IAM dilampirkan pada pengguna, grup, dan peran, sedangkan kebijakan bucket S3 hanya dilampirkan pada bucket. Kebijakan bucket S3 menentukan tindakan apa yang diizinkan atau ditolak pada bucket.


Misalnya, jika Anda memiliki bucket bernama employee bucket, Anda dapat melampirkan kebijakan S3 bucket ke dalamnya yang memungkinkan akun AWS lain untuk meletakkan objek di bucket tersebut.


Atau jika Anda ingin mengizinkan pemirsa anonim untuk membaca objek di employee bucket, maka Anda dapat menerapkan kebijakan pada bucket tersebut yang mengizinkan siapa pun untuk membaca objek di bucket menggunakan"Effect":Allow pada"Action:["s3:GetObject"]".


Berikut ini contoh seperti apa kebijakan bucket S3 tersebut.

{
"Version": "2012-10-17",
"Pernyataan": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::employeebucket/*"]
}
]
}

Kebijakan S3 Bucket hanya dapat ditempatkan pada bucket, dan tidak dapat digunakan untuk folder atau objek. Namun, kebijakan yang ditempatkan pada bucket berlaku untuk setiap objek di dalam bucket tersebut. Anda harus menggunakan kebijakan S3 bucket ketika:


  • Anda memerlukan cara sederhana untuk melakukan akses lintas akun ke S3, tanpa menggunakan peran IAM.

  • Kebijakan IAM Anda terbentur dengan batas ukuran yang ditentukan. Kebijakan bucket S3 memiliki batas ukuran yang lebih besar.


6) Enkripsi Keamanan Data S3


Amazon S3 memperkuat enkripsi saat transit (saat melakukan perjalanan ke dan dari Amazon S3) . Untuk melindungi data Anda dapat menggunakan:


  • Server-side encryption: Ini memungkinkan Amazon S3 mengenkripsi objek Anda sebelum menyimpannya di disk di pusat datanya dan kemudian mendekripsinya saat Anda mengunduh objek.

  • Client-side encryption: Mengenkripsi data Anda di sisi klien dan mengunggah data terenkripsi ke Amazon S3. Dalam hal ini, Anda mengelola proses enkripsi, kunci enkripsi, dan semua alat terkait.


Untuk mengenkripsi saat transit, Anda dapat menggunakan enkripsi sisi klien atau Secure Sockets Layer (SSL).

7) Menggunakan Versi Untuk Mempertahankan Objek


Seperti yang Anda ketahui, Amazon S3 mengidentifikasi objek sebagian dengan menggunakan nama objek.


Misalnya, saat Anda mengunggah foto karyawan ke S3, Anda dapat menamai objek tersebut employee.jpg dan menyimpannya di folder bernama employees.


Jika Anda tidak menggunakan pengubahan versi Amazon S3, kapan pun Anda mengunggah objek bernama employee.jpg ke folder employees, objek tersebut akan menimpa file aslinya. Hal ini bisa menjadi masalah karena beberapa alasan.


  • employee.jpg adalah nama umum untuk objek foto karyawan. Anda atau orang lain yang memiliki akses ke folder tersebut mungkin tidak bermaksud menimpanya, dan setelah menimpanya, Anda tidak lagi memiliki akses ke file aslinya.

  • Anda mungkin ingin menyimpan versi berbeda dari employee.jpg. Tanpa pengubahan versi, jika Anda ingin membuat versi baru dari employee.jpg, Anda perlu mengunggah objek dan memilih nama yang berbeda untuknya. Memiliki beberapa objek dengan sedikit perbedaan dalam variasi penamaan dapat menyebabkan kebingungan dan kekacauan di dalam bucket Anda.


Jadi, apa yang Anda lakukan?


Anda menggunakan versi S3!


Versioning memungkinkan Anda untuk menyimpan beberapa versi dari satu objek di dalam bucket yang sama.


Hal ini memungkinkan Anda menyimpan versi lama suatu objek tanpa harus menggunakan konstruksi penamaan yang berbeda, jika Anda perlu memulihkannya dari penghapusan yang tidak disengaja, penimpaan yang tidak disengaja, atau bahkan kegagalan aplikasi.


Mari kita lihat cara kerjanya.


Jika Anda mengaktifkan pembuatan versi untuk sebuah bucket, Amazon S3 secara otomatis menghasilkan ID versi unik untuk objek yang disimpan.


Dalam satu bucket, misalnya, Anda bisa memiliki dua objek dengan kunci yang sama, tetapi ID versi yang berbeda, seperti employeephoto.gif (versi 111111) dan employeephoto.gif (versi 121212).


Bucket yang diaktifkan versi memungkinkan Anda memulihkan objek dari penghapusan atau penimpaan yang tidak disengaja.


  • Menghapus sebuah objek tidak menghapus objek tersebut secara permanen. Sebaliknya, Amazon S3 memberi penanda pada objek yang menunjukkan bahwa Anda telah mencoba menghapusnya. Jika Anda ingin mengembalikan objek tersebut, Anda dapat menghapus penanda ini dan mengembalikan objek tersebut.

  • Jika Anda menimpa sebuah objek, maka akan menghasilkan versi objek baru di dalam bucket. Anda masih memiliki akses ke versi sebelumnya dari objek tersebut.


8) Memahami Status Versi


Bucket dapat berada dalam salah satu dari tiga status.


  • Tidak memiliki versi (default): Tidak ada objek baru atau yang sudah ada di dalam bucket yang memiliki versi.

  • Diaktifkan versi: Ini mengaktifkan versi untuk semua objek di dalam bucket.

  • Versi ditangguhkan: Ini menangguhkan pembuatan versi untuk objek baru. Semua objek baru di dalam bucket tidak akan memiliki versi. Namun, semua objek yang sudah ada akan tetap memiliki versi objeknya.


Status versioning berlaku untuk semua objek di dalam bucket tersebut. Perlu diingat bahwa biaya penyimpanan dikeluarkan untuk semua objek di dalam bucket Anda dan semua versi dari objek-objek tersebut.


Untuk mengurangi tagihan S3 Anda, Anda mungkin ingin menghapus versi sebelumnya dari objek yang tidak lagi digunakan.

9) Apa Saja Kelas Penyimpanan Aamazon S3?


Ketika Anda mengunggah sebuah objek ke Amazon S3 dan Anda tidak menentukan kelas penyimpanannya, Anda mengunggahnya ke kelas penyimpanan default, sering disebut sebagai penyimpanan standar.


  1. Amazon S3 Standard: Ini dianggap sebagai penyimpanan tujuan umum untuk aplikasi cloud, situs web dinamis, distribusi konten, aplikasi seluler dan game, dan analisis data besar.

  2. Amazon S3 Intelligent-Tiering: Tingkatan ini berguna jika data Anda memiliki pola akses yang tidak diketahui atau berubah-ubah. S3 Intelligent-Tiering menyimpan objek dalam dua tingkatan, yaitu tingkatan akses yang sering dan tingkatan akses yang jarang. Amazon S3 memantau pola akses data Anda, dan secara otomatis memindahkan data Anda ke tingkat penyimpanan yang paling hemat biaya berdasarkan frekuensi akses.

  3. Amazon S3 Standard-Infrequent Access (S3 Standard-IA): S3 Standard-IA diperuntukkan bagi data yang lebih jarang diakses, tetapi membutuhkan akses cepat saat dibutuhkan. S3 Standard-IA menawarkan daya tahan tinggi, throughput tinggi, dan latensi rendah dari S3 Standard, dengan harga penyimpanan per GB dan biaya pengambilan per GB yang rendah. Tingkatan penyimpanan ini ideal jika Anda ingin menyimpan cadangan jangka panjang, file pemulihan bencana, dan sebagainya.

  4. Amazon S3 One Zone-Infrequent Access (S3 One Zone-IA): Tidak seperti kelas penyimpanan S3 lainnya yang menyimpan data di minimal tiga Availability Zone (AZ), S3 One Zone-IA menyimpan data di satu AZ dan harganya 20% lebih murah dari S3 Standard-IA. S3 One Zone-IA sangat ideal bagi pelanggan yang menginginkan opsi berbiaya lebih rendah untuk data yang jarang diakses tetapi tidak memerlukan ketersediaan dan ketahanan S3 Standard atau S3 Standard-IA. Ini adalah pilihan yang baik untuk menyimpan salinan cadangan sekunder dari data lokal atau data yang dapat dibuat ulang dengan mudah.

  5. Amazon S3 Glacier Instant Retrieval:Amazon S3 Glacier Instant Retrieval adalah kelas penyimpanan arsip yang memberikan penyimpanan berbiaya terendah untuk data yang berumur panjang yang jarang diakses dan membutuhkan pengambilan dalam hitungan milidetik.

  6. Amazon S3 Glacier Flexible Retrieval:S3 Glacier Flexible Retrieval memberikan penyimpanan berbiaya rendah, hingga 10% lebih rendah (dibandingkan S3 Glacier Instant Retrieval), untuk data arsip yang diakses 1-2 kali per tahun dan diambil secara asinkron.

  7. Amazon S3 Glacier Deep Archive: S3 Glacier Deep Archive adalah kelas penyimpanan berbiaya terendah dari Amazon S3 dan mendukung penyimpanan jangka panjang dan pelestarian digital untuk data yang mungkin diakses sekali atau dua kali dalam setahun. Layanan ini dirancang untuk pelanggan-khususnya mereka yang berada di industri dengan regulasi ketat, seperti Layanan Keuangan, Layanan Kesehatan, dan Sektor Publik-yang menyimpan kumpulan data selama 7 hingga 10 tahun atau lebih untuk memenuhi persyaratan kepatuhan terhadap peraturan.

  8. Amazon S3 Outposts: Amazon S3 di Outposts menghadirkan penyimpanan objek ke lingkungan AWS Outposts di lokasi Anda.


10) Otomasi dan Manajemen Transisi


Jika Anda terus mengubah objek secara manual, seperti foto karyawan, dari tingkat penyimpanan ke tingkat penyimpanan, Anda mungkin ingin mengotomatiskan proses ini menggunakan kebijakan siklus hidup.


Ketika Anda menentukan konfigurasi kebijakan siklus hidup untuk sebuah objek atau sekelompok objek, Anda dapat memilih untuk mengotomatiskan dua tindakan: tindakan transisi dan kedaluwarsa.


  • Transition actions digunakan untuk menentukan kapan Anda harus mentransisikan objek ke kelas penyimpanan lain.

  • Expiration actions menentukan kapan objek kedaluwarsa dan harus dihapus secara permanen.


Misalnya, Anda dapat memilih untuk mentransisikan objek ke kelas penyimpanan S3 Standard-IA 30 hari setelah Anda membuatnya, atau mengarsipkan objek ke kelas penyimpanan S3 Glacier satu tahun setelah membuatnya.


Kasus penggunaan berikut ini adalah kandidat yang baik untuk manajemen siklus hidup.


  • Periodic logs: Jika Anda mengunggah log periodik ke bucket, aplikasi Anda mungkin membutuhkannya selama seminggu atau sebulan. Setelah itu, Anda mungkin ingin menghapusnya.

  • Data that changes in access frequency: Beberapa dokumen sering diakses dalam jangka waktu terbatas. Setelah itu, dokumen tersebut jarang diakses. Pada titik tertentu, Anda mungkin tidak memerlukan akses waktu nyata ke dokumen-dokumen tersebut, namun organisasi atau peraturan Anda mungkin mengharuskan Anda untuk mengarsipkannya untuk jangka waktu tertentu. Setelah itu, Anda dapat menghapusnya.


Others article:














  1. Flask Async Without Await - Part. 7 Belajar Flask Framework Untuk Pemula

  2. Hello world, membangun microservice dengan FastAPI

  3. FastAPI APIRouter, Membangun microservice dngan FastAPI

  4. Mini Wallet Bagian 1 - Django Template dan Static File

  5. Mini Wallet Bagian 2 - Django Template Base HTML

  6. Mini Wallet Bagian 3 - Dajngo Model dan Koneksi Database MySQL

  7. Tutorial bassic Mysql bagian 1 - Create Read Update Delete

  8. Tutorial bassic Mysql bagian 2 - Inner, Left, Right, Cross Join

  9. Tutorial bassic Mysql bagian 3 - Filtering Data

  10. Tutorial bassic Mysql bagian 4 - Grouping Data 

  11. Tutorial bassic Mysql bagian 5 - Operator dan Clausa

  12. Tutorial bassic Mysql bagian 6 - Replace Statement

  13. Tutorial bassic Mysql bagian 7 - Constraint Data

  14. Tutorial bassic Mysql bagian 8 - Mengubah Struktur tabel

  15. Tutorial bassic Mysql bagian 9 - Subquery

  16. Tutorial bassic Mysql bagian 10 - Virtual Tabel

  17. Tutorial bassic Mysql bagian 11 - Control Flow Function

  18. Membuat service OTP bagian 1 - OTP dan PIN

  19. Membuat service OTP bagian 2 - Sequence Diagram

  20. Membuat service OTP bagian 3 - Model dan Serializer

  21. Membuat  service OTP bagian 4 - Validate OTP

  22. Membuat  service OTP bagian 5 - Api Client Service

  23. Membuat service user login bagian 1 - Konfigurasi Database

  24. Membuat service user login bagian 2 - Serializer dan JWT

  25. Membuat CRUD service product bagian 1 - Models Product

  26. Membuat CRUD service product bagian 2 - Function Serializer

  27. Membuat CRUD service product bagian 3 - Api Client Service

  28. Membaut CRUD service product bagian 4 - Auth User

  29. Membuat CRUD service product bagian 5 - TDR File Log

  30. Membuat CRUD service product bagian 6 - Unit Test

  31. Membuat service user register bagian 1 - Django

  32. Membuat Service user register bagian 2 - Django

  33. Membuat service filter dan download file CSV di django

  34. Django upload file menggunakan FileSystemStorage