FAQ Amazon SQS

Gambaran Umum

Amazon SQS memberikan beberapa keuntungan dengan membangun perangkat lunak Anda sendiri untuk mengelola antrean pesan atau menggunakan sistem antrean pesan sumber terbuka yang memerlukan waktu upfront yang penting untuk pengembangan dan konfigurasi. 

Alternatif ini memerlukan pemeliharaan perangkat keras dan sumber daya administrasi sistem yang berkelanjutan. Kerumitan mengonfigurasi dan mengelola sistem ini ditambah dengan kebutuhan penyimpanan pesan berulang yang memastikan pesan tersebut tidak hilang jika perangkat keras mengalami kegagalan.

Sebaliknya, Amazon SQS hanya memerlukan sedikit konfigurasi dan tanpa perlu overhead administratif. Amazon SQS bekerja dalam skala massal, yang memproses miliaran pesan setiap hari. Anda dapat menskalakan naik atau turun besarnya lalu lintas yang Anda kirim ke Amazon SQS tanpa konfigurasi apa pun. Amazon SQS juga menyediakan durabilitas pesan yang sangat tinggi, memberikan kepercayaan diri lebih kepada Anda dan para pemangku kepentingan.

Amazon SNS memungkinkan aplikasi mengirimkan pesan waktu kritis ke berbagai pelanggan melalui mekanisme "push", sehingga tidak perlu memeriksa atau "melakukan polling" secara berkala terhadap pembaruan. Amazon SQS adalah layanan antrean pesan yang digunakan oleh aplikasi terdistribusi untuk bertukar pesan melalui model polling, dan dapat digunakan untuk memisahkan komponen pengiriman dan penerimaan. 

Jika Anda menggunakan perpesanan dengan aplikasi yang sudah ada, dan ingin memindahkan pesan ke cloud dengan cepat dan mudah, kami merekomendasikan Anda untuk mempertimbangkan Amazon MQ. Layanan ini mendukung API dan protokol standar industri sehingga Anda dapat beralih dari perantara pesan berbasis standar ke Amazon MQ tanpa perlu membuat ulang kode perpesanan di aplikasi Anda. Jika Anda sedang membuat aplikasi produk baru di cloud, kami merekomendasikan untuk mempertimbangkan Amazon SQS dan Amazon SNS. Amazon SQS dan SNS adalah layanan topik dan antrean pesan yang ringan dan terkelola sepenuhnya yang menskalakan hampir tanpa batas dan memberikan API yang sederhana dan mudah digunakan. 

Ya. Antrean FIFO (first-in-first-out) mempertahankan urutan yang sama persis pada pesan yang dikirim dan diterima. Jika menggunakan antrean FIFO, Anda tidak perlu menempatkan informasi berurutan pada pesan Anda. Untuk informasi selengkapnya, baca Logika Antrean FIFO di Panduan Developer Amazon SQS.

Antrean standar memberikan kemampuan FIFO longgar, yang berupaya mempertahankan urutan pesan. Namun, karena antrean standar dirancang untuk dapat diskalakan secara massal menggunakan arsitektur terdistribusi tinggi, penerimaan pesan dengan urutan yang sama persis seperti saat dikirim tidak dapat dipastikan.

Antrean standar memberikan pengiriman setidaknya satu kali, yang artinya, masing-masing pesan dikirim setidaknya satu kali.

Antrean FIFO memberikan pemrosesan tepat satu kali, yang artinya, masing-masing pesan dikirim satu kali dan tetap tersedia sampai pelanggan memproses atau menghapusnya. Penggandaan tidak dimasukkan ke antrean.

Amazon SQS menawarkan antrean yang andal, mudah diskalakan, dan dengan host untuk menyimpan pesan saat dikirimkan antar-aplikasi atau antar-layanan mikro. Layanan ini memindahkan data antar-komponen aplikasi terdistribusi dan membantu Anda melakukan pemisahan komponen ini. Amazon SQS memberikan konstruksi perangkat tengah seperti antrean huruf mati dan manajemen poison-pill. Layanan ini juga memberikan API layanan web generik dan dapat diakses dengan bahasa pemrograman apa pun yang didukung oleh AWS SDK. Amazon SQS mndukung antrean standar dan FIFO.

Amazon Kinesis Streams memungkinkan pemrosesan real-time pada streaming data berukuran besar dan kemampuan untuk membaca dan memutar ulang rekaman ke berbagai Aplikasi Amazon Kinesis. Amazon Kinesis Client Library (KCL) mengirimkan semua rekaman untuk kunci partisi yang ditentukan ke prosesor rekaman yang sama, sehingga memudahkan untuk membuat berbagai aplikasi yang membaca dari streaming Amazon Kinesis yang sama (misalnya, untuk melakukan perhitungan, agregasi, dan pemfilteran).

Untuk informasi selengkapnya, lihat Dokumentasi Amazon Kinesis.

Ya. Developer di Amazon menggunakan Amazon SQS untuk berbagai aplikasi yang memproses pesan dalam jumlah besar setiap hari. Proses bisnis kunci di Amazon.com dan AWS menggunakan Amazon SQS.

Penagihan

Anda hanya membayar apa yang Anda gunakan, tanpa ada biaya minimum.

Biaya Amazon SQS dihitung per permintaan, ditambah biaya transfer data untuk data yang ditransfer keluar dari Amazon SQS (kecuali jika data ditransfer ke instans Amazon Elastic Compute Cloud (EC2) atau ke fungsi AWS Lambda di wilayah yang sama). Untuk perincian harga yang mendetail per tipe dan wilayah antrean, lihat Harga Amazon SQS.

