PERF03-BP01 Menggunakan penyimpanan data yang dibuat khusus yang paling mendukung persyaratan akses dan penyimpanan data Anda - Pilar Efisiensi Kinerja

PERF03-BP01 Menggunakan penyimpanan data yang dibuat khusus yang paling mendukung persyaratan akses dan penyimpanan data Anda

Pahami karakteristik data (seperti dapat dibagikan, ukuran, ukuran cache, pola akses, latensi, throughput, dan persistensi data) untuk memilih penyimpanan data khusus (penyimpanan atau basis data) yang tepat untuk beban kerja Anda.

Antipola umum:

  • Anda bertahan dengan satu solusi basis data disebabkan pengetahuan dan pengalaman internal tentang satu jenis solusi basis data tertentu.

  • Anda berasumsi bahwa semua beban kerja memiliki persyaratan penyimpanan dan akses data yang serupa.

  • Anda belum mengimplementasikan katalog data untuk menginventarisasi aset data Anda.

Manfaat menjalankan praktik terbaik ini: Dengan memahami karakteristik dan persyaratan data, Anda dapat menentukan teknologi penyimpanan yang paling efisien dan berkinerja paling tinggi sesuai dengan kebutuhan beban kerja Anda.

Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan: Tinggi

Panduan implementasi

Saat memilih dan menerapkan penyimpanan data, pastikan karakteristik penyimpanan, kueri, dan penskalaan mendukung persyaratan data beban kerja. AWS menyediakan banyak teknologi penyimpanan data dan basis data termasuk penyimpanan blok, penyimpanan objek, penyimpanan streaming, sistem file, relasional, nilai kunci, dokumen, penyimpanan dalam memori, grafik, deret waktu, dan basis data buku besar. Setiap solusi manajemen data memiliki opsi dan konfigurasi yang tersedia bagi Anda untuk mendukung kasus penggunaan dan model data Anda. Dengan memahami karakteristik dan persyaratan data, Anda dapat melepaskan diri dari teknologi penyimpanan monolitik dan pendekatan satu-untuk-semua yang terbatas guna memfokuskan diri pada manajemen data yang tepat.

