Pedoman kinerja dan pola desain untuk S3 Express One Zone - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pedoman kinerja dan pola desain untuk S3 Express One Zone

Saat membangun aplikasi yang mengunggah dan mengambil objek dari Amazon S3 Express One Zone, ikuti panduan praktik terbaik kami untuk mengoptimalkan kinerja. Untuk menggunakan kelas penyimpanan S3 Express One Zone, Anda harus membuat bucket direktori S3. Kelas penyimpanan S3 Express One Zone tidak didukung untuk digunakan dengan bucket tujuan umum S3.

Untuk panduan kinerja semua kelas penyimpanan Amazon S3 lainnya dan bucket tujuan umum S3, lihat Pola desain praktik terbaik: mengoptimalkan performa Amazon S3.

Untuk mendapatkan kinerja terbaik bagi aplikasi Anda saat menggunakan kelas penyimpanan dan bucket direktori S3 Express One Zone, kami merekomendasikan panduan dan pola desain berikut ini.

Lokasi bersama penyimpanan S3 Express One Zone dengan sumber daya komputasi AWS Anda

Setiap bucket direktori disimpan dalam satu Zona Ketersediaan yang Anda pilih saat membuat bucket. Anda dapat memulai dengan membuat bucket direktori baru di Zona Ketersediaan lokal untuk beban kerja atau sumber daya komputasi Anda. Anda kemudian dapat segera memulai membaca dan menulis latensi sangat rendah. Bucket direktori adalah bucket S3 pertama tempat Anda dapat memilih Zona Ketersediaan di Wilayah AWS untuk mengurangi latensi antara komputasi dan penyimpanan.

Apabila Anda mengakses bucket direktori di Zona Ketersediaan, latensi akan meningkat. Untuk mengoptimalkan performa, kami menyarankan agar Anda sebisa mungkin mengakses bucket direktori dari instans Amazon Elastic Container Service, Amazon Elastic Kubernetes Service, dan Amazon Elastic Compute Cloud yang berada di Zona Ketersediaan yang sama.

Bucket direktori

Setiap bucket direktori dapat mendukung ratusan ribu transaksi per detik (TPS). Tidak seperti bucket tujuan umum, bucket direktori mengatur kunci secara hierarkis ke dalam direktori alih-alih prefiks. Prefiks adalah string karakter di awal nama kunci objek. Anda dapat menganggap prefiks sebagai cara untuk mengatur data Anda dengan cara yang mirip dengan direktori. Namun, prefiks bukan direktori.

Prefiks mengatur data dalam namespace datar dalam bucket tujuan umum, dan tidak ada batas jumlah prefiks dalam bucket tujuan umum. Setiap awalan dapat mencapai setidaknya 3.500 PUTPOST/DELETEatau HEAD 5.500/permintaan per GET detik. Anda juga dapat memparalelkan permintaan di beberapa prefiks untuk menskalakan kinerja. Namun, penskalaan ini, dalam kasus operasi baca dan tulis, terjadi secara bertahap dan tidak instan. Selagi bucket tujuan umum menskalakan ke tingkat permintaan baru yang lebih tinggi, Anda mungkin menerima beberapa kesalahan kode status HTTP 503 (Layanan Tidak Tersedia).

Dengan namespace hierarkis, pembatas dalam kunci objek menjadi penting. Satu-satunya pembatas yang didukung adalah garis miring (/). Direktori ditentukan oleh batas pembatas. Misalnya, kunci objek dir1/dir2/file1.txt menghasilkan direktori dir1/ dan dir2/ secara otomatis dibuat, dan objek file1.txt ditambahkan ke direktori /dir2 di jalur dir1/dir2/file1.txt.

Direktori yang dibuat ketika objek diunggah ke bucket direktori tidak memiliki batas TPS per prefiks dan secara otomatis diskalakan sebelumnya untuk mengurangi kemungkinan kesalahan HTTP 503 (Layanan Tidak Tersedia). Penskalaan otomatis ini memungkinkan aplikasi Anda untuk memparalelkan permintaan baca dan tulis di dalam dan di seluruh direktori sesuai kebutuhan.

Paralelisasi permintaan penskalaan horizontal bucket direktori

Anda dapat mencapai kinerja terbaik dengan mengeluarkan beberapa permintaan sekaligus ke bucket direktori untuk menyebarkan permintaan Anda melalui koneksi terpisah untuk memaksimalkan bandwidth yang dapat diakses. S3 Express One Zone tidak memiliki batas untuk jumlah koneksi yang dilakukan ke bucket direktori Anda. Direktori individu dapat menskalakan kinerja secara horizontal dan otomatis ketika terjadi sejumlah besar penulisan bersamaan ke direktori yang sama.

Ketika kunci objek awalnya dibuat dan nama kuncinya termasuk direktori, direktori secara otomatis dibuat untuk objek tersebut. Unggahan objek berikutnya ke direktori yang sama tidak memerlukan direktori yang akan dibuat, yang mengurangi latensi pada unggahan objek ke direktori yang ada.

Meskipun struktur direktori dangkal dan dalam didukung untuk menyimpan objek dalam bucket direktori, bucket direktori secara otomatis menskalakan secara horizontal, dengan latensi yang lebih rendah pada unggahan bersamaan ke direktori yang sama atau ke saudara direktori paralel.