Amazon SQS Tingkat Gratis menyediakan 1 juta permintaan setiap bulan tanpa biaya.

Berbagai aplikasi berskala kecil dapat beroperasi seluruhnya dalam batas Tingkat Gratis. Namun, biaya transfer data mungkin tetap berlaku. Untuk informasi selengkapnya, lihat Harga Amazon SQS.

Tingkat Gratis ini merupakan penawaran bulanan. Penggunaan gratis tidak diakumulasikan sepanjang bulan.

Ya, untuk permintaan apa pun di luar tingkat gratis. Semua permintaan Amazon SQS dapat dikenai biaya, dan ditagihkan dengan tarif yang sama.

Tidak. Operasi batch (SendMessageBatch, DeleteMessageBatch, dan ChangeMessageVisibilityBatch) semuanya berbiaya sama seperti permintaan Amazon SQS lain. Dengan mengelompokkan pesan ke dalam batch, Anda dapat mengurangi biaya Amazon SQS.

Tidak ada biaya awal untuk mulai menggunakan Amazon SQS. Pada akhir bulan, kartu kredit Anda secara otomatis akan dikenai biaya atas penggunaan bulan tersebut.

Anda dapat melihat biaya periode penagihan saat ini kapan saja di situs web AWS:

  1. Masuk ke akun AWS.
  2. Pada Akun Layanan Web Anda, pilih Aktivitas Akun.

Anda dapat menandai dan melacak antrean untuk sumber daya dan manajemen biaya menggunakan tag alokasi biaya. Tag adalah label metadata yang terdiri dari pasangan nilai utama. Misalnya, Anda dapat memberikan tag antrean menurut pusat biaya lalu mengelompokkan dan melacak biaya Anda berdasarkan pada pusat biaya ini.

Untuk informasi selengkapnya, baca Memberi Tag Antrean Amazon SQS Anda di Panduan Pengembang Amazon SQS. Untuk informasi selengkapnya tentang pemberian tag alokasi biaya sumber daya AWS, baca Menggunakan Tanda Alokasi Biaya di Panduan Pengguna Manajemen Penagihan dan Biaya AWS.

Kecuali dinyatakan lain, harga tersebut tidak termasuk pajak dan beban biaya yang berlaku, termasuk PPN dan pajak penjualan yang berlaku.

Untuk pelanggan dengan alamat penagihan Jepang, penggunaan AWS di wilayah mana pun tunduk pada Pajak Konsumsi Jepang. Untuk informasi selengkapnya, baca FAQ Pajak Konsumsi Amazon Web Services.

Fitur, fungsionalitas, dan antarmuka

Ya. Anda dapat membuat aplikasi Anda lebih fleksibel dan dapat diskalakan dengan menggunakan Amazon SQS yang memiliki layanan komputasi seperti Amazon EC2, Amazon Elastic Container Service (ECS), dan AWS Lambda, serta dengan penyimpanan dan layanan basis data seperti Amazon Simple Storage Service (Amazon S3), dan Amazon DynamoDB.

Anda dapat mengakses Amazon SQS menggunakan Konsol Manajemen AWS, yang membantu dalam membuat antrean Amazon SQS dan mengirim pesan dengan mudah.

Amazon SQS juga menyediakan API layanan web. Layanan ini juga berintegrasi dengan SDK AWS, yang memungkinkan Anda bekerja dengan bahasa pemrograman pilihan Anda.

Untuk informasi tentang operasi antrean pesan, baca Referensi API Amazon SQS.

Hanya pemilik akun AWS (atau akun AWS yang telah didelegasi haknya oleh pemilik akun tersebut) yang dapat melakukan operasi di antrean pesan Amazon SQS.

Semua pesan memilki ID unik global yang dikembalikan oleh Amazon SQS pada saat pesan dikirim ke antrean pesan. ID tersebut diperlukan untuk melakukan tindakan lebih lanjut pada pesan, tetapi bermanfaat untuk melacak catatan pesan khusus di antrean pesan.

Pada saat Anda menerima pesan dari antrean pesan, respons mencakup penanganan catatan yang harus Anda berikan pada saat menghapus pesan.

Untuk informasi selengkapnya, lihat Antrean dan Pengidentifikasi Pesan di Panduan Developer Amazon SQS.

Di Amazon SQS, Anda dapat menggunakan API atau konsol untuk mengonfigurasi antrean surat mati, yang menerima pesan dari antrean sumber lain. Saat mengonfigurasi antrean surat mati, Anda diminta untuk mengatur izin yang sesuai untuk redrive antrean surat mati menggunakan RedriveAllowPolicy.

RedriveAllowPolicy menyertakan parameter untuk izin redrive antrean surat mati. Ini mendefinisikan antrean sumber mana yang dapat menentukan antrean surat mati sebagai objek JSON.

Setelah Anda membuat antrean surat mati, ia menerima pesan setelah jumlah maksimum upaya pemrosesan tidak dapat diselesaikan. Anda dapat menggunakan antrean surat mati untuk mengisolasi pesan yang tidak dapat diproses untuk analisis selanjutnya.

Untuk informasi selengkapnya, lihat Menggunakan Antrean Surat Mati Amazon SQS di Panduan Developer Amazon SQS.

Batas waktu visibilitas adalah periode waktu selama Amazon SQS mencegah komponen lain yang memakai data agar tidak menerima dan memproses pesan. Untuk informasi selengkapnya, lihat Batas Waktu Visibilitas di Panduan Developer Amazon SQS.