Langkah implementasi

  • Lakukan inventaris berbagai jenis data yang ada dalam beban kerja Anda.

  • Pahami dan dokumentasikan karakteristik serta persyaratan data, termasuk:

    • Tipe data (tidak terstruktur, semi-terstruktur, relasional)

    • Volume dan pertumbuhan data

    • Ketahanan data: persisten, sementara, transien

    • Persyaratan ACID (atomisitas, konsistensi, isolasi, durabilitas)

    • Pola akses data (intensif baca atau intensif tulis)

    • Latensi

    • Throughput

    • IOPS (operasi input/output per detik)

    • Periode retensi data

  • Pelajari berbagai penyimpanan data yang tersedia untuk beban kerja Anda di AWS yang dapat memenuhi karakteristik data Anda (sebagaimana diuraikan dalam PERF01-BP01 Mempelajari dan memahami layanan serta fitur cloud yang tersedia). Berikut adalah beberapa contoh teknologi penyimpanan AWS serta karakteristik utamanya:

    Tipe Layanan AWS Karakteristik utama
    Penyimpanan objek Amazon S3 Skalabilitas tak terbatas, ketersediaan tinggi, dan berbagai opsi aksesibilitas. Mentransfer dan mengakses objek masuk dan keluar dari Amazon S3 dapat menggunakan layanan, seperti Transfer Acceleration atau Access Points, untuk mendukung lokasi, kebutuhan keamanan, dan pola akses Anda.
    Penyimpanan pengarsipan Amazon S3 Glacier Dirancang untuk pengarsipan data.
    Penyimpanan streaming

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka (Amazon MSK)

    Penyerapan dan penyimpanan data streaming yang efisien.
    Sistem file bersama

    Amazon Elastic File System (Amazon EFS)

    Sistem file yang dapat dipasang yang dapat diakses oleh berbagai jenis solusi komputasi.

    Sistem file bersama Amazon FSx Dibangun berdasarkan solusi komputasi AWS terbaru untuk mendukung empat sistem file yang umum digunakan: NetApp ONTAP, OpenZFS, Windows File Server, dan Lustre. Amazon FSx memiliki latensi, throughput, dan IOPS yang bervariasi per sistem file dan hal ini harus dipertimbangkan saat memilih sistem file yang tepat untuk kebutuhan beban kerja Anda.
    Penyimpanan blok Amazon Elastic Block Store (Amazon EBS) Layanan penyimpanan blok kinerja tinggi yang dapat diskalakan yang dirancang untuk Amazon Elastic Compute Cloud (Amazon EC2). Amazon EBS mencakup penyimpanan yang didukung SSD untuk beban kerja transaksional intensif IOPS dan penyimpanan yang didukung HDD untuk beban kerja intensif throughput.
    Basis data relasional Amazon AuroraAmazon RDSAmazon Redshift. Didesain untuk mendukung transaksi ACID (atomisitas, konsistensi, isolasi, durabilitas), dan mempertahankan integritas referensial serta konsistensi data yang tinggi. Banyak aplikasi tradisional, perencanaan sumber daya perusahaan (ERP), manajemen hubungan pelanggan (CRM), dan perdagangan elektronik menggunakan basis data relasional untuk menyimpan data mereka.
    Basis data nilai-kunci Amazon DynamoDB Dioptimalkan untuk pola akses umum, biasanya untuk menyimpan dan mengambil data dalam volume besar. Aplikasi web dengan lalu lintas tinggi, sistem perdagangan elektronik, dan aplikasi gaming merupakan kasus penggunaan umum untuk basis data nilai kunci.
    Basis data dokumen Amazon DocumentDB Dirancang untuk menyimpan data semi-terstruktur sebagai dokumen mirip JSON. Basis data ini membantu developer dengan cepat membangun dan memperbarui aplikasi seperti manajemen konten, katalog, dan profil pengguna. 
    Basis data dalam memori Amazon ElastiCache , Amazon MemoryDB for Redis Digunakan untuk aplikasi yang memerlukan akses waktu nyata ke data, latensi rendah, dan throughput paling tinggi. Anda dapat menggunakan basis data dalam memori untuk caching aplikasi, manajemen sesi, papan peringkat game, penyimpanan fitur ML latensi rendah, sistem olah pesan layanan mikro, dan mekanisme streaming throughput tinggi
    Basis data grafik Amazon Neptune Digunakan untuk aplikasi yang harus menavigasi dan melakukan kueri jutaan hubungan antara set data grafik yang sangat terhubung dan latensi milidetik pada skala besar. Banyak perusahaan menggunakan basis data grafik untuk mesin rekomendasi, jaringan sosial, dan deteksi penipuan.
    Basis Data Deret Waktu Amazon Timestream Digunakan untuk mengumpulkan, mempersatukan, dan mengambil wawasan secara efisien dari data yang berubah seiring waktu. Aplikasi internet untuk segala (IoT), DevOps, dan telemetri industri dapat menggunakan basis data deret waktu.
    Kolom lebar Amazon Keyspaces (untuk Apache Cassandra) Menggunakan tabel, baris, dan kolom, tetapi tidak seperti basis data relasional, nama dan format kolomnya bervariasi dari baris ke baris di tabel yang sama. Biasanya Anda akan melihat penyimpanan kolom lebar di aplikasi industri skala tinggi untuk pemeliharaan perlengkapan, pengelolaan armada, dan pengoptimalan rute. 
    Buku besar Amazon Quantum Ledger Database (Amazon QLDB) Memberikan otoritas terpusat yang tepercaya untuk mempertahankan data transaksi yang dapat diskalakan, tetap, dan dapat diverifikasi secara kriptografis untuk setiap aplikasi. Basis data buku besar digunakan untuk sistem catatan, rantai pasokan, registrasi, dan bahkan transaksi perbankan.  
  • Jika Anda membangun platform data, manfaatkan arsitektur data modern di AWS untuk mengintegrasikan danau data, gudang data, dan tempat penyimpanan data Anda yang dibuat khusus.

  • Pertanyaan kunci yang perlu Anda pertimbangkan saat memilih penyimpanan data untuk beban kerja Anda adalah sebagai berikut:

    Pertanyaan Hal-hal yang perlu dipertimbangkan
    Bagaimana data terstruktur?
    Apa tingkat integritas referensial yang dibutuhkan?
    • Untuk kendala utama asing, basis data relasional seperti Amazon RDS dan Aurora dapat memberikan tingkat integritas ini.

    • Biasanya, dalam model data NoSQL, Anda akan melakukan denormalisasi data menjadi satu dokumen atau kumpulan dokumen untuk diambil dalam satu permintaan dan bukannya digabungkan dalam berbagai dokumen atau tabel. 

    Apakah diperlukan kepatuhan terhadap ACID (atomisitas, konsistensi, isolasi, durabilitas)?
    • Jika diperlukan sifat ACID yang terkait dengan basis data relasional, pertimbangkan basis data relasional seperti Amazon RDS dan Aurora.

    • Jika konsistensi yang kuat diperlukan untuk basis data NoSQL, Anda dapat menggunakan bacaan sangat konsisten dengan DynamoDB.

    Bagaimana persyaratan penyimpanan akan berubah seiring waktu? Bagaimana dampaknya pada skalabilitas?
    • Basis data nirserver seperti DynamoDB dan Amazon Quantum Ledger Database (Amazon QLDB) akan melakukan penskalaan secara dinamis.

    • Basis data relasional memiliki batas atas terkait penyimpanan yang tersedia, dan sering kali harus dipartisi secara horizontal menggunakan mekanisme seperti serpihan setelah penyimpanan tersebut mencapai batas ini.

    Berapakah proporsi kueri baca dibandingkan dengan kueri tulis? Apakah caching akan meningkatkan performa?
    • Beban kerja yang sarat baca dapat diuntungkan dari lapisan caching, seperti ElastiCache atau DAX jika basis datanya DynamoDB.

    • Bacaan juga dapat dilimpahkan ke replika baca dengan basis data relasional seperti Amazon RDS.

    Apakah penyimpanan dan modifikasi (OLTP - Pemrosesan Transaksi Online) atau pengambilan dan pelaporan (OLAP - Pemrosesan Analitik Online) memiliki prioritas lebih tinggi?
    • Untuk pemrosesan transaksional baca apa adanya throughput tinggi, pertimbangkan basis data NoSQL seperti DynamoDB.

    • Untuk throughput tinggi dan pola baca yang kompleks (seperti join) dengan konsistensi, gunakan Amazon RDS.

    • Untuk kueri analitik, pertimbangkan basis data kolom seperti Amazon Redshift atau ekspor data ke Amazon S3 dan melakukan analisis menggunakan Athena atau Amazon QuickSight.

    Tingkat durabilitas apa yang diperlukan data?
    • Aurora secara otomatis mereplikasi data Anda di tiga Zona Ketersediaan dalam satu Wilayah, yang artinya data Anda sangat tahan lama dengan lebih sedikit kemungkinan hilangnya data.

    • DynamoDB secara otomatis direplikasi di beberapa Zona Ketersediaan, memberikan durabilitas data dan ketersediaan tinggi.

    • Amazon S3 memberikan 11 sembilan durabilitas. Banyak layanan basis data seperti Amazon RDS dan DynamoDB mendukung ekspor data ke Amazon S3 untuk pengarsipan dan retensi jangka panjang.

    Apakah ada keinginan untuk beralih dari mesin basis data komersial atau biaya lisensi?
    Apakah harapan operasional untuk basis data? Apakah beralih ke layanan terkelola merupakan masalah utama?
    • Pemanfaatan Amazon RDS sebagai ganti Amazon EC2, dan DynamoDB atau Amazon DocumentDB sebagai ganti hosting mandiri basis data NoSQL dapat mengurangi biaya tambahan operasional.

    Bagaimana basis data diakses saat ini? Apakah hanya akses aplikasi, atau adakah pengguna kecerdasan bisnis (BI) dan aplikasi umum lain yang terhubung?
    • Jika Anda memiliki ketergantungan pada alat eksternal maka Anda mungkin harus mempertahankan kompatibilitas dengan basis data yang didukungnya. Amazon RDS sepenuhnya kompatibel dengan berbagai versi mesin yang didukungnya, termasuk Microsoft SQL Server, Oracle, MySQL, dan PostgreSQL.

  • Lakukan uji coba dan uji tolok ukur di lingkungan nonproduksi untuk mengidentifikasi penyimpanan data mana yang paling sesuai dengan kebutuhan beban kerja Anda.

Sumber daya

Dokumen terkait:

Video terkait:

Contoh terkait: