Blog AWS Indonesia

Mountpoint untuk Amazon S3 – Sekarang tersedia dan siap untuk workload production

Mountpoint untuk Amazon S3 adalah open source file client yang memudahkan aplikasi Linux yang berhubungan dengan file untuk terhubung langsung ke bucket Amazon Simple Storage Service (Amazon S3). Diumumkan awal tahun ini sebagai rilis alfa, sekarang tersedia secara umum dan siap digunakan untuk production pada aplikasi skala besar dan read-heavy, data lake, training untuk machine learning, rendering gambar, simulasi kendaraan otonom, ETL, dan banyak lagi. Mountpoint untuk Amazon S3 mendukung workload berbasis file yang melakukan pembacaan sequential dan random, penulisan sequential (hanya penambahan), dan yang tidak memerlukan semantik POSIX penuh.

Kenapa File?

Banyak pelanggan AWS menggunakan API S3 dan AWS SDK untuk membangun aplikasi yang dapat melakukan list, mengakses, dan memproses konten dari bucket S3. Namun, banyak pelanggan sudah memiliki aplikasi, perintah-perintah, tools dan workflow yang familiar dengan cara akses file ala UNIX: membaca direktori, membuka & membaca file yang ada, dan membuat & menulis yang baru. Pelanggan ini telah meminta kami untuk sebuah official client yang siap dilingkungan enterprise dan mendukung performa ke S3 dalam skala besar. Setelah berbicara dengan pelanggan ini dan mengajukan banyak pertanyaan, kami belajar bahwa kinerja dan stabilitas adalah perhatian utama mereka, dan kesesuaian dengan POSIX bukanlah suatu keharusan.

Ketika saya pertama kali menulis tentang Amazon S3 pada 2006 sudah sangat jelas bagi saya bahwa S3 digunakan untuk object storage bukan sebuah sebagai file system. Meskipun Anda seharusnya tidak menggunakan Mountpoint S3 untuk menyimpan repositori Git dan semacamnya, menggunakannya dengan tools yang bisa membaca dan menulis file, dan mengambil keunggulan skalabilitas dan durabilitas dari S3, cukup masuk akal dibanyak situasi.

Tentang Mountpoint

Mountpoint secara konsep sangat sederhana. Anda membuat sebuah mount point dan menghubungkannya ke Amazon S3 bucket (atau path di dalam bucket), kemudian mengakses bucket tersebut menggunakan perintah-perintah pada shell (ls, cat, dd, find, dan lainnya), fungsi-fungsi pada library (open, close, read, write, creat, opendir dan lainnya) atau perintah-perintah sejenis dan fungsi-fungsi yang didukung oleh tools dan bahasa pemrograman yang Anda gunakan.

Dibalik layar, Linux Virtual Filesystem (VFS) mentranslasi operasi yang ditujukan ke Mountpoint, menjadi perintah-perintah ke S3: LIST, GET, PUT dan lainnya. Mountpoint berusaha untuk memaksimalkan bandwidth jaringan, meningkatkan throughput dan membuat Anda lebih menghemat biaya dengan menyelesaikan banyak task lebih cepat.

Mountpoint dan digunakan dari instans Amazon Elastic Compute Cloud (Amazon E2), atau dari container pada Amazon Elastic Container Service (Amazon ECS) dan Amazon Elastic Kubernetes Service (EKS). Mountpoint S3 juga dapat digunakan sistem on-premise Anda, dengan akses ke S3 langsung atau melalui koneksi AWS Direct Connect via AWS PrivateLink for Amazon S3.

Menginstal dan Menggunakan Mountpoint Amazon S3

Mountpoint tersedia dalam format RPM dan dapat dengan mudah diinstal pada instans EC2 yang berjalan pada Amazon Linux. Saya cukup ambil RPM tersebut dan menginstalnya menggunakan yum.

$ wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm
$ sudo yum install ./mount-s3.rpm

Selama beberapa tahun saya secara regular mengambil beberapa gambar dari webcam Washington State Ferry dan menyimpannya pada bucket saya wsdot-ferry:

Saya mengumpulkan gambar ini untuk melakukan tracking pulang dan perginya kapal ferry, dengan tujuan menganalisa kapan waktu terbaik untuk pergi naik kapal. Tujuan saya adalah membuat sebuah film yang mengkombinasikan seluruh gambar pada hari tersebut menjadi sebuah time lapse. Saya memulai dengan membuat sebuah mount point dan melakukan mount bucket:

$ mkdir wsdot-ferry
$ mount-s3 wsdot-ferry wsdot-ferry

Saya dapat menjelajahi mount point dan melakukan inspeksi bucket tersebut:

$ cd wsdot-ferry
$ ls -l | head -10
total 0
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2020_12_30
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2020_12_31
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2021_01_01
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2021_01_02
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2021_01_03
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2021_01_04
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2021_01_05
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2021_01_06
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 2021_01_07
$
$  cd 2020_12_30
$ ls -l
total 0
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 fauntleroy_holding
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 fauntleroy_way
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 lincoln
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 trenton
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 vashon_112_north
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 vashon_112_south
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 vashon_bunker_north
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 vashon_bunker_south
drwxr-xr-x 2 jeff jeff 0 Aug  7 23:07 vashon_holding
$
$ cd fauntleroy_holding
$  ls -l | head -10
total 2680
-rw-r--r-- 1 jeff jeff  19337 Feb 10  2021 17-12-01.jpg
-rw-r--r-- 1 jeff jeff  19380 Feb 10  2021 17-15-01.jpg
-rw-r--r-- 1 jeff jeff  19080 Feb 10  2021 17-18-01.jpg
-rw-r--r-- 1 jeff jeff  17700 Feb 10  2021 17-21-01.jpg
-rw-r--r-- 1 jeff jeff  17016 Feb 10  2021 17-24-01.jpg
-rw-r--r-- 1 jeff jeff  16638 Feb 10  2021 17-27-01.jpg
-rw-r--r-- 1 jeff jeff  16713 Feb 10  2021 17-30-01.jpg
-rw-r--r-- 1 jeff jeff  16647 Feb 10  2021 17-33-02.jpg
-rw-r--r-- 1 jeff jeff  16750 Feb 10  2021 17-36-01.jpg
$

Saya membuat animasi dengan perintah tunggal berikut:

$ ffmpeg -framerate 10 -pattern_type glob -i "*.jpg" ferry.gif

Dan inilah yang saya dapat:

Seperti yang Anda lihat, saya menggunakan Mountpoint untuk mengakses gambar-gambar yang ada dan kemudian menulis animasi yang baru dibuat kembali ke S3. Meskipun ini demo yang sederhana, ini menunjukkan bagaimana Anda dapat menggunakan tools dan skill yang sudah ada untuk memproses objek di dalam bucket S3. Dengan pertimbangan bahwa saya telah mengoleksi jutaan gambar selama beberapa tahun, memproses gambar-gambar tersebut tanpa perlu secara eksplisit melakukan sync ke lokal file system adalah keuntungan yang luar biasa.

Fakta-fakta Mountpoint untuk Amazon S3

Ini adalah beberapa hal yang perlu Anda pertimbangkan ketika menggunakan Mountpoint:

Biaya – Tidak ada biaya yang perlu Anda keluarkan untuk menggunakan Mountpoint; Anda hanya membayar biaya untuk operasi yang dilakukan pada S3. Anda juga dapat menggunakan Mounpoint untuk mengakses bucket dengan tipe requester-pays (yang membayar adalah akun yang mengakses S3).

Performa – Mountpoint dapat mengambil keunggulan dari throughput elastis yang ditawarkan S3, termasuk data transfer hingga 100 Gb/detik antara instans EC2 dan S3.

Credential – Mounpoint mengakses S3 bucket Anda menggunakan AWS credential yang dilakukan ketika bucket di mount. Lihat KONFIGURASI untuk informasi tentang credential, konfigurasi bucket, penggunaan requester-pays, beberapa tips untuk penggunaan S3 Object Lambda dan lainnya.

Operasi & Semantik – Mountpoint mendukung operasi dasar file dan dapat membaca file hingga ukuran 5 TB. Mountpoint dapat membaca file yang ada, dan membuat file baru. Mountpoint tidak dapat memodifikasi file yang sudah ada atau menghapus direktori dan tidak mendukung symbolic link atau file locking (jika Anda memerlukan semantik POSIX, coba lihat Amazon FSx for Lustre). Untuk informasi lebih banyak tentang operasi dan interpretasi, baca dokumen SEMANTIK.

Storage Class – Anda dapat menggunakan Mountpoint untuk mengakses objek S3 di setiap storage class kecuali S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive, S3 Intelligent-Tiering Archive Access Tier, dan S3 Intelligent-Tiering Deep Archive Access Tier.

Open Source – Mountpoint open source dan memiliki roadmap publik. Kontribusi Anda ditunggu; pastikan untuk membaca Panduan Kontribusi dan Code of Conduct kami terlebih dulu.

Kesimpulan

Seperti yang Anda lihat, Mountpoint sangat keren dan saya cukup yakin Anda akan menemukan cara untuk menggunakannya pada aplikasi Anda. Silahkan dicoba dan beritahu kami pandangan Anda!

Artikel ini diterjemahkan dari artikel asli dengan judul “Mountpoint for Amazon S3 – Generally Available and Ready for Production Workloads” yang ditulis oleh Jeff Bar, Chief Evangelist di AWS.

Rio Astamal

Rio Astamal

Rio Astamal is a Developer Advocate at AWS and a passionate web developer since 2003. In his spare time he loves writing small open source projects to solve problem in his daily activity.