Ya. Pesan Amazon SQS dapat berisi hingga 10 atribut metadata. Anda dapat menggunakan atribut pesan untuk memisahkan isi pesan dengan metadata yang menjelaskannya. Hal ini membantu untuk memproses dan menyimpan informasi dengan kecepatan dan efisiensi yang lebih tinggi karena aplikasi Anda tidak harus memeriksa seluruh pesan sebelum memahami bagaimana cara memprosesnya.

Atribut pesan Amazon SQS membentuk atribut rangkap tiga berisi nama-tipe-nilai. Tipe yang didukung mencakup string, biner, dan angka (termasuk angka bulat, bilangan titik mengambang, dan rangkap). Untuk informasi selengkapnya, baca Menggunakan Atribut Pesan Amazon SQS di Panduan Developer Amazon SQS.

Untuk menentukan nilai waktu dalam antrean, Anda dapat meminta atribut SentTimestamp pada saat menerima pesan. Mengurangi nilai tersebut dengan hasil waktu saat ini pada nilai waktu dalam antrean.

Latensi biasa pada permintaan API SendMessage, ReceiveMessage, dan DeleteMessage adalah dalam puluhan atau ratusan milidetik.

Apabila ID akun AWS tidak tersedia (misalnya, pada saat pengguna anonim mengirim pesan), Amazon SQS akan memberikan alamat IP.

Polling panjang Amazon SQS adalah cara untuk mencari pesan dari antrean Amazon SQS Anda. Sementara polling pendek reguler segera kembali, bahkan jika antrean pesan yang sedang dilakukan polling kosong, polling panjang tidak mengembalikan respons hingga pesan sampai di antrean pesan, atau batas waktu polling panjang.

Polling panjang membuatnya terjangkau untuk mencari pesan dari antrean Amazon SQS sesaat setelah pesan tersebut tersedia. Menggunakan polling panjang dapat mengurangi biaya penggunaan SQS, karena Anda dapat mengurangi jumlah penerimaan yang kosong. Untuk informasi selengkapnya, baca Polling Panjang Amazon SQS di Panduan Developer Amazon SQS.

Tidak. Panggilan ReceiveMessage polling panjang ditagihkan sama persis dengan panggilan ReceiveMessage polling pendek.

Di hampir semua kasus, polling panjang Amazon SQS lebih dipilih daripada polling pendek. Permintaan polling panjang memungkinkan pelanggan antrean Anda menerima pesan secepatnya setelah pesan tersebut sampai di antrean Anda sementara mengurangi jumlah instans ReceiveMessageResponse kosong yang dikembalikan.

Polling panjang Amazon SQS menghasilkan kinerja yang lebih tinggi dengan biaya yang lebih terjangkau pada sebagian besar kasus penggunaan. Namun demikian, jika aplikasi Anda perlu respons cepat dari panggilan ReceiveMessage, Anda mungkin tidak dapat memanfaatkan polling panjang tanpa beberapa modifikasi pada aplikasi Anda.

Misalnya, jika aplikasi Anda menggunakan utas tunggal untuk melakukan polling berbagai antrean, pengalihan dari polling pendek ke polling panjang mungkin tidak akan bekerja, karena utas tunggal akan menunggu batas waktu polling panjang pada antrean mana pun yang kosong, yang menunda pemrosesan antrean apa pun yang mungkin berisi pesan.

Dalam aplikasi tersebut, penggunaan utas tunggal untuk memproses hanya satu antrean merupakan praktik yang baik, yang memungkinkan aplikasi untuk mengambil manfaat yang diberikan oleh polling panjang Amazon SQS.

Umumnya, Anda sebaiknya menggunakan maksimum 20 detik untuk batas waktu polling panjang. Karena nilai batas waktu polling panjang yang lebih tinggi akan mengurangi jumlah instans ReceiveMessageResponse kosong yang dikembalikan, cobalah untuk mengatur batas waktu polling panjang Anda setinggi mungkin.

Jika batas waktu maksimum 20 detik tidak bekerja untuk aplikasi Anda (lihat misalnya pada pertanyaan sebelumnya), atur batas waktu polling panjang yang lebih singkat, selama 1 detik.

Semua AWS SDK bekerja dengan polling panjang 20 detik secara default. Jika Anda tidak menggunakan AWS SDK untuk mengakses Amazon SQS, atau jika Anda mengonfigurasi AWS SDK untuk secara khusus memiliki batas waktu yang lebih singkat, Anda perlu mengubah klien Amazon SQS Anda untuk memungkinkan permintaan yang lebih panjang atau untuk menggunakan batas waktu polling panjang yang lebih singkat.

AmazonSQSBufferedAsyncClient untuk Java memberikan impelementasi antarmuka AmazonSQSAsyncClient dan menambahkan beberapa fitur penting:

  • Batch otomatis berbagai permintaan SendMessage, DeleteMessage, atau ChangeMessageVisibility tanpa perubahan aplikasi yang diperlukan
  • Pencarian pesan sebelumnya ke dalam bufer lokal yang memungkinkan aplikasi Anda segera memproses pesan dari Amazon SQS tanpa perlu menunggu pesan diambil

Dengan bekerja sama, batching otomatis dan pencarian sebelumnya meningkatkan throughput dan mengurangi latensi aplikasi Anda sementara mengurangi biaya dengan melakukan permintaan Amazon SQS yang lebih sedikit. Untuk informasi selengkapnya, lihat Buffering Sisi Klien dan Batching Permintaan di Panduan Developer Amazon SQS.

Anda dapat mengunduh AmazonSQSBufferedAsyncClient sebagai bagian dari AWS SDK for Java.