Gunakan autentikasi berbasis sesi

S3 Express One Zone dan bucket direktori mendukung mekanisme otorisasi berbasis sesi baru untuk mengautentikasi dan mengotorisasi permintaan ke bucket direktori. Dengan autentikasi berbasis sesi, SDK AWS secara otomatis menggunakan operasi API CreateSession untuk membuat token sesi sementara yang dapat digunakan untuk otorisasi latensi rendah permintaan data ke bucket direktori.

SDK AWS menggunakan operasi API CreateSession untuk meminta kredensial sementara, lalu secara otomatis membuat dan memuat ulang token untuk Anda atas nama Anda setiap 5 menit. Untuk memanfaatkan kelebihan kinerja kelas penyimpanan S3 Express One Zone, sebaiknya gunakan SDK AWS untuk memulai dan mengelola permintaan API CreateSession. Untuk informasi lebih lanjut tentang model berbasis sesi ini, lihat CreateSessionotorisasi.

Praktik terbaik checksum tambahan S3

S3 Express One Zone menawarkan kepada Anda opsi untuk memilih algoritma checksum yang digunakan untuk memvalidasi data Anda selama mengunggah atau mengunduh. Anda dapat memilih salah satu algoritma pemeriksaan integritas data Secure Hash Algorithms (SHA) atau Cyclic Redundancy Check (CRC) berikut: CRC32, CRC32C, SHA-1, dan SHA-256. Checksum berbasis MD5 tidak didukung dengan kelas penyimpanan S3 Express One Zone.

CRC32 adalah checksum default yang digunakan oleh SDK AWS saat mengirimkan data ke atau dari S3 Express One Zone. Kami merekomendasikan penggunaan CRC32 dan CRC32C untuk kinerja terbaik dengan kelas penyimpanan S3 Express One Zone.

Gunakan versi terbaru dari SDK AWS dan pustaka runtime umum

Beberapa SDK AWS juga menyediakan pustaka AWS Common Runtime (CRT) untuk lebih mempercepat kinerja di klien S3. SDK ini termasuk AWS SDK for Java 2.x, AWS SDK for C++, dan AWS SDK for Python (Boto3). Klien S3 berbasis CRT memindahkan objek ke dan dari S3 Express One Zone dengan kinerja dan keandalan yang ditingkatkan dengan secara otomatis menggunakan operasi API unggahan multibagian dan pengambilan rentang byte untuk mengotomatiskan koneksi penskalaan horizontal.

Untuk mencapai kinerja tertinggi dengan kelas penyimpanan S3 Express One Zone, kami menyarankan menggunakan versi terbaru SDK AWS yang menyertakan pustaka CRT atau menggunakan AWS Command Line Interface (AWS CLI).

Penyelesaian masalah kinerja

Permintaan coba lagi untuk aplikasi yang sensitif latensi

S3 Express One Zone dibuat khusus untuk menghadirkan tingkat kinerja tinggi yang konsisten tanpa penyetelan tambahan. Namun, menetapkan nilai batas waktu yang agresif dan percobaan ulang dapat membantu mendorong latensi dan kinerja yang konsisten. SDK AWS memiliki nilai batas waktu dan percobaan yang dapat dikonfigurasi yang dapat disesuaikan dengan toleransi aplikasi spesifik Anda.

Pustaka AWS Common Runtime (CRT) dan pemasangan jenis instans Amazon EC2

Aplikasi yang melakukan sejumlah besar operasi baca dan tulis cenderung membutuhkan lebih banyak memori atau kapasitas komputasi daripada aplikasi yang tidak melakukannya. Saat meluncurkan instans Amazon Elastic Compute Cloud (Amazon EC2) Anda untuk beban kerja yang menuntut kinerja, pilihlah jenis instans yang memiliki jumlah sumber daya yang dibutuhkan aplikasi Anda. Penyimpanan berkinerja tinggi S3 Express One Zone idealnya dipasangkan dengan jenis instans yang lebih besar dan lebih baru dengan jumlah memori sistem yang lebih besar serta CPU dan GPU yang lebih kuat yang dapat memanfaatkan penyimpanan berkinerja lebih tinggi. Kami juga merekomendasikan penggunaan versi terbaru dari SDK AWS berkemampuan CRT, yang dapat mempercepat permintaan baca dan tulis secara paralel dengan lebih baik.

Gunakan autentikasi berbasis sesi di SDK AWS alih-alih HTTP API REST

Dengan Amazon S3, Anda juga dapat mengoptimalkan kinerja saat menggunakan permintaan HTTP API REST dengan mengikuti praktik terbaik yang sama yang merupakan bagian dari SDK AWS. Namun, dengan mekanisme otorisasi dan autentikasi berbasis sesi yang digunakan oleh S3 Express One Zone, kami sangat menyarankan Anda menggunakan SDK AWS untuk mengelola CreateSession dan token sesi yang dikelola. SDK AWS secara otomatis membuat dan memuat ulang token atas nama Anda menggunakan operasi API CreateSession. Menggunakan CreateSession simpanan pada latensi dua arah per permintaan ke AWS Identity and Access Management (IAM) untuk mengotorisasi setiap permintaan.