Praktik terbaik untuk mengonfigurasi MySQL di AWS RDS mencakup beberapa aspek termasuk keamanan, optimasi kinerja, cadangan, pemantauan, dan pemeliharaan untuk memastikan lingkungan basis data yang andal, dapat diskalakan, dan aman.
Praktik Terbaik Keamanan
Jalankan instance MySQL pada port non-default alih-alih 3306 default untuk mengurangi paparan serangan otomatis. Aktifkan enkripsi saat istirahat menggunakan tombol Layanan Manajemen Kunci AWS (KMS) untuk mengamankan data pada tingkat penyimpanan. Kunci KMS default atau kustom dapat digunakan, dengan kunci khusus yang disarankan untuk kontrol yang lebih baik. Pastikan semua snapshot dan baca replika dienkripsi saat enkripsi diaktifkan. Batasi akses ke instance DB dengan mengonfigurasi grup keamanan dengan benar membatasi lalu lintas masuk ke alamat IP atau jaringan yang tepercaya saja. Gunakan Virtual Private Cloud (VPC) dengan subnet pribadi untuk database untuk menghindari paparan publik, dan memungkinkan akses publik hanya jika benar -benar diperlukan. Gunakan otentikasi AWS IAM untuk mengelola akses dengan aman tanpa menyimpan kata sandi secara lokal. Buat pengguna basis data individu dengan prinsip hak istimewa paling tidak, hindari penggunaan pengguna master RDS untuk operasi harian. Putar kredensial secara teratur dan kelola kata sandi dengan aman. Nonaktifkan atau batasi hak istimewa superuser karena Amazon RDS membatasi penggunaan hak istimewa super untuk meningkatkan keamanan.Konfigurasi dan ukuran instance ###
Pilih jenis dan ukuran instance yang tepat sesuai dengan persyaratan beban kerja. Mulailah dengan instance kecil dan skala vertikal atau horizontal menggunakan replika baca sesuai kebutuhan. Aktifkan penyebaran multi-AZ untuk ketersediaan tinggi dan kegagalan otomatis jika terjadi kegagalan untuk meminimalkan waktu henti. Gunakan IOPS yang disediakan (Operasi Input/Output per detik) Penyimpanan untuk beban kerja intensif I/O untuk memberikan kinerja yang konsisten. Aktifkan Autoscaling penyimpanan untuk secara otomatis meningkatkan kapasitas penyimpanan tanpa intervensi manual. Gunakan Amazon Aurora MySQL jika diperlukan throughput dan ketersediaan yang lebih tinggi, karena memberikan kinerja dan ketahanan yang lebih baik dibandingkan dengan MySQL standar pada RDS.
Tuning grup parameter ###
Buat grup parameter khusus yang dirancang khusus untuk beban kerja Anda daripada mengandalkan pengaturan default. LETE Parameter penting seperti `innodb_buffer_pool_size` untuk mengalokasikan memori yang cukup untuk caching data dan indeks InnoDB, umumnya ditetapkan ke 60-80% dari memori yang tersedia dalam instance database. Ubah `max_connections` dengan hati -hati untuk menyeimbangkan antara penggunaan sumber daya dan kebutuhan konkurensi. Sesuaikan `query_cache_type` dan` query_cache_size` tergantung pada pola kueri, meskipun caching sering dinonaktifkan dalam versi MySQL modern untuk konkurensi yang lebih baik. Aktifkan penebangan kueri yang lambat dengan menyesuaikan parameter untuk mencatat kueri yang melebihi ambang batas untuk mengidentifikasi dan mengoptimalkan kueri yang tidak efisien. Tinjau dan perbarui parameter secara teratur berdasarkan perubahan beban kerja, peningkatan versi RDS, dan rekomendasi AWS.
cadangan dan pemulihan
Aktifkan cadangan otomatis dengan periode retensi yang sesuai untuk memungkinkan pemulihan titik-dalam-waktu. Konfigurasikan jendela cadangan ke waktu lalu lintas rendah untuk meminimalkan dampak kinerja. Ambil snapshot manual sebelum perubahan besar seperti migrasi skema atau peningkatan versi untuk keselamatan. Tes secara teratur menguji prosedur untuk memvalidasi integritas cadangan dan tujuan waktu pemulihan. Gunakan snapshot Amazon RDS untuk cadangan cepat dan kembalikan, tetapi ingat snapshot terenkripsi memiliki keterbatasan dalam berbagi dan menyalin kecuali menggunakan tombol KMS khusus untuk mengenkripsi mereka. Untuk pemulihan bencana lintas wilayah, replikasi cadangan atau gunakan replika baca di daerah lain.Pemantauan dan Pemeliharaan
Memanfaatkan Amazon CloudWatch untuk memantau metrik utama MySQL seperti pemanfaatan CPU, penggunaan memori, disk I/O, dan kinerja kueri. Konfigurasikan alarm CloudWatch untuk mengingatkan pada ambang batas untuk kelelahan sumber daya atau perilaku abnormal. Gunakan pemantauan yang ditingkatkan untuk wawasan operasional yang lebih dalam di tingkat OS dengan overhead minimal. Aktifkan wawasan kinerja untuk menganalisis dan mengoptimalkan eksekusi kueri dan mendeteksi bottleneck. Menerapkan tambalan keamanan dan peningkatan versi minor secara teratur yang disediakan oleh AWS RDS menggunakan Windows Pemeliharaan yang sesuai dengan operasi bisnis untuk memastikan stabilitas dan keamanan. Aktifkan peningkatan versi minor otomatis untuk menjaga instance tetap mutakhir dengan intervensi manual minimal.Konektivitas dan jaringan ###
Konfigurasikan instance RDS di dalam VPC. Gunakan kelompok subnet untuk mendefinisikan zona ketersediaan untuk redundansi yang lebih baik dan toleransi kesalahan. Batasi akses database dengan mengonfigurasi grup keamanan dan ACL jaringan, memungkinkan lalu lintas masuk hanya lebih dari port yang diperlukan dan dari sumber tepercaya. Menerapkan VPN atau AWS Direct Connect untuk koneksi pribadi dan aman ke database dari lingkungan di tempat. Hindari mengaktifkan akses publik kecuali diperlukan dan memastikan titik akhir basis data hanya terpapar pada klien tepercaya. Gunakan koneksi SSL/TLS untuk mengenkripsi data dalam transit antara instance klien dan RDS.