Tidak. AmazonSQSBufferedAsyncClient untuk Java diterapkan sebagai penggantian drop-in untuk AmazonSQSAsyncClient yang sudah ada.

Jika Anda memperbarui aplikasi untuk menggunakan AWS SDK terbaru dan mengubah klien Anda untuk menggunakan AmazonSQSBufferedAsyncClient for Java bukan AmazonSQSAsyncClient, aplikasi akan mendapat manfaat tambahan yaitu batching otomatis dan pencarian sebelumnya.

  1. Pada konsol Amazon SQS, pilih antrean standar Amazon SQS.
  2. Di bawah Tindakan Antrean, pilih Berlangganan Antrean pada Topik SNS dari daftar drop-down.
  3. Pada kotak dialog, pilih topik dari Pilih daftar drop-down Topik, dan klik Berlangganan.

Untuk informasi selengkapnya, lihat Berlangganan Antrean Topik Amazon SNS di Panduan Developer Amazon SQS.

Ya. Anda dapat menghapus semua pesan dalam antrean pesan Amazon SQS menggunakan tindakan PurgeQueue.

Apabila Anda membersihkan antrean pesan, semua pesan yang sebelumnya terkirim ke antrean pesan akan dihapus. Karena antrean pesan Anda dan atributnya masih ada, tidak perlu mengonfigurasi ulang antrean pesan; Anda tetap dapat menggunakannya.

Untuk hanya menghapus pesan tertentu, gunakan tindakan DeleteMessage atau DeleteMessageBatch.

Untuk informasi selengkapnya, lihat Tutorial ini: Membersihkan Pesan dari Antrean Amazon SQS.

Antrean FIFO

Antrean FIFO tersedia di semua wilayah AWS tempat Amazon SQS tersedia. Lihat di sini untuk detail tentang ketersediaan wilayah Amazon SQS.

Antrean FIFO dirancang agar tidak pernah memasukkan pesan duplikat. Meski begitu, pembuat pesan Anda mungkin memasukkan duplikat dalam skenario tertentu: misalnya, jika pembuat pesan mengirimkan sebuah pesan, namun tidak menerima respons, lalu ia mengirimkan ulang pesan yang sama. API Amazon SQS menyediakan fungsionalitas penghapusan duplikat yang mencegah pembuat pesan mengirimkan duplikat. Duplikat apa pun yang dimasukkan oleh pembuat pesan akan dihapus dalam 5 menit interval penghapusan duplikat.

Untuk antrean standar, Anda mungkin terkadang menerima salinan duplikat pesan (pengiriman setidaknya sekali). Jika Anda menggunakan antrean standar, Anda harus merancang aplikasi Anda menjadi idempoten (artinya, aplikasi Anda tidak boleh terpengaruh ketika memproses pesan yang sama lebih dari satu kali).

Untuk informasi selengkapnya, lihat Pemrosesan Tepat-Sekali di Panduan Developer Amazon SQS.

Tidak, antrean standar Amazon SQS (nama baru untuk antrean yang sudah ada) tetap tidak berubah, dan Anda tetap dapat membuat antrean standar. Antrean ini terus menyediakan skalabilitas dan throughput tertinggi; namun, Anda tidak akan mendapatkan jaminan penyusunan dan duplikat yang mungkin terjadi.

Antrean standar cocok untuk banyak skenario, seperti distribusi kerja dengan beberapa pelanggan idempoten.

Tidak. Anda harus memilih jenis antrean saat Anda membuatnya. Meski begitu, Anda tetap dapat berpindah ke antrean FIFO. Untuk informasi selengkapnya, lihat Memindahkan dari Antrean Standar ke Antrean FIFO di Panduan Developer Amazon SQS.

Untuk memanfaatkan fungsionalitas antrean FIFO, Anda harus menggunakan AWS SDK terbaru.

Antrean FIFO menggunakan tindakan API seperti antrean standar, dan mekanika untuk menerima dan menghapus pesan serta mengubah batas waktu visibilitas yang sama. Namun, saat mengirimkan pesan, Anda harus menentukan ID grup pesan. Untuk informasi selengkapnya, baca Logika Antrean FIFO di Panduan Developer Amazon SQS.

Antrean FIFO mendukung semua metrik yang didukung antrean standar. Untuk antrean FIFO, semua perkiraan metrik menghasilkan jumlah yang akurat. Misalnya, metrik AWS CloudWatch berikut didukung:

  • ApproximateNumberOfMessagesDelayed - Jumlah pesan dalam antrean yang ditangguhkan dan tidak tersedia untuk segera dibaca.
  • ApproximateNumberOfMessagesVisible - Jumlah pesan tersedia untuk diambil dari antrean.
  • ApproximateNumberOfMessagesNotVisible - Jumlah pesan yang berada dalam pengiriman (terkirim ke klien namun belum dihapus atau belum mencapai ujung jendela visibilitas mereka).

Pesan dikelompokkan dalam "bundel" yang disusun terpisah dalam antrean FIFO. Untuk setiap ID grup, semua pesan akan dikirim dan diterima dalam urutan yang ketat. Meski begitu, pesan dengan nilai ID grup berbeda mungkin dikirim dan diterima di luar susunan. Anda harus menghubungkan ID grup pesan dengan pesan. Jika Anda tidak memberikan ID grup pesan, tindakan akan gagal.

Jika beberapa host (atau utas berbeda pada host yang sama) mengirimkan pesan dengan ID grup pesan yang sama dengan yang dikirim ke antrean FIFO, maka Amazon SQS akan mengirimkan pesan sesuai urutan masuk untuk diproses. Untuk memastikan Amazon SQS mempertahankan urutan pesan dikirim dan diterima, pastikan beberapa pengirim mengirimkan setiap pesan dengan ID grup pesan yang unik.

Untuk informasi selengkapnya, baca Logika Antrean FIFO di Panduan Developer Amazon SQS.

Ya. Satu pembuat pesan atau lebih dapat mengirimkan pesan ke antrean FIFO. Pesan disimpan sesuai urutan saat berhasil diterima oleh Amazon SQS.

Jika beberapa pembuat pesan mengirimkan pesan secara paralel, tanpa menunggu respons berhasil dari tindakan SendMessage atau SendMessageBatch, urutan antar pembuat pesan mungkin tidak dipertahankan. Respons tindakan SendMessage atau SendMessageBatch berisi urutan akhir yang digunakan antrean FIFO untuk menempatkan pesan dalam antrean sehingga kode beberapa pembuat pesan paralel Anda dapat menentukan urutan akhir pesan dalam antrean.

Secara rancangan, antrean FIFO Amazon SQS tidak menyajikan pesan dari grup pesan yang sama ke lebih dari satu konsumen dalam satu waktu. Namun, jika antrean FIFO Anda memiliki beberapa grup pesan, Anda dapat memanfaatkan konsumen paralel yang mengizinkan Amazon SQS menyajikan pesan dari grup pesan berbeda kepada konsumen yang berbeda pula.

Secara default, antrean FIFO mendukung hingga 3.000 pesan per detik dengan batching, atau hingga 300 pesan per detik (300 operasi kirim, terima, atau hapus per detik) tanpa batching. Jika memerlukan throughput yang lebih tinggi, Anda dapat mengaktifkan mode throughput tinggi untuk FIFO di konsol Amazon SQS, yang akan mendukung hingga 70.000 pesan per detik tanpa batching dan jumlah yang lebih tinggi dengan batching. Untuk penjelasan yang lebih mendetail mengenai kuota mode throughput tinggi FIFO per wilayah, harap lihat Dokumentasi AWS.

Nama antrean FIFO harus berakhiran dengan sufiks .fifo. Sufiks tersebut terhitung pada batas nama antrean 80 karakter. Untuk menentukan apakah antrean adalah FIFO, Anda dapat memeriksa apakah nama antrean berakhir dengan sufiks tersebut.

Keamanan dan keandalan

Amazon SQS menyimpan semua antrean pesan dan pesan di dalam satu wilayah AWS yang memiliki ketersediaan tinggi bersama dengan beberapa Availability Zone (AZ) yang redundan, sehingga tidak ada satu pun kegagalan komputer, jaringan atau AZ yang dapat membuat pesan tidak bisa diakses Untuk informasi selengkapnya, lihat Wilayah dan Zona Ketersediaan di Panduan Pengguna Amazon Relational Database Service.

Mekanisme autentikasi memastikan bahwa pesan yang disimpan di dalam antrean pesan Amazon SQS diamankan dari akses yang tidak terotorisasi. Anda dapat mengontrol orang yang dapat mengirimkan pesan ke antrean pesan dan orang yang dapat menerima pesan dari antrean pesan. Untuk keamanan tambahan, Anda dapat membuat aplikasi Anda agar mengenkripsi pesan sebelum ditempatkan dalam antrean pesan.

Amazon SQS memiliki sistem izin berbasis sumber daya tersendiri yang menggunakan kebijakan yang ditulis dalam bahasa yang sama dengan kebijakan AWS Identity and Access Management (IAM): contohnya, Anda dapat menggunakan variabel, sama seperti kebijakan IAM. Untuk informasi selengkapnya, lihat Contoh Kebijakan Amazon SQS di Panduan Developer Amazon SQS.

Amazon SQS mendukung protokol HTTP over SSL (HTTPS) dan Transport Layer Security (TLS). Kebanyakan klien secara otomatis dapat berunding untuk menggunakan versi terbaru TLS tanpa perubahan kode atau konfigurasi apa pun. Amazon SQS mendukung versi 1.0, 1.1, dan 1.2 dari protokol Transport Layer Security (TLS) di semua wilayah.

Saat Amazon SQS mengembalikan pesan kepada Anda, pesan akan tetap berada dalam antrean baik Anda menerima benar-benar menerima pesan atau tidak. Anda bertanggung jawab untuk menghapus pesan dan permintaan penghapusan menyatakan bahwa Anda telah selesai memproses pesan.

Jika Anda tidak menghapus pesan, Amazon SQS akan mengirimkan kembali pesan tersebut saat menerima permintaan penerimaan lain. Untuk informasi selengkapnya, lihat Batas Waktu Visibilitas di Panduan Developer Amazon SQS.

Tidak. Antrean FIFO tidak pernah memasukkan pesan duplikat.

Untuk antrean standar, dalam keadaan tertentu, Anda mungkin menerima pesan yang dihapus sebelumnya untuk kali kedua. 

Saat Anda mengirimkan permintaan DeleteMessage pada pesan yang dihapus sebelumnya, Amazon SQS akan mengembalikan respons berhasil.

Enkripsi Sisi Server (SSE)

SSE memungkinkan Anda untuk mengirimkan data sensitif dalam antrean yang terenkripsi. SSE melindungi konten pesan pada antrean Amazon SQS menggunakan kunci yang dikelola dalam AWS Key Management Service (AWS KMS). SSE mengenkripsi pesan segera setelah Amazon SQS menerimanya. Pesan itu kemudian disimpan dalam bentuk terenkripsi dan Amazon SQS mendekripsi pesan hanya saat pesan tersebut terkirim ke konsumen yang sah.

