Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pertimbangkan basis data yang dibuat khusus
Gambaran umum
Salah satu aspek paling mahal dari menjalankan Microsoft-based beban kerja berasal dari lisensi database komersial, seperti SQL Server. Bisnis sering melakukan standarisasi pada SQL Server sebagai platform database pilihan dan menjadi mendarah daging dalam budaya pengembangan organisasi. Pengembang umumnya memilih Server-based model SQL relasional terlepas dari kasus penggunaannya. Alasan meliputi:
-
Bisnis ini sudah memiliki and/or lisensi instans SQL Server yang tersedia.
-
Tim telah terbiasa dengan model pemrograman SQL melalui penggunaan perpustakaan bersama, ORM, dan logika bisnis.
-
Manajemen tidak menyadari alternatif.
-
Pengembang tidak mengetahui alternatif.
Purpose-built database dapat mengakomodasi pola akses data dari kasus penggunaan Anda. Basis data ini semakin diadopsi oleh bisnis karena mereka mengadopsi arsitektur yang lebih modern (seperti layanan mikro) dan sebagai ruang lingkup aplikasi individu yang sempit.
Database yang dibuat khusus tidak menghalangi model relasional, atau memerlukan model NoSQL (non-relasional). Bahkan, database relasional dianggap dibangun khusus ketika dipilih sebagai respons terhadap kebutuhan spesifik beban kerja. Penggunaan database yang dibuat khusus dapat membantu tim untuk mengurangi biaya database yang terkait dengan aplikasi .NET mereka, sementara juga mendapatkan manfaat cloud standar, seperti skalabilitas, ketahanan, dan pengurangan angkat berat yang tidak berdiferensiasi.
Tabel berikut menunjukkan basis data yang dibuat khusus yang ditawarkan oleh. AWS
| Basis Data | Tipe | Karakteristik |
|---|---|---|
| Amazon Aurora PostgreSQL atau Amazon Aurora MySQL | Relasional | Gunakan kasus di mana data memiliki struktur tetap Database relasional secara alami menjaga konsistensi data melalui transaksi ACID |
| Amazon DynamoDB |
Key-value pasangan | Database NoSQL yang menyimpan data menggunakan struktur data tabel hash Penyimpanan kinerja tinggi dan pengambilan data tidak terstruktur Kasus penggunaan termasuk profil pengguna, status sesi, dan data keranjang belanja |
| Amazon ElastiCache |
In-memory | Database NoSQL berkinerja tinggi yang menyimpan data tidak terstruktur dalam memori dengan waktu akses sub-milidetik Digunakan untuk data fana yang sering diakses seperti sesi pengguna, dan sebagai lapisan caching di depan penyimpanan data lain yang lebih lambat Termasuk dukungan untuk keduanya ElastiCache (Redis OSS) dan ElastiCache (Memcached) |
| Amazon MemoryDB |
Tahan lama dalam memori | Database buatan khusus yang kompatibel dengan Redis dengan penyimpanan yang tahan lama |
| Amazon Timestream |
Deret waktu | Database dirancang untuk konsumsi data throughput tinggi dalam urutan temporal Kasus penggunaan termasuk aplikasi Internet of Things (IoT) dan menyimpan metrik atau data telemetri |
| Amazon DocumentDB |
Dokumen | Database NoSQL yang menyimpan data tanpa struktur yang ditentukan atau hubungan yang dipaksakan dengan data lain Sering digunakan untuk beban kerja intensif baca seperti katalog produk |
| Amazon Neptune |
Grafik | Database NoSQL yang menyimpan data dan representasi koneksi antar item data Kasus penggunaan termasuk deteksi penipuan, mesin rekomendasi, dan aplikasi sosial |
| Keyspaces Amazon |
Wide-column | Database terdistribusi kinerja tinggi berdasarkan Apache Cassandra Kasus penggunaan termasuk aplikasi IoT, pemrosesan acara, dan aplikasi game |
Pendorong signifikan adopsi basis data yang dibangun khusus dapat dikaitkan dengan penghapusan lisensi komersial. Namun, kemampuan auto-scaling database seperti DynamoDB (termasuk
AWS menawarkan Babelfish untuk Aurora PostgreSQL
Saat memilih database relasional yang dibuat khusus untuk aplikasi, penting untuk mempertahankan fitur yang sama (atau setara secara fungsional) yang Anda perlukan untuk aplikasi Anda. Rekomendasi ini membahas database yang dibangun khusus sebagai penyimpanan data utama untuk aplikasi. Aplikasi khusus (seperti caching) dibahas dalam rekomendasi lain.
Dampak biaya
Mengadopsi basis data yang dibuat khusus untuk beban kerja.NET, meskipun tidak mungkin mempengaruhi komputasi consumption/cost secara langsung, dapat secara langsung mempengaruhi biaya layanan database yang dikonsumsi oleh aplikasi.NET. Bahkan, penghematan biaya mungkin menjadi tujuan sekunder, jika dibandingkan dengan manfaat tambahan kelincahan, skalabilitas, ketahanan, dan daya tahan data.
Ini di luar cakupan panduan ini untuk menjelaskan proses penuh memilih database yang dibangun khusus untuk aplikasi dan merancang ulang strategi data untuk menggunakannya secara efektif. Untuk informasi selengkapnya, lihat Purpose-built database
Tabel berikut menunjukkan beberapa contoh bagaimana penggantian SQL Server dengan database yang dibangun khusus dapat mengubah biaya aplikasi. Perhatikan bahwa ini hanyalah perkiraan kasar. Benchmark dan optimalisasi beban kerja aktual diperlukan untuk menghitung biaya produksi yang tepat.
Ini adalah beberapa perkiraan basis data yang dibuat khusus yang umum digunakan yang mencakup komputasi sesuai permintaan dan 100 GB SSD, database instance tunggal di. us-east-1 Biaya lisensi termasuk lisensi SQL Server ditambah jaminan perangkat lunak.
Tabel berikut menunjukkan perkiraan biaya untuk contoh database komersial.
| Mesin database | Model perizinan | Contoh type/specs | AWS menghitung + biaya penyimpanan | Biaya lisensi | Total biaya bulanan |
|---|---|---|---|---|---|
| SQL Server edisi Standar di Amazon EC2 | Lisensi disertakan | r6i.2xbesar (RAM 8 GB) CPU/64 | $1,345.36 | $0,00 | $1,345.36 |
| Edisi SQL Server Enterprise di Amazon EC2 | Lisensi disertakan | r6i.2xbesar (RAM 8 GB) CPU/64 | $2.834,56 | $0,00 | $2.834,56 |
| SQL Server edisi Standar di Amazon EC2 | BYOL | r6i.2xbesar (RAM 8 GB) CPU/64 | $644,56 | $456.00 | $1,100.56 |
| Edisi SQL Server Enterprise di Amazon EC2 | BYOL | r6i.2xbesar (RAM 8 GB) CPU/64 | $644,56 | $1,750,00 | $2.394,56 |
| SQL Server edisi Standar di Amazon RDS | db.r6i.2xlarge (RAM 8 GB) CPU/64 | $2.318.30 | $0,00 | $2.318.30 | |
| Edisi SQL Server Enterprise di Amazon RDS | db.r6i.2xlarge (RAM 8 GB) CPU/64 | $3.750,56 | $0,00 | $3.750,56 |
Tabel berikut menunjukkan perkiraan biaya untuk contoh yang dibuat khusus.
| Mesin database | Contoh type/specs | AWS menghitung + biaya penyimpanan | Biaya lisensi | Total biaya bulanan |
|---|---|---|---|---|
| Amazon Aurora PostgreSQL | r6g.2xbesar (RAM 8 GB) CPU/64 | $855,87 | $0,00 | $855,87 |
| DynamoDB | Basis 100 RCU yang disediakan WCU/400 | $72,00 | $72,00 | |
| Amazon DocumentDB | db.r6i.2xlarge (RAM 8 GB) CPU/64 | $778,60 | $778,60 |
penting
Tabel ini didasarkan pada perkiraan biaya lisensi untuk SQL Server dengan Jaminan Perangkat Lunak, selama tiga tahun pertama pembelian. Untuk SQL Server edisi Standar: $4,100, 2 paket inti, 3 tahun. Untuk edisi SQL Server Enterprise: $15.700, paket 2 inti, 3 tahun.
Kami menyarankan Anda mempertimbangkan implikasi biaya sebelum Anda mengadopsi basis data yang dibuat khusus. Misalnya, biaya untuk memperbarui aplikasi untuk menggunakan database yang dibangun khusus terkait dengan kompleksitas aplikasi dan basis data sumber. Pastikan untuk memperhitungkan total biaya kepemilikan saat merencanakan sakelar arsitektur ini. Ini termasuk memfaktorkan ulang aplikasi Anda, meningkatkan keterampilan staf tentang teknologi baru, dan merencanakan kinerja dan konsumsi yang diantisipasi dengan cermat untuk setiap beban kerja. Dari sana, Anda dapat menentukan apakah investasi tersebut sepadan dengan penghematan biaya. Dalam kebanyakan kasus, mempertahankan produk akhir dukungan adalah risiko keamanan dan kepatuhan, dan biaya untuk memulihkannya sepadan dengan usaha dan investasi awal.
Rekomendasi optimisasi biaya
Untuk aplikasi.NET yang mengakses SQL Server, ada pustaka pengganti untuk database relasional yang dibangun khusus. Anda dapat mengimplementasikan pustaka ini dalam aplikasi Anda untuk menggantikan fungsionalitas aplikasi SQL Server yang serupa.
Tabel berikut menyoroti beberapa pustaka yang dapat digunakan dalam banyak skenario umum.
| Pustaka | Basis Data | Penggantian untuk | Kompatibilitas kerangka |
|---|---|---|---|
| Penyedia Inti Kerangka Entitas Npgsql |
Amazon Aurora PostgreSQL | Kerangka Entitas Penyedia Server SQL Inti | .NET modern |
| Penyedia Kerangka Entitas Npgsql 6 |
Amazon Aurora PostgreSQL | Kerangka Entitas 6.0 Penyedia Server SQL | .NET Framework |
| Npgsql (perpustakaan PostgreSQL kompatibelADO.NET ) |
Amazon Aurora PostgreSQL | ADO.NET | Framework/Modern .NET |
| Penyedia Inti Kerangka Entitas MySQL |
Amazon Aurora MySQL | Kerangka Entitas Penyedia Server SQL Inti | .NET modern |
| Pomelo.EntityFrameworkCore.MySql |
Amazon Aurora MySQL | Kerangka Entitas Penyedia Server SQL Inti | .NET modern |
Menghubungkan ke Amazon Aurora PostgreSQL dengan menggunakan Babelfish
Basis data lain yang dibuat khusus memiliki pustaka untuk mengakses pustaka yang kompatibel .NET yang memungkinkan Anda mengakses basis data yang dibuat khusus. Contohnya termasuk:
-
Menggunakan database Amazon DynamoDB NoSQL (dokumentasi)AWS SDK untuk .NET
-
.NET (dokumentasi Timestream)
-
Menggunakan .NET untuk terhubung ke instans DB Neptunus (dokumentasi Neptunus)
Jika Anda bermigrasi ke basis data bawaan tujuan, Anda dapat menggunakan alat ini AWS untuk membantu proses migrasi:
-
AWS Schema Conversion Tool (AWS SCT)
dapat membantu Anda mengubah skema SQL Server ke Amazon Aurora dan Amazon DynamoDB. -
AWS Database Migration Service (AWS DMS)
dapat membantu Anda memigrasikan data, baik satu kali atau secara berkelanjutan, dari SQL Server ke Aurora atau DynamoDB. -
Babelfish Compass
dapat membantu Anda memeriksa kompatibilitas database SQL Server Anda untuk digunakan dengan Babelfish untuk Aurora PostgreSQL.
Sumber daya tambahan
-
Panduan untuk memigrasi SQL Server ke Amazon Aurora PostgreSQL
(Blog Database)AWS -
Hari Perendaman Modernisasi APP Babelfish
(Studio Lokakarya)AWS -
.NET Immersion Day
(Studio AWS Lokakarya) -
Memulai Amazon Timestream dengan.NET
() GitHub -
Purpose-built database untuk aplikasi.NET modern pada AWS
(AWS presentasi)