Untuk informasi selengkapnya, lihat Melindungi Data Menggunakan Enkripsi Sisi Server (SSE) dan AWS KMS dalam Panduan Developer Amazon SQS

Ya. Untuk melakukan hal ini Anda perlu mengaktifkan kompatibilitas antar layanan AWS (misal Amazon CloudWatch Events, Amazon S3, serta Amazon SNS), dan Antrean dengan SSE. Untuk petunjuk yang mendetail, lihat Bagian kompatibilitas dari Panduan Developer SQS.  

Enkripsi di sisi server (SSE) untuk Amazon SQS tersedia di semua wilayah AWS tempat Amazon SQS tersedia. Lihat di sini untuk detail tentang ketersediaan wilayah Amazon SQS.

Untuk mengaktifkan SSE pada antrean yang baru atau yang sudah ada menggunakan API Amazon SQS, tentukan ID kunci utama konsumen (CMK): alias, ARN alias, ID kunci, atau ARN kunci dari CMK yang dikelola AWS atau CMK kustom dengan mengatur atribut KmsMasterKeyId dari tindakan CreateQueue ataupun SetQueueAttributes.

Untuk petunjuk detail, lihat Membuat Antrean Amazon SQS dengan Enkripsi Sisi Server dan Mengonfigurasikan Enkripsi di Sisi Server (SSE) untuk Antrean Amazon SQS yang Sudah Ada di Panduan Developer Amazon SQS.

Baik antrean standar maupun FIFO mendukung SSE.

Sebelum Anda dapat menggunakan SSE, Anda harus mengonfigurasikan kebijakan kunci AWS KMS untuk mengizinkan enkripsi antrean serta enkripsi dan dekripsi pesan.

Untuk mengaktifkan SSE untuk antrean, Anda dapat menggunakan kunci master konsumen (CMK) yang dikelola AWS untuk Amazon SQS atau CMK kustom. Untuk informasi selengkapnya, lihat Kunci Utama Pelanggan di Panduan Developer AWS KMS.

Untuk mengirimkan pesan ke antrean terenkripsi, pembuat pesan harus memiliki izin kms:GenerateDataKey dan kms:Decrypt untuk CMK.

Untuk menerima pesan dari antrean terenkripsi, konsumen harus memiliki izin kms:Decrypt untuk CMK apa pun yang digunakan untuk mengenkripsi pesan pada antrean spesifik. Jika antrean bertindak sebagai antrean surat mati, konsumen juga harus memiliki izin kms:Decrypt untuk CMK apa pun yang digunakan untuk mengenkripsi pesan pada antrean sumber.

Untuk informasi selengkapnya, lihat Izin Apa yang Saya Perlukan untuk Menggunakan SSE? di Panduan Developer Amazon SQS.

Tidak ada biaya Amazon SQS tambahan. Namun, terdapat biaya untuk panggilan dari Amazon SQS ke AWS KMS. Untuk informasi selengkapnya, lihat Harga AWS Key Management Service.

Biaya penggunaan AWS KMS tergantung pada periode penggunaan ulang kunci data yang dikonfigurasikan untuk antrean Anda. Untuk informasi selengkapnya, lihat Bagaimana Cara Memperkirakan Biaya Penggunaan AWS KMS? di Panduan Developer Amazon SQS.

SSE mengenkripsi badan pesan dalam antrean Amazon SQS.

SSE tidak mengenkripsi komponen-komponen berikut:

  • Metadata antrean (nama dan atribut antrean)
  • Metadata pesan (ID, tanda waktu, dan atribut pesan)
  • Metrik per-antrean

Amazon SQS membuat kunci data berdasarkan kunci utama pelanggan (CMK) yang dikelola AWS untuk Amazon SQS atau CMK kustom guna menyediakan enkripsi amplop serta dekripsi pesan untuk periode waktu yang dapat dikonfigurasi (mulai dari 1 menit hingga 24 jam).

Untuk informasi selengkapnya, baca Apa yang Dienkripsi SSE untuk Amazon SQS? di Panduan Developer Amazon SQS.

SSE menggunakan algoritme AES-GCM 256.

SSE tidak membatasi throughput (TPS) Amazon SQS. Jumlah antrean SSE yang dapat Anda buat terbatas pada hal berikut:

  • Periode penggunaan ulang kunci data (1 menit hingga 24 jam).
  • Kuota per-akun AWS KMS (100 TPS secara default).
  • Jumlah pengguna atau akun IAM yang mengakses antrean.
  • Adanya backlog besar (backlog yang lebih besar memerlukan panggilan AWS KMS lebih banyak).

Misalnya, mari kita asumsikan hal berikut:

  • Anda mengatur periode penggunaan ulang kunci data menjadi 5 menit (300 detik).
  • Akun KMS Anda memiliki kuota TPS AWS KMS sebanyak 100 TPS.
  • Anda menggunakan antrean Amazon SQS tanpa backlog dan dengan 1 pengguna IAM untuk tindakan SendMessage atau ReceiveMessage ke semua antrean.

Pada kasus ini, Anda dapat menghitung jumlah maksimal teoretis dari antrean Amazon SQS dengan SSE sebagai berikut:

300 detik × 100 TPS / 1 pengguna IAM = 30.000 antrean

Untuk memperkirakan biaya dan memahami tagihan AWS Anda lebih dalam, Anda mungkin ingin mengetahui seberapa sering Amazon SQS menggunakan CMK Anda.

Catatan: Meski formula berikut dapat memberi Anda gambaran yang sangat bagus mengenai perkiraan biaya, biaya sebenarnya mungkin lebih tinggi karena sifat distribusi Amazon SQS.

Untuk menghitung jumlah permintaan API per antrean (R), gunakan rumus berikut:

R = B / D * (2 * P + C)

B adalah periode tagihan (dalam hitungan detik)

D adalah periode penggunaan ulang kunci data (dalam hitungan detik)

P adalah jumlah pengguna utama pembuat permintaan yang mengirimkan ke antrean Amazon SQS.

C adalah jumlah pengguna utama pemakai yang menerima dari antrean Amazon SQS.

Penting: Secara umum, pengguna utama pembuat permintaan dikenai biaya dua kali lipat dari biaya pengguna utama pemakai. Untuk informasi selengkapnya, lihat Bagaimana Cara Kerja Periode Penggunaan Ulang Kunci Data? di Panduan Developer Amazon SQS.

Jika pembuat dan konsumen memiliki pengguna IAM yang berbeda, biaya akan meningkat.

Untuk informasi selengkapnya, lihat Bagaimana Cara Memperkirakan Biaya Penggunaan AWS KMS? di Panduan Developer Amazon SQS

Kepatuhan

Ya. Amazon SQS bersertifikasi PCI DSS Tingkat 1. Untuk informasi selengkapnya, lihat Kepatuhan PCI.

Ya, AWS telah memperluas program kepatuhan HIPAA untuk memasukkan Amazon SQS sebagai Layanan yang Memenuhi Syarat HIPAA. Jika Anda memiliki Perjanjian Rekanan Bisnis (BAA) dengan AWS, Anda dapat menggunakan Amazon SQS untuk membuat aplikasi yang patuh HIPAA, menyimpan pesan saat dalam transit, dan mengirimkan pesan—termasuk pesan yang berisi informasi kesehatan dilindungi (PHI).

Jika Anda telah menjalankan BAA dengan AWS, Anda bisa mulai menggunakan Amazon SQS secara langsung. Jika Anda tidak memiliki BAA atau memiliki pertanyaan tentang penggunaan AWS untuk aplikasi patuh HIPAA Anda, hubungi kami untuk informasi selengkapnya.

Catatan: Jika Anda lebih memilih untuk mentransfer PHI melalui Amazon SQS (atau jika Anda memiliki pesan dengan ukuran lebih besar dari 256 KB), Anda dapat mengirimkan payload pesan Amazon SQS melalui Amazon S3 menggunakan Pustaka Amazon SQS Extended Client Library for Java (Amazon S3 adalah ayanan yang memenuhi syarat HIPAA, kecuali untuk penggunaan Amazon S3 Transfer Acceleration). Untuk informasi selengkapnya, lihat Menggunakan Amazon SQS Extended Client Library for Java di Panduan Developer Amazon SQS.

Limit dan batasan

Retensi pesan yang lebih panjang memberikan fleksibilitas lebih besar untuk memungkinkan interval lebih panjang antara produksi dan konsumsi pesan.

Anda dapat mengonfigurasi periode retensi pesan Amazon SQS menjadi nilai dari 1 menit hingga 14 hari. Konfigurasi default adalah 4 hari. Setelah kuota retensi pesan tercapai, pesan Anda akan dihapus secara otomatis.

Untuk mengonfigurasi periode retensi pesan, atur atribut MessageRetentionPeriod menggunakan konsol atau menggunakan metode Distributiveness. Gunakan atribut ini untuk menentukan jumlah detik untuk mempertahankan pesan dalam Amazon SQS.

Anda dapat menggunakan atribut MessageRetentionPeriod untuk mengatur periode retensi pesan dari 60 detik (1 menit) hingga 1.209.600 detik (14 hari). Untuk informasi selengkapnya tentang cara menggunakan atribut pesan ini, lihat Referensi API Amazon SQS.

Untuk mengonfigurasi ukuran pesan maksimum, gunakan konsol atau metode SetQueueAttributes untuk mengatur atribut MaximumMessageSize. Atribut ini menentukan jumlah byte yang dapat dimuat pesan Amazon SQS. Atur atribut ini hingga nilai di antara 1.024 byte (1 KB), dan 262.144 byte (256 KB). Untuk informasi selengkapnya, baca Menggunakan Atribut Pesan Amazon SQS di Panduan Developer Amazon SQS.

Untuk mengirimkan pesan yang berukuran lebih besar dari 256 KB, gunakan Amazon SQS Extended Client Library for Java. Pustaka ini memungkinkan Anda mengirimkan pesan Amazon SQS yang memuat referensi ke muatan pesan dalam Amazon S3 yang bisa berukuran sebesar 2 GB.

Amazon SQS dapat memuat hingga 256 KB data teks, termasuk XML, JSON dan teks tak berformat. Karakter Unicode berikut diterima:

#x9 | #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to #x10FFFF]

Untuk informasi selengkapnya, lihat Spesifikasi XML 1.0.

Satu antrean pesan Amazon SQS dapat memuat jumlah pesan yang tidak terbatas. Namun, terdapat kuota sebanyak 120.000 untuk jumlah pesan dalam pengiriman untuk antrean standar dan 120.000 untuk antrean FIFO. Pesan akan dikirimkan setelah diterima dari antrean oleh komponen yang menyerap, tetapi belum dihapus dari antrean tersebut.

Anda dapat membuat berapa pun jumlah antrean pesan.

Nama antrean dibatasi hingga 80 karakter.

Anda dapat menggunakan karakter alfanumerik, tanda hubung (-), dan garis bawah (_).

Nama antrean pesan harus unik dalam akun dan wilayah AWS. Anda dapat menggunakan kembali nama antrean setelah menghapus antrean pesan tersebut.

Berbagi antrean

Anda dapat menghubungkan pernyataan kebijakan akses (dan menentukan izin yang diberikan) bersama dengan antrean pesan yang dibagikan. Amazon SQS menyediakan API untuk pembuatan dan pengelolaan pernyataan kebijakan akses:

  • AddPermission
  • RemovePermission
  • SetQueueAttributes
  • GetQueueAttributes

Untuk informasi selengkapnya, lihat Referensi API Amazon SQS.

Pemilik antrean pesan membayar akses antrean pesan bersama.

API Amazon SQS menggunakan nomor akun AWS untuk mengidentifikasi pengguna AWS.

Untuk membagikan antrean pesan dengan pengguna AWS, sediakan URL lengkap dari antrean pesan yang ingin Anda bagikan. Operasi CreateQueue dan ListQueues akan menghasilkan URL ini sebagai responsnya.

Ya. Anda dapat mengonfigurasi kebijakan akses yang memungkinkan pengguna anonim untuk mengakses antrean pesan.

Izin API memberikan antarmuka untuk membagikan akses untuk antrean pesan ke pengembang. Namun, API ini tidak dapat mengizinkan akses bersyarat atau kasus penggunaan lebih lanjut.

Operasi SetQueueAttributes mendukung bahasa kebijakan akses penuh. Contohnya, Anda dapat menggunakan bahasa kebijakan untuk membatasi akses ke antrean pesan dengan alamat IP dan waktu dalam sehari. Untuk informasi selengkapnya, lihat Contoh Kebijakan Amazon SQS di Panduan Developer Amazon SQS.

Akses dan wilayah layanan

Untuk ketersediaan wilayah layanan, lihat Tabel Wilayah Infrastruktur Global AWS.

Tidak. Setiap antrean pesan Amazon SQS bersifat independen dalam tiap wilayah.

Harga Amazon SQS sama untuk semua wilayah, kecuali China (Beijing) Untuk informasi selengkapnya, lihat Harga Amazon SQS.

Anda dapat mentransfer data antar Amazon SQS dan Amazon EC2 atau AWS Lambda tanpa biaya tambahan dalam satu wilayah yang sama.

Saat Anda mentransfer data antara Amazon SQS dan Amazon EC2 atau AWS Lambda dalam wilayah yang berbeda, Anda akan dikenakan tarif transfer data normal. Untuk informasi selengkapnya, lihat Harga Amazon SQS.

Antrean surat mati

Antrean surat mati adalah antrean Amazon SQS yang dapat dituju oleh antrean sumber untuk mengirimkan pesan jika aplikasi konsumen antrean sumber tidak berhasil menyerap pesan. Antrean surat mati memudahkan Anda menangani kegagalan penyerapan pesan dan mengelola siklus hidup pesan yang tidak diserap. Anda dapat mengatu konfigurasi alarm untuk pesan apa pun yang dikirim ke antrean surat mati, memeriksa log untuk pengecualian yang mungkin menyebabkan pesan terkirim ke antrean tersebut, dan menganalisis konten pesan untuk mendiagnosis masalah aplikasi konsumen. Setelah berhasil memulihkan aplikasi konsumen, Anda dapat mengarahkan ulang pesan dari antrean surat mati ke antrean sumber.

Saat Anda membuat antrean sumber, Amazon SQS mengizinkan Anda untuk menentukan antrean surat mati (DLQ) dan syarat yang mengharuskan SQS untuk memindahkan pesan ke DLQ. Syaratnya adalah frekuensi konsumen dapat menerima pesan dari antrean, yang disebut sebagai maxReceiveCount. Konfigurasi antrean surat mati dengan antrean sumber dan maxReceiveCount dikenal sebagai kebijakan redrive. Saat ReceiveCount untuk pesan melebihi maxReceiveCount untuk suatu antrean, Amazon SQS dirancang untuk memindahkan pesan ke antrean surat mati (dengan ID pesan aslinya). Misalnya, jika antrean sumber memiliki kebijakan redrive beserta maxReceiveCount diatur ke lima, dan konsumen antrean sumber menerima pesan enam kali tanpa berhasil menyerapnya, SQS memindahkan pesan tersebut ke antrean surat mati.

Kebijakan redrive mengelola paruh pertama siklus hidup pesan yang tidak diserap dengan memindahkannya dari antrean sumber ke antrean surat mati. Kini, redrive antrean surat mati ke antrean sumber menyelesaikan siklus secara efisien dengan memindahkan pesan kembali ke antrean sumber pesan tersebut, seperti yang ditunjukkan di bawah ini.

Cara kerja AWS Local Zones

Pertama, hal ini memungkinkan Anda untuk menyelidiki sampel pesan yang tersedia di antrean surat mati dengan menunjukkan atribut pesan dan metadata terkait. Kemudian, setelah menyelidiki pesan, Anda dapat memindahkannya kembali ke antrean sumbernya. Anda juga dapat memilih kecepatan redrive untuk mengatur konfigurasi laju Amazon SQS memindahkan pesan dari antrean surat mati ke antrean sumber.

Ya. Tetapi, Anda harus menggunakan antrean dead letter FIFO bersama dengan antrean FIFO. (Sama halnya, Anda hanya dapat menggunakan antrean surat mati standar dengan antrean standar.)