

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

# Migrasi data ke cluster Amazon Aurora My DB SQL
<a name="AuroraMySQL.Migrating"></a>

Anda memiliki beberapa opsi untuk memigrasikan data dari database yang ada ke kluster Amazon Aurora SQL My DB. Opsi migrasi Anda juga bergantung pada database yang Anda migrasikan dan ukuran data yang Anda migrasikan.

Ada dua jenis migrasi yang berbeda: fisik dan logis. Migrasi fisik berarti salinan fisik file basis data digunakan untuk memigrasikan basis data. Migrasi logis berarti bahwa migrasi dilakukan dengan menerapkan perubahan basis data logis, seperti penyisipan, pembaruan, dan penghapusan.

Migrasi fisik memiliki keuntungan sebagai berikut:
+ Migrasi fisik lebih cepat daripada migrasi logis, terutama untuk basis data besar.
+ Performa basis data tidak terpengaruh saat cadangan diambil untuk migrasi fisik.
+ Migrasi fisik dapat memigrasikan semua hal dalam basis data sumber, termasuk komponen basis data yang kompleks.

Migrasi fisik memiliki batasan sebagai berikut:
+ Parameter `innodb_page_size` harus diatur ke nilai default-nya (`16KB`).
+ Parameter `innodb_data_file_path` harus dikonfigurasi dengan hanya satu file data yang menggunakan nama file data default `"ibdata1:12M:autoextend"`. Basis data yang berisi dua file data, atau memiliki file data dengan nama yang berbeda, tidak dapat dimigrasi menggunakan metode ini.

  Berikut ini adalah contoh nama file yang tidak diizinkan: `"innodb_data_file_path=ibdata1:50M; ibdata2:50M:autoextend"` dan `"innodb_data_file_path=ibdata01:50M:autoextend"`.
+ Parameter `innodb_log_files_in_group` harus diatur ke nilai default-nya (`2`).

Migrasi logis memiliki keuntungan sebagai berikut:
+ Anda dapat memigrasikan subset basis data, seperti tabel atau bagian tertentu dari tabel.
+ Data dapat dimigrasikan terlepas dari struktur penyimpanan fisik.

Migrasi logis memiliki batasan sebagai berikut:
+ Migrasi logis biasanya lebih lambat daripada migrasi fisik.
+ Komponen basis data yang kompleks dapat memperlambat proses migrasi logis. Dalam beberapa kasus, komponen basis data kompleks bahkan dapat memblokir migrasi logis.

Tabel berikut menjelaskan opsi dan jenis migrasi untuk setiap opsi.


| Migrasi dari | Jenis migrasi | Solusi | 
| --- | --- | --- | 
| Sebuah RDS untuk instance SQL DB Saya | Fisik |  Anda dapat bermigrasi dari instans RDS for My SQL DB dengan terlebih dahulu membuat replika baca Aurora SQL My dari instance My DB. SQL Ketika jeda replika antara instans My SQL DB dan Aurora SQL My read replica adalah 0, Anda dapat mengarahkan aplikasi klien Anda untuk membaca dari replika baca Aurora dan kemudian menghentikan replikasi untuk menjadikan replika baca Aurora My sebagai cluster Aurora SQL My DB mandiri untuk membaca dan menulis. SQL Untuk detailnya, lihat [Memigrasikan data dari instans DB RDS for MySQL ke klaster DB Amazon Aurora MySQL menggunakan replika baca Aurora](AuroraMySQL.Migrating.RDSMySQL.Replica.md).  | 
| Sebuah RDS untuk snapshot SQL DB Saya | Fisik |  Anda dapat memigrasikan data langsung dari snapshot RDS for My SQL DB ke cluster Amazon Aurora SQL My DB. Untuk detailnya, lihat [Memigrasikan snapshot RDS for MySQL ke Aurora](AuroraMySQL.Migrating.RDSMySQL.Snapshot.md).  | 
| SQLDatabase saya di luar Amazon RDS | Logis |  Anda dapat membuat dump data menggunakan `mysqldump` utilitas, lalu mengimpor data tersebut ke cluster Amazon Aurora SQL My DB yang ada. Untuk detailnya, lihat [Migrasi logis dari MySQL ke Amazon Aurora MySQL dengan menggunakan mysqldump](AuroraMySQL.Migrating.ExtMySQL.mysqldump.md). Untuk mengekspor metadata bagi pengguna database selama migrasi dari SQL database Saya eksternal, Anda juga dapat menggunakan perintah My SQL Shell sebagai gantinya. `mysqldump` Untuk informasi selengkapnya, lihat [Instance Dump Utility, Schema Dump Utility, dan Table Dump Utility](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-dump-instance-schema.html#mysql-shell-utilities-dump-about).  Utilitas [mysqlpump](https://dev.mysql.com/doc/refman/8.0/en/mysqlpump.html) tidak digunakan lagi pada My 8.0.34. SQL   | 
| SQLDatabase saya di luar Amazon RDS | Fisik |  Anda dapat menyalin file cadangan dari database ke bucket Amazon Simple Storage Service (Amazon S3), lalu memulihkan cluster Amazon Aurora SQL My DB dari file-file tersebut. Opsi ini dapat jauh lebih cepat dibandingkan memigrasikan data menggunakan `mysqldump`. Untuk detailnya, lihat [Migrasi fisik dari MySQL dengan menggunakan XtraBackup Percona dan Amazon S3](AuroraMySQL.Migrating.ExtMySQL.S3.md).  | 
| SQLDatabase saya di luar Amazon RDS | Logis |  Anda dapat menyimpan data dari basis data Anda sebagai file teks dan menyalin file tersebut ke bucket Amazon S3. Anda kemudian dapat memuat data tersebut ke cluster Aurora My SQL DB yang ada menggunakan perintah `LOAD DATA FROM S3` SayaSQL. Untuk informasi selengkapnya, lihat [Memuat data ke klaster DB Amazon Aurora MySQL dari file teks di bucket Amazon S3](AuroraMySQL.Integrating.LoadFromS3.md).  | 
| Database yang tidak kompatibel dengan Saya SQL | Logis |  Anda dapat menggunakan AWS Database Migration Service (AWS DMS) untuk memigrasikan data dari database yang tidak kompatibel dengan SayaSQL. Untuk informasi selengkapnya AWS DMS, lihat [Apa itu layanan migrasi AWS database?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) | 

**catatan**  
Jika Anda memigrasikan SQL database Saya di luar AmazonRDS, opsi migrasi yang dijelaskan dalam tabel hanya didukung jika database Anda mendukung InnoDB atau ISAM ruang tabel Saya.  
Jika SQL database Saya yang Anda migrasi ke Aurora SQL My `memcached` menggunakan, `memcached` hapus sebelum memigrasinya.  
Anda tidak dapat bermigrasi ke Aurora SQL My versi 3.05 dan yang lebih tinggi dari beberapa versi SQL My 8.0 yang lebih lama, termasuk 8.0.11, 8.0.13, dan 8.0.15. Kami menyarankan Anda meningkatkan ke SQL versi Saya 8.0.28 sebelum bermigrasi.

# Memigrasikan data dari basis data MySQL eksternal ke klaster DB Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.ExtMySQL"></a>

Jika basis data Anda mendukung ruang tabel InnoDB atau MyISAM, Anda memiliki opsi ini untuk memigrasikan data Anda ke klaster DB Amazon Aurora MySQL: 
+ Anda dapat membuat dump data menggunakan utilitas `mysqldump`, lalu mengimpor data tersebut ke klaster DB Amazon Aurora MySQL yang ada. Untuk informasi selengkapnya, lihat [Migrasi logis dari MySQL ke Amazon Aurora MySQL dengan menggunakan mysqldump](AuroraMySQL.Migrating.ExtMySQL.mysqldump.md).
+ Anda dapat menyalin file cadangan penuh dan cadangan inkremental dari basis data Anda ke bucket Amazon S3, lalu memulihkan klaster DB Amazon Aurora MySQL dari file tersebut. Opsi ini dapat jauh lebih cepat dibandingkan memigrasikan data menggunakan `mysqldump`. Untuk informasi selengkapnya, lihat [Migrasi fisik dari MySQL dengan menggunakan XtraBackup Percona dan Amazon S3](AuroraMySQL.Migrating.ExtMySQL.S3.md).

**Topics**
+ [Migrasi fisik dari MySQL dengan menggunakan XtraBackup Percona dan Amazon S3](AuroraMySQL.Migrating.ExtMySQL.S3.md)
+ [Migrasi logis dari MySQL ke Amazon Aurora MySQL dengan menggunakan mysqldump](AuroraMySQL.Migrating.ExtMySQL.mysqldump.md)

# Migrasi fisik dari MySQL dengan menggunakan XtraBackup Percona dan Amazon S3
<a name="AuroraMySQL.Migrating.ExtMySQL.S3"></a>

Anda dapat menyalin file cadangan penuh dan inkremental dari basis data sumber MySQL versi 5.7 atau 8.0 ke bucket Amazon S3. Kemudian, Anda dapat memulihkan ke klaster DB Amazon Aurora MySQL dengan versi mesin DB mayor yang sama dari file-file tersebut.

Opsi ini bisa jadi jauh lebih cepat dibandingkan memigrasi data menggunakan `mysqldump` karena penggunaan `mysqldump` akan mengulangi semua perintah untuk membuat kembali skema dan data dari basis data sumber di klaster DB Aurora MySQL baru Anda. Dengan menyalin file data MySQL sumber Anda, Aurora MySQL dapat segera menggunakan file tersebut sebagai data untuk klaster DB Aurora MySQL.

Anda juga dapat meminimalkan waktu henti dengan menggunakan replikasi log biner selama proses migrasi. Jika Anda menggunakan replikasi log biner, basis data MySQL eksternal tetap terbuka untuk transaksi saat data sedang dimigrasi ke klaster DB Aurora MySQL. Setelah klaster DB Aurora MySQL dibuat, gunakan replikasi log biner untuk menyinkronkan klaster DB Aurora MySQL dengan transaksi yang terjadi setelah pencadangan. Saat klaster DB Aurora MySQL sinkron dengan basis data MySQL, selesaikan migrasi dengan sepenuhnya beralih ke klaster DB Aurora MySQL untuk transaksi baru. Untuk informasi selengkapnya, lihat [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL menggunakan replikasi](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync).

**Contents**
+ [Pertimbangan dan batasan](#AuroraMySQL.Migrating.ExtMySQL.S3.Limits)
+ [Sebelum Anda memulai](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs)
  + [Instalasi Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.XtraBackup)
  + [Izin yang diperlukan](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.Permitting)
  + [Membuat peran layanan IAM](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.CreateRole)
+ [Mencadangkan file untuk dipulihkan sebagai klaster DB Amazon Aurora MySQL](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup)
  + [Membuat cadangan lengkap dengan Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Full)
  + [Menggunakan cadangan tambahan dengan Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Incr)
  + [Pertimbangan cadangan](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Considerations)
+ [Memulihkan klaster DB Amazon Aurora MySQL dari bucket Amazon S3](#AuroraMySQL.Migrating.ExtMySQL.S3.Restore)
+ [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL menggunakan replikasi](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync)
  + [Mengonfigurasi basis data MySQL eksternal dan klaster DB Aurora MySQL Anda untuk replikasi terenkripsi](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.ConfigureEncryption)
  + [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL eksternal](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.Synchronizing)
+ [Mengurangi waktu migrasi fisik ke Amazon Aurora MySQL](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md)
  + [Jenis tabel yang tidak didukung](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Tables)
  + [Akun pengguna dengan hak akses yang tidak didukung](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Users)
  + [Hak akses dinamis di Aurora MySQL versi 3](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Dynamic)
  + [Objek tersimpan dengan 'rdsadmin'@'localhost' sebagai pendefinisi](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Objects)

## Pertimbangan dan batasan
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Limits"></a>

Batasan dan pertimbangan berikut berlaku untuk memulihkan klaster DB Amazon Aurora MySQL dari bucket Amazon S3:
+ Anda dapat memigrasikan data Anda hanya ke klaster DB baru, bukan klaster DB yang sudah ada.
+ Anda harus menggunakan Percona XtraBackup untuk mencadangkan data Anda ke S3. Untuk informasi selengkapnya, lihat [Instalasi Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.XtraBackup).
+ Bucket Amazon S3 dan cluster DB MySQL Aurora harus berada di Wilayah yang sama. AWS 
+ Anda tidak dapat memulihkan dari hal berikut:
  + Ekspor snapshot klaster DB ke Amazon S3. Anda juga tidak dapat memigrasikan data dari ekspor snapshot klaster DB ke bucket S3 Anda.
  + Basis data sumber terenkripsi, tetapi Anda dapat mengenkripsi data yang sedang dimigrasikan. Anda juga dapat membiarkan data tidak terenkripsi selama proses migrasi.
  + Basis data MySQL 5.5 atau 5.6
+ Percona Server untuk MySQL tidak didukung sebagai database sumber, karena dapat berisi tabel dalam skema. `compression_dictionary*` `mysql`
+ Anda tidak dapat memulihkan ke klaster DB Aurora Serverless.
+ Migrasi mundur tidak didukung untuk versi mayor atau versi minor. Misalnya, Anda tidak dapat bermigrasi dari MySQL versi 8.0 ke Aurora MySQL versi 2 (kompatibel dengan MySQL 5.7), dan Anda tidak dapat bermigrasi dari MySQL versi 8.0.32 ke Aurora MySQL versi 3.03, yang kompatibel dengan MySQL komunitas versi 8.0.26.
+ Anda tidak dapat bermigrasi ke MySQL versi 3.05 dan yang lebih tinggi dari beberapa versi MySQL 8.0 yang lebih lama, termasuk 8.0.11, 8.0.13, dan 8.0.15. Kami menyarankan agar Anda meningkatkan ke MySQL 8.0.28 sebelum migrasi.
+ Pengimporan dari Amazon S3 tidak didukung di kelas instans DB db.t2.micro. Namun, Anda dapat memulihkan ke kelas instans DB yang berbeda, dan mengubah kelas instans DB di lain waktu. Untuk informasi selengkapnya tentang kelas instans DB, lihat [Kelas instans Amazon Aurora DB](Concepts.DBInstanceClass.md).
+ Amazon S3 membatasi ukuran file yang diunggah ke bucket S3 hingga 5 TB. Jika sebuah file cadangan melebihi 5 TB, maka Anda harus membagi file cadangan ke dalam beberapa file yang lebih kecil.
+ Amazon RDS membatasi jumlah file yang dapat diunggah ke sebuah bucket S3 hingga 1 juta. Jika data cadangan untuk basis data Anda, termasuk semua cadangan penuh dan inkremental, melebihi 1 juta file, gunakan sebuah file Gzip (.gz), tar (.tar.gz), atau Percona xbstream (.xbstream) untuk menyimpan file cadangan penuh dan inkremental dalam bucket Amazon S3. Percona XtraBackup 8.0 hanya mendukung Percona xbstream untuk kompresi.
+ Untuk menyediakan layanan manajemen untuk setiap klaster DB, pengguna `rdsadmin` dibuat saat klaster DB dibuat. Karena ini adalah pengguna yang dicadangkan di RDS, batasan berikut berlaku:
  + Fungsi, prosedur, tampilan, peristiwa, dan pemicu dengan pendefinisi `'rdsadmin'@'localhost'` tidak diimpor. Untuk informasi selengkapnya, lihat [Objek tersimpan dengan 'rdsadmin'@'localhost' sebagai pendefinisi](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Objects) dan [Hak akses pengguna master Amazon Aurora MySQL](AuroraMySQL.Security.md#AuroraMySQL.Security.MasterUser).
  + Ketika klaster DB Aurora MySQL dibuat, pengguna master akan dibuat dengan hak akses paling tinggi yang didukung. Saat memulihkan dari cadangan, hak akses yang tidak didukung yang diberikan kepada pengguna yang diimpor akan dihapus secara otomatis selama impor.

    Untuk mengidentifikasi pengguna yang mungkin terpengaruh oleh hal ini, lihat [Akun pengguna dengan hak akses yang tidak didukung](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Users). Untuk informasi selengkapnya tentang hak akses yang didukung di Aurora MySQL, lihat [Model hak akses berbasis peran](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model).
+ Untuk Aurora MySQL versi 3, hak akses dinamis tidak diimpor. Hak akses dinamis yang didukung Aurora dapat diimpor setelah migrasi. Untuk informasi selengkapnya, lihat [Hak akses dinamis di Aurora MySQL versi 3](AuroraMySQL.Migrating.ExtMySQL.Prechecks.md#AuroraMySQL.Migrating.ExtMySQL.Prechecks.Dynamic).
+ Tabel yang dibuat pengguna dalam skema `mysql` tidak dimigrasikan.
+ Parameter `innodb_data_file_path` harus dikonfigurasi dengan hanya satu file data yang menggunakan nama file data default `ibdata1:12M:autoextend`. Basis data dengan dua file data, atau dengan file data yang memiliki nama yang berbeda, tidak dapat dimigrasikan menggunakan metode ini.

  Berikut ini adalah contoh nama file yang tidak diizinkan: `innodb_data_file_path=ibdata1:50M`, `ibdata2:50M:autoextend` dan `innodb_data_file_path=ibdata01:50M:autoextend`.
+ Anda tidak dapat bermigrasi dari basis data sumber yang memiliki tabel di luar direktori data MySQL default.
+ Ukuran maksimum yang didukung untuk cadangan yang tidak terkompresi menggunakan metode ini saat ini terbatas pada 64 TiB. Untuk cadangan terkompresi, batas ini lebih rendah untuk memperhitungkan persyaratan ruang yang tidak terkompresi. Dalam kasus seperti itu, ukuran cadangan maksimum yang didukung adalah (`64 TiB – compressed backup size`).
+ Aurora MySQL tidak mendukung pengimporan komponen dan plugin MySQL serta komponen dan plugin eksternal lainnya.
+ Aurora MySQL tidak memulihkan semuanya dari basis data Anda. Kami menyarankan agar Anda menyimpan skema dan nilai basis data untuk item berikut dari basis data MySQL sumber Anda, lalu menambahkannya ke klaster DB Aurora MySQL yang dipulihkan setelah dibuat:
  + Akun pengguna
  + Fungsi
  + Prosedur tersimpan
  + Informasi zona waktu. Informasi zona waktu dimuat dari sistem operasi lokal klaster DB Aurora MySQL Anda. Untuk informasi selengkapnya, lihat [Zona waktu lokal untuk klaster DB Amazon Aurora](Concepts.RegionsAndAvailabilityZones.md#Aurora.Overview.LocalTimeZone).

## Sebelum Anda memulai
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs"></a>

Sebelum Anda dapat menyalin data ke bucket Amazon S3 dan memulihkan klaster DB dari file tersebut, Anda harus melakukan hal berikut:
+ Instal Percona XtraBackup di server lokal Anda.
+ Izinkan Aurora MySQL untuk mengakses bucket Amazon S3 atas nama Anda.

### Instalasi Percona XtraBackup
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.XtraBackup"></a>

Amazon Aurora dapat memulihkan cluster DB dari file yang dibuat menggunakan Percona. XtraBackup Anda dapat menginstal Percona XtraBackup dari [Unduhan Perangkat Lunak -](https://www.percona.com/downloads) Percona.

Untuk migrasi MySQL 5.7, gunakan Percona 2.4. XtraBackup 

Untuk migrasi MySQL 8.0, gunakan Percona 8.0. XtraBackup Pastikan bahwa versi Percona kompatibel dengan XtraBackup versi mesin database sumber Anda.

### Izin yang diperlukan
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.Permitting"></a>

Untuk memigrasikan data MySQL Anda ke klaster DB Amazon Aurora MySQL, beberapa izin diperlukan:
+ Pengguna yang meminta Aurora membuat cluster baru dari bucket Amazon S3 harus memiliki izin untuk membuat daftar bucket untuk akun Anda. AWS Anda memberikan izin ini kepada pengguna menggunakan kebijakan AWS Identity and Access Management (IAM).
+ Aurora memerlukan izin untuk bertindak atas nama Anda untuk mengakses Amazon S3 bucket tempat Anda menyimpan file yang digunakan untuk membuat klaster DB Amazon Aurora MySQL Anda. Anda memberikan izin yang diperlukan Aurora menggunakan peran layanan IAM. 
+ Pengguna yang mengajukan permintaan juga harus memiliki izin untuk menampilkan daftar peran IAM untuk akun AWS Anda.
+ Jika pengguna yang mengajukan permintaan tersebut bertujuan untuk membuat peran layanan IAM atau meminta Aurora membuat peran layanan IAM (dengan menggunakan konsol), pengguna tersebut harus memiliki izin untuk membuat peran IAM bagi akun AWS Anda.
+ Jika Anda berencana untuk mengenkripsi data selama proses migrasi, perbarui kebijakan IAM pengguna yang akan melakukan migrasi untuk memberikan akses RDS ke yang AWS KMS keys digunakan untuk mengenkripsi cadangan. Untuk petunjuk, lihat [Membuat kebijakan IAM untuk mengakses sumber daya AWS KMS](AuroraMySQL.Integrating.Authorizing.IAM.KMSCreatePolicy.md).

Misalnya, kebijakan IAM berikut memberikan izin minimum yang diperlukan pengguna untuk menggunakan konsol untuk menampilkan daftar peran IAM, membuat peran IAM, menampilkan daftar bucket Amazon S3 untuk akun Anda, dan menampilkan daftar kunci KMS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListRoles",
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:AttachRolePolicy",
                "s3:ListBucket",
                "kms:ListKeys"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Selain itu, bagi pengguna yang ingin mengaitkan peran IAM dengan bucket Amazon S3, pengguna IAM harus memiliki izin `iam:PassRole` untuk peran IAM tersebut. Izin ini memungkinkan administrator membatasi peran IAM mana yang dapat dikaitkan dengan bucket Amazon S3. 

Misalnya, kebijakan IAM berikut mengizinkan pengguna mengaitkan peran bernama `S3Access` dengan bucket Amazon S3.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"AllowS3AccessRole",
            "Effect":"Allow",
            "Action":"iam:PassRole",
            "Resource":"arn:aws:iam::123456789012:role/S3Access"
        }
    ]
}
```

------

Untuk informasi selengkapnya tentang izin pengguna IAM, lihat [Mengelola akses menggunakan kebijakan](UsingWithRDS.IAM.md#security_iam_access-manage).

### Membuat peran layanan IAM
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Prereqs.CreateRole"></a>

Anda dapat Konsol Manajemen AWS membuat peran untuk Anda dengan memilih opsi **Buat Peran Baru** (ditampilkan nanti dalam topik ini). Jika Anda memilih opsi ini dan menentukan nama untuk peran baru, Aurora akan membuat peran layanan IAM yang diperlukan Aurora untuk mengakses bucket Amazon S3 Anda dengan nama yang Anda berikan.

Sebagai alternatif, Anda dapat membuat peran secara manual menggunakan prosedur berikut.

**Untuk membuat peran IAM bagi Aurora untuk mengakses Amazon S3**

1. Selesaikan langkah-langkah dalam [Membuat kebijakan IAM untuk mengakses sumber daya Amazon S3](AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.md).

1. Selesaikan langkah-langkah dalam [Membuat peran IAM untuk memungkinkan Amazon Aurora mengakses layanan AWS](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md).

1. Selesaikan langkah-langkah dalam [Mengaitkan peran IAM dengan klaster DB Amazon Aurora MySQL](AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.md).

## Mencadangkan file untuk dipulihkan sebagai klaster DB Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Backup"></a>

Anda dapat membuat cadangan lengkap file database MySQL Anda menggunakan XtraBackup Percona dan mengunggah file cadangan ke bucket Amazon S3. Atau, jika Anda sudah menggunakan Percona XtraBackup untuk mencadangkan file database MySQL Anda, Anda dapat mengunggah direktori dan file cadangan lengkap dan tambahan yang ada ke bucket Amazon S3.

**Topics**
+ [Membuat cadangan lengkap dengan Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Full)
+ [Menggunakan cadangan tambahan dengan Percona XtraBackup](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Incr)
+ [Pertimbangan cadangan](#AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Considerations)

### Membuat cadangan lengkap dengan Percona XtraBackup
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Full"></a>

Untuk membuat cadangan lengkap file database MySQL Anda yang dapat dipulihkan dari Amazon S3 untuk membuat cluster DB MySQL Aurora, gunakan utilitas Percona () untuk mencadangkan database Anda. XtraBackup `xtrabackup` 

Misalnya, perintah berikut akan membuat cadangan dari basis data MySQL dan menyimpan file-nya dalam folder `/on-premises/s3-restore/backup`.

```
xtrabackup --backup --user=<myuser> --password=<password> --target-dir=</on-premises/s3-restore/backup>
```

Jika Anda ingin mengompresi cadangan Anda ke dalam satu file (yang dapat dibagi, jika perlu), Anda dapat menggunakan opsi `--stream` untuk menyimpan cadangan Anda dalam salah satu format berikut:
+ Gzip (.gz)
+ tar (.tar)
+ Percona xbstream (.xbstream)

Perintah berikut membuat cadangan basis data MySQL Anda yang dibagi menjadi beberapa file Gzip.

```
xtrabackup --backup --user=<myuser> --password=<password> --stream=tar \
   --target-dir=</on-premises/s3-restore/backup> | gzip - | split -d --bytes=500MB \
   - </on-premises/s3-restore/backup/backup>.tar.gz
```

Perintah berikut membuat cadangan basis data MySQL Anda yang dipecah menjadi beberapa file tar.

```
xtrabackup --backup --user=<myuser> --password=<password> --stream=tar \
   --target-dir=</on-premises/s3-restore/backup> | split -d --bytes=500MB \
   - </on-premises/s3-restore/backup/backup>.tar
```

Perintah berikut membuat cadangan basis data MySQL Anda yang dipecah menjadi beberapa file xbstream.

```
xtrabackup --backup --user=<myuser> --password=<password> --stream=xbstream \
   --target-dir=</on-premises/s3-restore/backup> | split -d --bytes=500MB \
   - </on-premises/s3-restore/backup/backup>.xbstream
```

**catatan**  
Jika Anda melihat kesalahan berikut, ini mungkin disebabkan perbedaan format file dalam perintah Anda:  

```
ERROR:/bin/tar: This does not look like a tar archive
```

Setelah mencadangkan database MySQL menggunakan utilitas XtraBackup Percona, Anda dapat menyalin direktori dan file cadangan ke bucket Amazon S3.

Untuk informasi tentang membuat dan mengunggah file ke bucket Amazon S3, lihat [Memulai Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) dalam *Panduan Memulai Amazon S3*.

### Menggunakan cadangan tambahan dengan Percona XtraBackup
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Incr"></a>

Amazon Aurora MySQL mendukung cadangan penuh dan tambahan yang dibuat menggunakan Percona. XtraBackup Jika Anda sudah menggunakan Percona XtraBackup untuk melakukan pencadangan penuh dan bertahap dari file database MySQL Anda, Anda tidak perlu membuat cadangan lengkap dan mengunggah file cadangan ke Amazon S3. Sebagai gantinya, Anda dapat menghemat cukup banyak waktu dengan menyalin direktori dan file cadangan yang ada untuk cadangan penuh dan inkremental ke bucket Amazon S3. Untuk informasi selengkapnya, lihat [Buat cadangan inkremental](https://docs.percona.com/percona-xtrabackup/8.0/create-incremental-backup.html) di situs web Percona.

Saat menyalin file cadangan penuh dan inkremental ke bucket Amazon S3, Anda harus menyalin konten direktori dasar secara berulang. Konten tersebut termasuk cadangan penuh dan juga semua direktori dan file cadangan inkremental. Salinan ini harus mempertahankan struktur direktori di bucket Amazon S3. Aurora melakukan iterasi ke semua file dan direktori. Aurora menggunakan file `xtrabackup-checkpoints` yang disertakan dengan setiap cadangan inkremental untuk mengidentifikasi direktori dasar dan untuk mengurutkan cadangan inkremental berdasarkan rentang nomor urutan log (LSN).

Untuk informasi tentang membuat dan mengunggah file ke bucket Amazon S3, lihat [Memulai Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) dalam *Panduan Memulai Amazon S3*.

### Pertimbangan cadangan
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Backup.Considerations"></a>

Aurora tidak mendukung cadangan sebagian yang dibuat menggunakan Percona. XtraBackup Anda tidak dapat menggunakan opsi berikut untuk membuat cadangan parsial saat mencadangkan file sumber untuk basis data Anda: `--tables`, `--tables-exclude`, `--tables-file`, `--databases`, `--databases-exclude`, atau `--databases-file`.

Untuk informasi selengkapnya tentang mencadangkan database Anda dengan Percona XtraBackup, lihat [Percona XtraBackup - Dokumentasi](https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html) dan [Bekerja dengan log biner](https://docs.percona.com/percona-xtrabackup/8.0/working-with-binary-logs.html) di situs web Percona.

Aurora mendukung backup tambahan yang dibuat menggunakan Percona. XtraBackup Untuk informasi selengkapnya, lihat [Buat cadangan inkremental](https://docs.percona.com/percona-xtrabackup/8.0/create-incremental-backup.html) di situs web Percona.

Aurora menggunakan file cadangan Anda berdasarkan nama file. Pastikan untuk menamai file cadangan Anda dengan ekstensi file yang sesuai berdasarkan format file—misalnya, `.xbstream` untuk file yang disimpan menggunakan format Percona xbstream.

Aurora menggunakan file cadangan Anda dalam urutan abjad dan juga dalam urutan angka alami. Selalu gunakan opsi `split` saat Anda mengeluarkan perintah `xtrabackup` untuk memastikan bahwa file cadangan Anda ditulis dan diberi nama sesuai urutan yang benar.

Amazon S3 membatasi ukuran file yang diunggah ke bucket Amazon S3 hingga 5 TB. Jika data cadangan untuk basis data Anda melebihi 5 TB, gunakan perintah `split` untuk membagi file cadangan menjadi beberapa file dengan ukuran masing-masing kurang dari 5 TB.

Aurora membatasi jumlah file sumber yang diunggah ke bucket Amazon S3 hingga 1 juta file. Dalam beberapa kasus, data cadangan untuk basis data Anda, termasuk semua cadangan penuh dan inkremental, dapat menghasilkan jumlah file yang besar. Dalam hal ini, gunakan file tarball (.tar.gz) untuk menyimpan file cadangan penuh dan inkremental di bucket Amazon S3.

Saat Anda mengunggah file ke bucket Amazon S3, Anda dapat menggunakan enkripsi di sisi server untuk mengenkripsi data. Anda kemudian dapat memulihkan klaster DB Amazon Aurora MySQL dari file terenkripsi tersebut. Amazon Aurora MySQL dapat memulihkan klaster DB dengan file terenkripsi menggunakan jenis enkripsi di sisi server berikut:
+ Enkripsi di sisi server dengan kunci yang dikelola Amazon S3 (SSE-S3) – Setiap objek dienkripsi dengan kunci unik yang menggunakan enkripsi multifaktor yang kuat.
+ Enkripsi sisi server dengan kunci yang AWS KMS dikelola (SSE-KMS) — Mirip dengan SSE-S3, tetapi Anda memiliki opsi untuk membuat dan mengelola kunci enkripsi sendiri, dan juga perbedaan lainnya.

Untuk informasi tentang menggunakan enkripsi di sisi server saat mengunggah file ke bucket Amazon S3, lihat [Melindungi data menggunakan enkripsi di sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) dalam *Panduan Developer Amazon S3*.

## Memulihkan klaster DB Amazon Aurora MySQL dari bucket Amazon S3
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.Restore"></a>

Anda dapat memulihkan file cadangan dari bucket Amazon S3 untuk membuat klaster DB Amazon Aurora MySQL baru dengan menggunakan konsol Amazon RDS. 

**Untuk memulihkan klaster DB Amazon Aurora MySQL dari file di bucket Amazon S3**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di sudut kanan atas konsol Amazon RDS, pilih AWS Wilayah tempat membuat cluster DB Anda. Pilih AWS Wilayah yang sama dengan bucket Amazon S3 yang berisi cadangan database Anda. 

1. Di panel navigasi, pilih **Basis data**, lalu pilih **Pulihkan dari S3**.

1. Pilih **Pulihkan dari S3**.

   Halaman **Buat basis data dengan memulihkan dari S3** akan muncul.  
![\[Halaman ini adalah tempat Anda menentukan detail untuk memulihkan klaster DB dari S3\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/AuroraMigrateS3_01.png)

1. Di bagian **Tujuan S3**:

   1. Pilih **Bucket S3** yang berisi file cadangan.

   1. (Opsional) Untuk **Awalan jalur folder S3**, masukkan awalan jalur file untuk file yang disimpan di bucket Amazon S3 Anda.

      Jika Anda tidak menentukan prefiks, RDS akan membuat instans DB Anda menggunakan semua file dan folder di folder root bucket S3. Jika Anda menentukan prefiks, RDS akan membuat instans DB Anda menggunakan file dan folder dalam bucket S3 yang jalur file-nya dimulai dengan prefiks yang ditentukan.

      Misalnya, Anda menyimpan file cadangan di S3 dalam subfolder bernama “cadangan”, dan Anda memiliki beberapa set file cadangan, masing-masing memiliki direktori tersendiri (gzip\$1backup1, gzip\$1backup2, dan sebagainya). Dalam kasus ini, Anda menentukan prefiks backup/gzip\$1backup1 untuk memulihkan dari file di folder gzip\$1backup1. 

1. Di bagian **Opsi mesin**:

   1. Untuk **Tipe mesin**, pilih **Amazon Aurora**.

   1. Untuk **Versi**, pilih versi mesin Aurora MySQL untuk instans DB Anda yang dipulihkan.

1. Untuk **Peran IAM**, Anda dapat memilih peran IAM yang sudah ada.

1. (Opsional) Anda juga dapat dibuatkan peran IAM dengan memilih **Buat peran baru**. Jika demikian:

   1. Masukkan **Nama peran IAM**.

   1.  Pilih opsi untuk **Izinkan akses ke kunci KMS**:
      + Jika Anda tidak mengenkripsi file cadangan, pilih **Tidak**.
      + Jika Anda mengenkripsi file cadangan dengan AES-256 (SSE-S3) saat mengunggahnya ke Amazon S3, pilih **Tidak**. Dalam kasus ini, data didekripsi secara otomatis.
      + **Jika Anda mengenkripsi file cadangan dengan enkripsi sisi server AWS KMS (SSE-KMS) saat Anda mengunggahnya ke Amazon S3, pilih Ya.** Selanjutnya, pilih kunci KMS yang benar untuk **AWS KMS key**.

         Konsol Manajemen AWS Membuat kebijakan IAM yang memungkinkan Aurora untuk mendekripsi data.

      Untuk informasi selengkapnya, lihat [Melindungi data menggunakan enkripsi di sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) dalam *Panduan Developer Amazon S3*.

1. Pilih pengaturan untuk klaster DB Anda, seperti konfigurasi penyimpanan klaster DB, kelas instans DB, pengidentifikasi klaster DB, dan kredensial login. Untuk informasi tentang setiap pengaturan, lihat [Pengaturan untuk klaster Aurora DB](Aurora.CreateInstance.md#Aurora.CreateInstance.Settings).

1. Sesuaikan pengaturan tambahan untuk klaster DB Aurora MySQL Anda berdasarkan kebutuhan.

1. Pilih **Buat basis data** untuk meluncurkan instans DB Aurora Anda.

Pada konsol Amazon RDS, instans DB baru muncul dalam daftar instans DB. Instans DB memiliki status **membuat** hingga instans DB dibuat dan siap digunakan. Saat statusnya berubah menjadi **tersedia**, Anda dapat terhubung ke instans primer untuk klaster DB Anda. Bergantung pada kelas instans DB dan penyimpanan yang dialokasikan, perlu waktu beberapa menit agar instans baru tersedia.

Untuk melihat klaster yang baru dibuat, pilih tampilan **Basis data** di konsol Amazon RDS lalu pilih klaster DB. Untuk informasi selengkapnya, lihat [Melihat klaster DB Amazon Aurora](accessing-monitoring.md#Aurora.Viewing).

![\[Daftar Instans DB Amazon Aurora\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/AuroraLaunch04.png)


Catat port dan titik akhir penulis dari klaster DB. Gunakan titik akhir dan port klaster DB tersebut dalam string koneksi JDBC dan ODBC Anda untuk aplikasi apa pun yang menjalankan operasi tulis atau baca.

## Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL menggunakan replikasi
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.RepSync"></a>

Untuk mempersingkat atau meniadakan waktu henti selama migrasi, Anda dapat mereplikasi transaksi yang dilakukan pada basis data MySQL Anda ke klaster DB Aurora MySQL Anda. Replikasi memungkinkan klaster DB disinkronkan dengan transaksi di basis data MySQL yang terjadi selama migrasi. Ketika klaster DB telah sepenuhnya sinkron, Anda dapat menghentikan replikasi dan menyelesaikan migrasi ke Aurora MySQL.

**Topics**
+ [Mengonfigurasi basis data MySQL eksternal dan klaster DB Aurora MySQL Anda untuk replikasi terenkripsi](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.ConfigureEncryption)
+ [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL eksternal](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.Synchronizing)

### Mengonfigurasi basis data MySQL eksternal dan klaster DB Aurora MySQL Anda untuk replikasi terenkripsi
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.ConfigureEncryption"></a>

Untuk mereplikasi data dengan aman, Anda dapat menggunakan replikasi terenkripsi.

**catatan**  
Jika Anda tidak perlu menggunakan replikasi terenkripsi, Anda dapat melewatkan langkah-langkah ini dan melanjutkan ke petunjuk dalam [Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL eksternal](#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.Synchronizing).

Berikut ini adalah prasyarat untuk menggunakan replikasi terenkripsi:
+ Lapisan Soket Aman (SSL) harus diaktifkan di basis data primer MySQL eksternal.
+ Kunci klien dan sertifikat klien harus disiapkan untuk klaster DB Aurora MySQL.

Selama replikasi terenkripsi, klaster DB Aurora MySQL berperan sebagai klien untuk server basis data MySQL. Sertifikat dan kunci untuk klien Aurora MySQL ada di dalam file dengan format .pem.

**Untuk mengonfigurasi basis data MySQL eksternal dan klaster DB Aurora MySQL Anda untuk replikasi terenkripsi**

1. Pastikan bahwa Anda siap untuk replikasi terenkripsi:
   + Jika Anda tidak mengaktifkan SSL di basis data primer MySQL eksternal dan tidak menyiapkan kunci klien dan sertifikat klien, aktifkan SSL di server basis data MySQL dan buat kunci klien dan sertifikat klien yang diperlukan.
   + Jika SSL diaktifkan pada primer eksternal, berikan kunci klien dan sertifikat untuk klaster DB Aurora MySQL. Jika Anda tidak memilikinya, buat kunci dan sertifikat baru untuk klaster DB Aurora MySQL. Untuk menandatangani sertifikat klien, Anda harus memiliki kunci otoritas sertifikat yang Anda gunakan untuk mengonfigurasi SSL di basis data primer MySQL eksternal.

   Untuk informasi selengkapnya, lihat [Creating SSL certificates and keys using openssl](https://dev.mysql.com/doc/refman/5.6/en/creating-ssl-files-using-openssl.html) dalam dokumentasi MySQL.

   Anda memerlukan sertifikat otoritas sertifikat, kunci klien, dan sertifikat klien.

1. Hubungkan ke klaster DB Aurora MySQL sebagai pengguna primer menggunakan SSL.

   Untuk informasi tentang menghubungkan ke klaster DB Aurora MySQL dengan SSL, lihat [Koneksi TLS ke cluster DB MySQL Aurora](AuroraMySQL.Security.md#AuroraMySQL.Security.SSL).

1. Jalankan prosedur tersimpan [mysql.rds\$1import\$1binlog\$1ssl\$1material](mysql-stored-proc-replicating.md#mysql_rds_import_binlog_ssl_material) untuk mengimpor informasi SSL ke dalam klaster DB Aurora MySQL.

   Untuk parameter `ssl_material_value`, masukkan informasi dari file format .pem untuk klaster DB Aurora MySQL di payload JSON yang benar.

   Contoh berikut mengimpor informasi SSL ke dalam klaster DB Aurora MySQL. Dalam file berformat .pem, kode konten biasanya lebih panjang dari kode konten yang ditunjukkan dalam contoh.

   ```
   call mysql.rds_import_binlog_ssl_material(
   '{"ssl_ca":"-----BEGIN CERTIFICATE-----
   AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
   hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
   lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
   qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
   BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   -----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE-----
   AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
   hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
   lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
   qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
   BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   -----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY-----
   AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
   hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
   lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
   qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
   BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   -----END RSA PRIVATE KEY-----\n"}');
   ```

   Untuk informasi selengkapnya, lihat [mysql.rds\$1import\$1binlog\$1ssl\$1material](mysql-stored-proc-replicating.md#mysql_rds_import_binlog_ssl_material) dan [Koneksi TLS ke cluster DB MySQL Aurora](AuroraMySQL.Security.md#AuroraMySQL.Security.SSL).
**catatan**  
Setelah menjalankan prosedur ini, rahasia disimpan dalam file. Untuk menghapus file nanti, Anda dapat menjalankan prosedur tersimpan [mysql.rds\$1remove\$1binlog\$1ssl\$1material](mysql-stored-proc-replicating.md#mysql_rds_remove_binlog_ssl_material).

### Menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL eksternal
<a name="AuroraMySQL.Migrating.ExtMySQL.S3.RepSync.Synchronizing"></a>

Anda dapat menyinkronkan klaster DB Amazon Aurora MySQL dengan basis data MySQL menggunakan replikasi.

**Untuk menyinkronkan klaster DB Aurora MySQL Anda dengan basis data MySQL menggunakan replikasi**

1. Pastikan file /etc/my.cnf untuk basis data MySQL eksternal memiliki entri yang relevan.

   Jika replikasi terenkripsi tidak diperlukan, pastikan basis data MySQL eksternal dimulai dengan log biner (binlog) diaktifkan dan SSL dinonaktifkan. Berikut ini adalah entri yang relevan dalam file /etc/my.cnf untuk data yang tidak terenkripsi.

   ```
   log-bin=mysql-bin
   server-id=2133421
   innodb_flush_log_at_trx_commit=1
   sync_binlog=1
   ```

   Jika replikasi terenkripsi diperlukan, pastikan basis data MySQL eksternal dimulai dengan SSL dan binlog diaktifkan. Entri dalam file /etc/my.cnf mencakup lokasi file .pem untuk server basis data MySQL.

   ```
   log-bin=mysql-bin
   server-id=2133421
   innodb_flush_log_at_trx_commit=1
   sync_binlog=1
   
   # Setup SSL.
   ssl-ca=/home/sslcerts/ca.pem
   ssl-cert=/home/sslcerts/server-cert.pem
   ssl-key=/home/sslcerts/server-key.pem
   ```

   Anda dapat memverifikasi bahwa SSL diaktifkan dengan perintah berikut.

   ```
   mysql> show variables like 'have_ssl';
   ```

   Output Anda harus serupa dengan berikut ini.

   ```
   +~-~-~-~-~-~-~-~-~-~-~-~-~-~--+~-~-~-~-~-~--+
   | Variable_name | Value |
   +~-~-~-~-~-~-~-~-~-~-~-~-~-~--+~-~-~-~-~-~--+
   | have_ssl      | YES   |
   +~-~-~-~-~-~-~-~-~-~-~-~-~-~--+~-~-~-~-~-~--+
   1 row in set (0.00 sec)
   ```

1. Tentukan posisi log biner awal untuk replikasi. Anda menentukan posisi untuk memulai replikasi di langkah selanjutnya.

   **Menggunakan Konsol Manajemen AWS**

   1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. Di panel navigasi, pilih **Peristiwa**.

   1. Di daftar **Peristiwa**, catat posisi di peristiwa **Dipulihkan dari nama file log biner**.  
![\[Lihat MySQL utama\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/aurora-mysql-rep-binary-log-position.png)

   **Menggunakan AWS CLI**

   Anda juga bisa mendapatkan nama dan posisi file binlog dengan menggunakan [perintah AWS CLI describe-events](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-events.html). Hal berikut menunjukkan contoh perintah `describe-events`.

   ```
   PROMPT> aws rds describe-events
   ```

   Pada output, identifikasi peristiwa yang menunjukkan posisi binlog.

1. Saat terhubung dengan basis data MySQL eksternal, buat pengguna yang akan digunakan untuk replikasi. Akun ini digunakan hanya untuk replikasi dan harus dibatasi pada domain Anda untuk meningkatkan keamanan. Berikut adalah contohnya.

   ```
   mysql> CREATE USER '<user_name>'@'<domain_name>' IDENTIFIED BY '<password>';
   ```

   Pengguna memerlukan hak akses `REPLICATION CLIENT` dan `REPLICATION SLAVE`. Berikan hak akses ini kepada pengguna.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>'@'<domain_name>';
   ```

   Jika Anda perlu menggunakan replikasi terenkripsi, wajibkan koneksi SSL untuk pengguna replikasi. Misalnya, Anda dapat menggunakan pernyataan berikut untuk mewajibkan koneksi SSL pada akun pengguna `<user_name>`.

   ```
   GRANT USAGE ON *.* TO '<user_name>'@'<domain_name>' REQUIRE SSL;
   ```
**catatan**  
Jika `REQUIRE SSL` tidak disertakan, koneksi replikasi dapat kembali ke koneksi yang tidak terenkripsi tanpa peringatan.

1. Di konsol Amazon RDS, tambahkan alamat IP server yang meng-host basis data MySQL eksternal ke grup keamanan VPC untuk klaster DB Aurora MySQL. Untuk informasi selengkapnya tentang memodifikasi grup keamanan VPC, lihat [Grup keamanan untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) dalam *Panduan Pengguna Amazon Virtual Private Cloud*. 

   Anda mungkin juga perlu mengonfigurasi jaringan lokal Anda untuk mengizinkan koneksi dari alamat IP klaster DB Aurora MySQL Anda agar klaster DB ini dapat berkomunikasi dengan instans MySQL eksternal Anda. Untuk menemukan alamat IP klaster DB Aurora MySQL, gunakan perintah `host`.

   ```
   host <db_cluster_endpoint>
   ```

   Nama host adalah nama DNS dari titik akhir klaster DB Aurora MySQL.

1. Aktifkan replikasi log biner dengan menjalankan prosedur tersimpan [mysql.rds\$1reset\$1external\$1master versi 2)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) atau [mysql.rds\$1reset\$1external\$1source ( 3)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_source). Prosedur tersimpan ini memiliki sintaksis berikut.

   ```
   CALL mysql.rds_set_external_master (
     host_name
     , host_port
     , replication_user_name
     , replication_user_password
     , mysql_binary_log_file_name
     , mysql_binary_log_file_location
     , ssl_encryption
   );
   
   CALL mysql.rds_set_external_source (
     host_name
     , host_port
     , replication_user_name
     , replication_user_password
     , mysql_binary_log_file_name
     , mysql_binary_log_file_location
     , ssl_encryption
   );
   ```

   Untuk informasi tentang parameter, lihat [mysql.rds\$1reset\$1external\$1master versi 2)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) dan [mysql.rds\$1reset\$1external\$1source ( 3)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_source).

   Untuk `mysql_binary_log_file_name` dan `mysql_binary_log_file_location`, gunakan posisi dalam peristiwa **Dipulihkan dari nama file log biner** yang Anda catat sebelumnya.

   Jika data dalam klaster DB Aurora MySQL tidak dienkripsi, parameter `ssl_encryption` harus diatur ke `0`. Jika data dienkripsi, parameter `ssl_encryption` harus diatur ke `1`.

   Contoh berikut menjalankan prosedur untuk klaster DB Aurora MySQL yang memiliki data terenkripsi.

   ```
   CALL mysql.rds_set_external_master(
     'Externaldb.some.com',
     3306,
     'repl_user'@'mydomain.com',
     'password',
     'mysql-bin.000010',
     120,
     1);
   
   CALL mysql.rds_set_external_source(
     'Externaldb.some.com',
     3306,
     'repl_user'@'mydomain.com',
     'password',
     'mysql-bin.000010',
     120,
     1);
   ```

   Prosedur tersimpan ini menetapkan parameter yang digunakan klaster DB Aurora MySQL untuk menghubungkan ke basis data MySQL eksternal dan membaca log binernya. Jika data dienkripsi, prosedur ini juga akan mengunduh sertifikat otoritas sertifikat SSL, sertifikat klien, dan kunci klien ke disk lokal. 

1. Mulai replikasi log biner dengan menjalankan prosedur tersimpan [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication).

   ```
   CALL mysql.rds_start_replication;
   ```

1. Pantau seberapa jauh klaster DB Aurora MySQL tertinggal dari basis data primer replikasi MySQL. Untuk melakukannya, hubungkan ke klaster DB Aurora MySQL dan jalankan perintah berikut.

   ```
   Aurora MySQL version 2:
   SHOW SLAVE STATUS;
   
   Aurora MySQL version 3:
   SHOW REPLICA STATUS;
   ```

   Dalam output perintah, bidang `Seconds Behind Master` menunjukkan seberapa jauh klaster DB Aurora MySQL tertinggal dari basis data primer MySQL. Ketika nilai ini `0` (nol), klaster DB Aurora MySQL telah sinkron dengan basis data primer, dan Anda dapat melanjutkan ke langkah berikutnya untuk menghentikan replikasi.

1. Hubungkan ke basis data primer replikasi MySQL dan hentikan replikasi. Untuk melakukannya, jalankan prosedur tersimpan [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication).

   ```
   CALL mysql.rds_stop_replication;
   ```

# Mengurangi waktu migrasi fisik ke Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks"></a>

Anda dapat membuat modifikasi basis data berikut untuk mempercepat proses migrasi basis data ke Amazon Aurora MySQL.

**penting**  
Pastikan untuk melakukan pembaruan ini pada salinan basis data produksi, bukan pada basis data produksi. Kemudian, Anda dapat mencadangkan salinan ini dan memulihkannya ke klaster DB Aurora MySQL untuk menghindari gangguan layanan apa pun pada basis data produksi Anda.

## Jenis tabel yang tidak didukung
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks.Tables"></a>

Aurora MySQL hanya mendukung mesin InnoDB untuk tabel basis data. Jika Anda memiliki tabel MyISAM di basis data Anda, tabel tersebut harus dikonversi sebelum bermigrasi ke Aurora MySQL. Proses konversi memerlukan ruang tambahan untuk konversi MyISAM ke InnoDB selama prosedur migrasi.

Untuk mengurangi kemungkinan Anda kehabisan ruang atau untuk mempercepat proses migrasi, konversikan semua tabel MyISAM Anda ke tabel InnoDB sebelum memigrasikannya. Ukuran tabel InnoDB yang dihasilkan akan setara dengan ukuran yang diperlukan oleh Aurora MySQL untuk tabel tersebut. Untuk mengonversi tabel MyISAM ke InnoDB, jalankan perintah berikut:

```
ALTER TABLE schema.table_name engine=innodb, algorithm=copy;
```

Aurora MySQL tidak mendukung tabel atau halaman terkompresi, yaitu tabel yang dibuat dengan `ROW_FORMAT=COMPRESSED` atau `COMPRESSION = {"zlib"|"lz4"}`.

Untuk mengurangi kemungkinan Anda kehabisan ruang atau untuk mempercepat proses migrasi, perluas tabel terkompresi Anda dengan mengatur `ROW_FORMAT` ke `DEFAULT`, `COMPACT`, `DYNAMIC`, atau `REDUNDANT`. Untuk halaman terkompresi, atur `COMPRESSION="none"`.

Untuk informasi selengkapnya, lihat [InnoDB row formats](https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format.html) dan [InnoDB table and page compression](https://dev.mysql.com/doc/refman/8.0/en/innodb-compression.html) dalam dokumentasi MySQL.

Anda dapat menggunakan skrip SQL berikut pada instans DB MySQL yang ada untuk menampilkan daftar tabel dalam basis data Anda yang merupakan tabel MyISAM atau tabel terkompresi.

```
-- This script examines a MySQL database for conditions that block
-- migrating the database into Aurora MySQL.
-- It must be run from an account that has read permission for the
-- INFORMATION_SCHEMA database.

-- Verify that this is a supported version of MySQL.

select msg as `==> Checking current version of MySQL.`
from
  (
  select
    'This script should be run on MySQL version 5.6 or higher. ' +
    'Earlier versions are not supported.' as msg,
    cast(substring_index(version(), '.', 1) as unsigned) * 100 +
      cast(substring_index(substring_index(version(), '.', 2), '.', -1)
      as unsigned)
    as major_minor
  ) as T
where major_minor <> 506;


-- List MyISAM and compressed tables. Include the table size.

select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`,
round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)"
from INFORMATION_SCHEMA.TABLES
where
  ENGINE <> 'InnoDB'
  and
  (
    -- User tables
    TABLE_SCHEMA not in ('mysql', 'performance_schema',
                         'information_schema')
    or
    -- Non-standard system tables
    (
      TABLE_SCHEMA = 'mysql' and TABLE_NAME not in
        (
          'columns_priv', 'db', 'event', 'func', 'general_log',
          'help_category', 'help_keyword', 'help_relation',
          'help_topic', 'host', 'ndb_binlog_index', 'plugin',
          'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log',
          'tables_priv', 'time_zone', 'time_zone_leap_second',
          'time_zone_name', 'time_zone_transition',
          'time_zone_transition_type', 'user'
        )
    )
  )
  or
  (
    -- Compressed tables
       ROW_FORMAT = 'Compressed'
  );
```

## Akun pengguna dengan hak akses yang tidak didukung
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks.Users"></a>

Akun pengguna dengan hak akses yang tidak didukung oleh Aurora MySQL akan diimpor tanpa hak akses yang tidak didukung. Untuk daftar hak akses yang didukung, lihat [Model hak akses berbasis peran](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model).

Anda dapat menjalankan kueri SQL berikut pada basis data sumber Anda untuk menampilkan daftar akun pengguna yang memiliki hak akses yang tidak didukung.

```
SELECT
    user,
    host
FROM
    mysql.user
WHERE
    Shutdown_priv = 'y'
    OR File_priv = 'y'
    OR Super_priv = 'y'
    OR Create_tablespace_priv = 'y';
```

## Hak akses dinamis di Aurora MySQL versi 3
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks.Dynamic"></a>

Hak akses dinamis tidak akan diimpor. Aurora MySQL versi 3 mendukung hak akses dinamis berikut.

```
'APPLICATION_PASSWORD_ADMIN',
'CONNECTION_ADMIN',
'REPLICATION_APPLIER',
'ROLE_ADMIN',
'SESSION_VARIABLES_ADMIN',
'SET_USER_ID',
'XA_RECOVER_ADMIN'
```

Contoh skrip berikut memberikan hak akses dinamis yang didukung ke akun pengguna di klaster DB Aurora MySQL.

```
-- This script finds the user accounts that have Aurora MySQL supported dynamic privileges 
-- and grants them to corresponding user accounts in the Aurora MySQL DB cluster.

/home/ec2-user/opt/mysql/8.0.26/bin/mysql -uusername -pxxxxx -P8026 -h127.0.0.1 -BNe "SELECT
  CONCAT('GRANT ', GRANTS, ' ON *.* TO ', GRANTEE ,';') AS grant_statement
  FROM (select GRANTEE, group_concat(privilege_type) AS GRANTS FROM information_schema.user_privileges 
      WHERE privilege_type IN (
        'APPLICATION_PASSWORD_ADMIN',
        'CONNECTION_ADMIN',
        'REPLICATION_APPLIER',
        'ROLE_ADMIN',
        'SESSION_VARIABLES_ADMIN',
        'SET_USER_ID',
        'XA_RECOVER_ADMIN')
      AND GRANTEE NOT IN (\"'mysql.session'@'localhost'\",\"'mysql.infoschema'@'localhost'\",\"'mysql.sys'@'localhost'\") GROUP BY GRANTEE)
      AS PRIVGRANTS; " | /home/ec2-user/opt/mysql/8.0.26/bin/mysql -u master_username -p master_password -h DB_cluster_endpoint
```

## Objek tersimpan dengan 'rdsadmin'@'localhost' sebagai pendefinisi
<a name="AuroraMySQL.Migrating.ExtMySQL.Prechecks.Objects"></a>

Fungsi, prosedur, tampilan, peristiwa, dan pemicu dengan `'rdsadmin'@'localhost'` sebagai pendefinisi tidak akan diimpor.

Anda dapat menggunakan skrip SQL berikut pada basis data MySQL sumber Anda untuk menampilkan daftar objek tersimpan yang memiliki pendefinisi yang tidak didukung.

```
-- This SQL query lists routines with `rdsadmin`@`localhost` as the definer.

SELECT
    ROUTINE_SCHEMA,
    ROUTINE_NAME
FROM
    information_schema.routines
WHERE
    definer = 'rdsadmin@localhost';

-- This SQL query lists triggers with `rdsadmin`@`localhost` as the definer.

SELECT
    TRIGGER_SCHEMA,
    TRIGGER_NAME,
    DEFINER
FROM
    information_schema.triggers
WHERE
    DEFINER = 'rdsadmin@localhost';

-- This SQL query lists events with `rdsadmin`@`localhost` as the definer.

SELECT
    EVENT_SCHEMA,
    EVENT_NAME
FROM
    information_schema.events
WHERE
    DEFINER = 'rdsadmin@localhost';

-- This SQL query lists views with `rdsadmin`@`localhost` as the definer.
SELECT
    TABLE_SCHEMA,
    TABLE_NAME
FROM
    information_schema.views
WHERE
    DEFINER = 'rdsadmin@localhost';
```

# Migrasi logis dari MySQL ke Amazon Aurora MySQL dengan menggunakan mysqldump
<a name="AuroraMySQL.Migrating.ExtMySQL.mysqldump"></a>

Karena Amazon Aurora MySQL adalah database yang kompatibel dengan MySQL, Anda dapat menggunakan utilitas untuk menyalin data dari database MySQL Anda atau utilitas `mysqldump` untuk menyalin data Anda dari database MariaDB Anda ke cluster DB Aurora MySQL yang ada. `mariadb-dump`

*Untuk diskusi tentang cara melakukannya dengan database MySQL atau MariaDB yang sangat besar, lihat topik berikut di Panduan Pengguna Amazon Relational Database Service:*
+ MySQL [- Mengimpor data ke Amazon RDS untuk database MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-importing-data-reduced-downtime.html) dengan downtime yang dikurangi
+ MariaDB [- Mengimpor data ke database Amazon RDS for MariaDB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mariadb-importing-data-reduced-downtime.html) dengan waktu henti yang dikurangi

*Untuk database MySQL atau MariaDB yang memiliki jumlah data lebih kecil, lihat topik berikut di Panduan Pengguna Layanan Amazon Relational Database Service:*
+ MySQL [- Mengimpor data dari database MySQL eksternal ke Amazon RDS for MySQL DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-importing-data-external-database.html) instance
+ MariaDB [- Mengimpor data dari database MariaDB eksternal ke instans Amazon RDS for MariaDB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mariadb-importing-data-external-database.html)

# Memigrasikan data dari instans DB RDS for MySQL ke klaster DB Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.RDSMySQL"></a>

Anda dapat memigrasikan (menyalin) data ke klaster DB Amazon Aurora MySQL dari instans DB RDS for MySQL.

**Topics**
+ [Memigrasikan snapshot RDS for MySQL ke Aurora](AuroraMySQL.Migrating.RDSMySQL.Snapshot.md)
+ [Memigrasikan data dari instans DB RDS for MySQL ke klaster DB Amazon Aurora MySQL menggunakan replika baca Aurora](AuroraMySQL.Migrating.RDSMySQL.Replica.md)

**catatan**  
Karena Amazon Aurora MySQL kompatibel dengan MySQL, Anda dapat memigrasikan data dari basis data MySQL dengan mengatur replikasi antara basis data MySQL Anda dan klaster DB Amazon Aurora MySQL. Lihat informasi yang lebih lengkap di [Replikasi dengan Amazon Aurora](Aurora.Replication.md).

# Memigrasikan snapshot RDS for MySQL ke Aurora
<a name="AuroraMySQL.Migrating.RDSMySQL.Snapshot"></a>

Anda dapat memigrasikan snapshot DB dari instans DB RDS for MySQL untuk membuat klaster DB Aurora MySQL. Klaster DB Aurora MySQL yang baru akan diisi dengan data dari instans DB RDS for MySQL asli. Snapshot DB ini harus dibuat dari instans DB Amazon RDS yang menjalankan versi MySQL yang kompatibel dengan Aurora MySQL.

Anda dapat memigrasikan snapshot DB manual atau otomatis. Setelah klaster DB dibuat, Anda dapat membuat Replika Aurora opsional.

**catatan**  
Anda juga dapat memigrasikan instans DB RDS for MySQL ke klaster DB Aurora MySQL dengan membuat replika baca Aurora dari instans DB RDS for MySQL sumber Anda. Untuk informasi selengkapnya, lihat [Memigrasikan data dari instans DB RDS for MySQL ke klaster DB Amazon Aurora MySQL menggunakan replika baca Aurora](AuroraMySQL.Migrating.RDSMySQL.Replica.md).  
Anda tidak dapat bermigrasi ke MySQL versi 3.05 dan yang lebih tinggi dari beberapa versi MySQL 8.0 yang lebih lama, termasuk 8.0.11, 8.0.13, dan 8.0.15. Kami menyarankan agar Anda meningkatkan ke MySQL 8.0.28 sebelum migrasi.

Langkah-langkah umum yang harus Anda ambil adalah sebagai berikut:

1. Tentukan jumlah ruang yang perlu disediakan untuk klaster DB Aurora MySQL Anda. Untuk informasi selengkapnya, lihat [Berapa banyak ruang yang saya butuhkan?](#AuroraMySQL.Migrating.RDSMySQL.Space).

1. Gunakan konsol untuk membuat snapshot di AWS Wilayah tempat instance Amazon RDS MySQL berada. Untuk informasi tentang membuat snapshot DB, lihat [Membuat snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).

1. Jika snapshot DB tidak berada di AWS Wilayah yang sama dengan cluster DB Anda, gunakan konsol Amazon RDS untuk menyalin snapshot DB ke Wilayah tersebut. AWS Untuk informasi tentang menyalin snapshot DB, lihat [Menyalin snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html).

1. Gunakan konsol untuk memigrasikan snapshot DB dan membuat klaster DB Aurora MySQL dengan basis data yang sama dengan instans DB MySQL asli. 

**Awas**  
Amazon RDS membatasi setiap AWS akun menjadi satu salinan snapshot ke setiap AWS Wilayah sekaligus.

## Berapa banyak ruang yang saya butuhkan?
<a name="AuroraMySQL.Migrating.RDSMySQL.Space"></a>

Saat Anda memigrasikan snapshot dari instans DB MySQL ke dalam klaster DB Aurora MySQL, Aurora akan menggunakan volume Amazon Elastic Block Store (Amazon EBS) untuk memformat data dari snapshot ini sebelum memigrasikannya. Dalam beberapa kasus, ruang tambahan diperlukan untuk memformat data untuk migrasi.

Tabel yang bukan berupa tabel MyISAM dan tidak dikompresi dapat berukuran hingga 16 TB. Jika Anda memiliki tabel MyISAM, Aurora harus menggunakan ruang tambahan dalam volume untuk mengonversi tabel ini agar kompatibel dengan Aurora MySQL. Jika Anda memiliki tabel yang dikompresi, Aurora harus menggunakan ruang tambahan dalam volume untuk memperluas tabel tersebut sebelum menyimpannya di volume klaster Aurora. Karena persyaratan ruang tambahan ini, Anda harus memastikan bahwa tidak ada tabel MyISAM dan tabel terkompresi yang dimigrasikan dari instans DB MySQL Anda yang berukuran lebih dari 8 TB.

## Mengurangi jumlah ruang yang diperlukan untuk memigrasikan data ke Amazon Aurora MySQL
<a name="AuroraMySQL.Migrating.RDSMySQL.PreImport"></a>

Anda sebaiknya memodifikasi skema basis data Anda sebelum memigrasikannya ke Amazon Aurora. Modifikasi tersebut dapat membantu dalam kasus berikut: 
+ Anda ingin mempercepat proses migrasi.
+ Anda tidak yakin berapa banyak ruang yang perlu disediakan.
+ Anda telah mencoba memigrasikan data Anda dan migrasi gagal karena kurangnya ruang terprovisi.

Anda dapat membuat perubahan berikut untuk meningkatkan proses migrasi basis data ke Amazon Aurora.

**penting**  
Pastikan untuk melakukan pembaruan ini pada instans DB baru yang dipulihkan dari snapshot basis data produksi, alih-alih pada instans produksi. Kemudian, Anda dapat memigrasikan data dari snapshot instans DB baru Anda ke dalam klaster DB Aurora untuk menghindari gangguan layanan apa pun pada basis data produksi Anda.


| Jenis tabel | Batasan atau pedoman | 
| --- | --- | 
|  Tabel MyISAM  |  Aurora MySQL hanya mendukung tabel InnoDB. Jika Anda memiliki tabel MyISAM di basis data Anda, tabel tersebut harus dikonversi sebelum dimigrasikan ke Aurora MySQL. Proses konversi memerlukan ruang tambahan untuk konversi MyISAM ke InnoDB selama prosedur migrasi. Untuk mengurangi kemungkinan Anda kehabisan ruang atau untuk mempercepat proses migrasi, konversikan semua tabel MyISAM Anda ke tabel InnoDB sebelum memigrasikannya. Ukuran tabel InnoDB yang dihasilkan akan setara dengan ukuran yang diperlukan oleh Aurora MySQL untuk tabel tersebut. Untuk mengonversi tabel MyISAM ke InnoDB, jalankan perintah berikut:  `alter table <schema>.<table_name> engine=innodb, algorithm=copy;`   | 
|  Tabel terkompresi  |  Aurora MySQL tidak mendukung tabel terkompresi (yaitu, tabel yang dibuat dengan `ROW_FORMAT=COMPRESSED`).  Untuk mengurangi kemungkinan Anda kehabisan ruang atau untuk mempercepat proses migrasi, perluas tabel terkompresi Anda dengan mengatur `ROW_FORMAT` ke `DEFAULT`, `COMPACT`, `DYNAMIC`, atau `REDUNDANT`. Untuk informasi selengkapnya, lihat [InnoDB row formats](https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format.html) dalam dokumentasi MySQL.  | 

Anda dapat menggunakan skrip SQL berikut pada instans DB MySQL yang ada untuk menampilkan daftar tabel dalam basis data Anda yang merupakan tabel MyISAM atau tabel terkompresi.

```
-- This script examines a MySQL database for conditions that block
-- migrating the database into Amazon Aurora.
-- It needs to be run from an account that has read permission for the
-- INFORMATION_SCHEMA database.

-- Verify that this is a supported version of MySQL.

select msg as `==> Checking current version of MySQL.`
from
  (
  select
    'This script should be run on MySQL version 5.6 or higher. ' +
    'Earlier versions are not supported.' as msg,
    cast(substring_index(version(), '.', 1) as unsigned) * 100 +
      cast(substring_index(substring_index(version(), '.', 2), '.', -1)
      as unsigned)
    as major_minor
  ) as T
where major_minor <> 506;


-- List MyISAM and compressed tables. Include the table size.

select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`,
round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)"
from INFORMATION_SCHEMA.TABLES
where
  ENGINE <> 'InnoDB'
  and
  (
    -- User tables
    TABLE_SCHEMA not in ('mysql', 'performance_schema',
                         'information_schema')
    or
    -- Non-standard system tables
    (
      TABLE_SCHEMA = 'mysql' and TABLE_NAME not in
        (
          'columns_priv', 'db', 'event', 'func', 'general_log',
          'help_category', 'help_keyword', 'help_relation',
          'help_topic', 'host', 'ndb_binlog_index', 'plugin',
          'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log',
          'tables_priv', 'time_zone', 'time_zone_leap_second',
          'time_zone_name', 'time_zone_transition',
          'time_zone_transition_type', 'user'
        )
    )
  )
  or
  (
    -- Compressed tables
       ROW_FORMAT = 'Compressed'
  );
```

Skrip ini menghasilkan output yang mirip dengan output dalam contoh berikut. Contoh ini menunjukkan dua tabel yang harus dikonversi dari MyISAM ke InnoDB. Output-nya juga berisi perkiraan ukuran setiap tabel dalam megabyte (MB). 

```
+---------------------------------+------------------+
| ==> MyISAM or Compressed Tables | Approx size (MB) |
+---------------------------------+------------------+
| test.name_table                 |          2102.25 |
| test.my_table                   |            65.25 |
+---------------------------------+------------------+
2 rows in set (0.01 sec)
```

## Memigrasikan snapshot DB RDS for MySQL ke klaster DB Aurora MySQL
<a name="migrate-snapshot-ams-cluster"></a>

Anda dapat memigrasikan snapshot DB dari instans RDS untuk MySQL DB untuk membuat cluster DB MySQL Aurora menggunakan atau. Konsol Manajemen AWS AWS CLI Klaster DB Aurora MySQL yang baru akan diisi dengan data dari instans DB RDS for MySQL asli. Untuk informasi tentang membuat snapshot DB, lihat [Membuat snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html).

Jika snapshot DB tidak berada di AWS Wilayah tempat Anda ingin menemukan data Anda, salin snapshot DB ke Wilayah itu AWS . Untuk informasi tentang menyalin snapshot DB, lihat [Menyalin snapshot DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html).

### Konsol
<a name="AuroraMySQL.Migrating.RDSMySQL.Import.Console"></a>

Saat Anda memigrasikan snapshot DB dengan menggunakan Konsol Manajemen AWS, konsol mengambil tindakan yang diperlukan untuk hanya membuat cluster DB.

Anda juga dapat memilih klaster DB Aurora MySQL baru Anda untuk dienkripsi saat diam menggunakan AWS KMS key.

**Untuk memigrasikan snapshot MySQL DB dengan menggunakan Konsol Manajemen AWS**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Mulai migrasi dari instans DB MySQL atau dari snapshot:

   Untuk memulai migrasi dari instans DB:

   1. Di panel navigasi, pilih **Basis data**, lalu pilih instans DB MySQL.

   1. Untuk **Tindakan**, pilih **Migrasikan snapshot terbaru**.

   Untuk memulai migrasi dari snapshot:

   1. Pilih **Snapshot**.

   1. Di **Snapshot**, pilih snapshot yang ingin Anda migrasikan ke klaster DB Aurora MySQL.

   1. Pilih **Tindakan Snapshot**, lalu pilih **Migrasikan Snapshot**.

   Halaman **Migrasikan Basis Data** akan muncul.

1. Tetapkan nilai-nilai berikut pada halaman **Migrasikan Basis Data**:
   + **Migrasikan ke Mesin DB**: Pilih `aurora`.
   + **Versi Mesin DB**: Pilih versi mesin DB untuk klaster DB Aurora MySQL.
   + **Kelas Instans DB**: Pilih kelas instans DB yang memiliki penyimpanan dan kapasitas yang diperlukan untuk basis data Anda, misalnya `db.r3.large`. Volume klaster Aurora secara otomatis bertambah seiring peningkatan jumlah data dalam basis data Anda. Volume klaster Aurora dapat bertambah hingga ukuran maksimum 128 tebibyte (TiB). Jadi, Anda hanya perlu memilih kelas instans DB yang memenuhi persyaratan penyimpanan Anda saat ini. Untuk informasi selengkapnya, lihat [Gambaran umum penyimpanan Amazon Aurora](Aurora.Overview.StorageReliability.md#Aurora.Overview.Storage).
   + **Pengenal Instans DB**: Ketik nama untuk cluster DB yang unik untuk akun Anda di AWS Wilayah yang Anda pilih. Pengidentifikasi ini digunakan di alamat titik akhir untuk instans di klaster DB Anda. Anda dapat memilih untuk menambahkan beberapa kecerdasan ke nama, seperti menyertakan AWS Region dan mesin DB yang Anda pilih, misalnya**aurora-cluster1**.

     Pengidentifikasi instans DB memiliki batasan berikut:
     + Pengidentifikasi ini harus berisi 1 hingga 63 karakter alfanumerik atau tanda hubung.
     + Karakter pertamanya harus berupa huruf.
     + Pengidentifikasi ini tidak boleh diakhiri dengan tanda hubung atau mengandung dua tanda hubung berturut-turut.
     + Ini harus unik untuk semua instans DB per AWS akun, per AWS Wilayah.
   + **Cloud Privat Virtual (VPC):** Jika Anda sudah memiliki VPC, Anda dapat menggunakan VPC tersebut dengan klaster DB Aurora MySQL dengan memilih pengidentifikasi VPC Anda, misalnya `vpc-a464d1c1`. Untuk informasi tentang membuat VPC, lihat [Tutorial: Buat VPC untuk digunakan dengan cluster DB (hanya) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md).

     Atau, Anda dapat memilih agar Aurora membuat VPC untuk Anda dengan memilih **Buat VPC baru**. 
   + **Grup subnet**: Jika Anda memiliki grup subnet yang ada, Anda dapat menggunakan grup subnet tersebut dengan klaster DB Aurora MySQL Anda dengan memilih pengidentifikasi grup subnet Anda, misalnya `gs-subnet-group1`.

     Jika tidak, Anda dapat memilih agar Aurora membuat grup subnet untuk Anda dengan memilih **Buat grup subnet baru**. 
   + **Aksesibilitas publik**: Pilih **Tidak** untuk menentukan bahwa instans di klaster DB Anda hanya dapat diakses oleh sumber daya di dalam VPC Anda. Pilih **Ya** untuk menentukan bahwa instans dalam klaster DB Anda dapat diakses oleh sumber daya di jaringan publik. Default-nya adalah **Ya**.
**catatan**  
Klaster DB produksi Anda mungkin tidak perlu berada di subnet publik karena hanya server aplikasi Anda yang memerlukan akses ke klaster DB Anda. Jika klaster DB Anda tidak perlu berada di subnet publik, tetapkan **Dapat Diakses Publik** ke **Tidak**.
   + **Ketersediaan Zona**: Pilih Zona Ketersediaan guna meng-host instans primer untuk klaster DB Aurora MySQL Anda. Agar Aurora memilih Zona Ketersediaan untuk Anda, pilih **Tidak Ada Preferensi**.
   + **Port Basis Data**: Ketik port default yang akan digunakan saat menghubungkan ke instans di klaster DB Aurora MySQL. Nilai default-nya `3306`.
**catatan**  
Anda mungkin berada di belakang firewall perusahaan yang tidak mengizinkan akses ke port default seperti port default MySQL, 3306. Dalam hal ini, berikan nilai port yang diizinkan oleh firewall perusahaan Anda. Ingat nilai port tersebut nanti saat Anda terhubung ke klaster DB Aurora MySQL.
   + **Enkripsi**: Pilih **Aktifkan Enkripsi** untuk klaster DB Aurora MySQL baru Anda agar dienkripsi saat diam. Jika Anda memilih **Aktifkan Enkripsi**, Anda harus memilih kunci KMS sebagai nilai **AWS KMS key**.

     Jika snapshot DB Anda tidak terenkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam.

     Jika snapshot DB Anda dienkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam menggunakan kunci enkripsi yang ditentukan. Anda dapat menentukan kunci enkripsi yang digunakan oleh snapshot DB atau kunci yang berbeda. Anda tidak dapat membuat klaster DB yang tidak terenkripsi dari snapshot DB terenkripsi.
   + **Peningkatan Versi Minor Otomatis**: Pengaturan ini tidak berlaku untuk klaster DB Aurora MySQL.

     Untuk informasi selengkapnya tentang pembaruan mesin untuk Aurora MySQL, lihat [Pembaruan mesin database untuk Amazon Aurora My SQLDukungan jangka panjang (LTS) dan rilis beta untuk Amazon Aurora MySQL](AuroraMySQL.Updates.md).

1. Pilih **Migrasikan** untuk memigrasikan snapshot DB Anda. 

1. Pilih **Instans**, lalu pilih ikon panah untuk menampilkan detail klaster DB dan memantau progres migrasi. Di halaman detail, Anda dapat menemukan titik akhir klaster yang digunakan untuk terhubung ke instans primer klaster DB. Untuk informasi selengkapnya tentang menghubungkan ke klaster DB Aurora MySQL, lihat [Menghubungkan ke klaster DB Amazon Aurora](Aurora.Connecting.md). 

### AWS CLI
<a name="USER_ImportAuroraCluster.CLI"></a>

Anda dapat membuat klaster DB Aurora dari snapshot DB milik instans DB RDS for MySQL menggunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) dengan parameter berikut:
+ `--db-cluster-identifier` – Nama klaster DB yang akan dibuat.
+ `--engine aurora-mysql` – Untuk klaster DB yang kompatibel dengan MySQL 5.7 atau yang kompatibel dengan MySQL 8.0.
+ `--kms-key-id`— AWS KMS key Untuk mengenkripsi cluster DB secara opsional, tergantung pada apakah snapshot DB Anda dienkripsi.
  + Jika snapshot DB Anda tidak terenkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam. Jika tidak, klaster DB Anda tidak dienkripsi.
  + Jika snapshot DB Anda dienkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam menggunakan kunci enkripsi yang ditentukan. Jika tidak, klaster DB Anda dienkripsi saat diam menggunakan kunci enkripsi untuk snapshot DB.
**catatan**  
Anda tidak dapat membuat klaster DB yang tidak terenkripsi dari snapshot DB terenkripsi.
+ `--snapshot-identifier` – Nama Amazon Resource Name (ARN) untuk snapshot DB yang akan dimigrasikan. Untuk informasi selengkapnya tentang Amazon RDS ARNs, lihat [Amazon Relational Database Service (Amazon](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds) RDS).

Saat Anda memigrasikan snapshot DB dengan menggunakan perintah `RestoreDBClusterFromSnapshot`, perintah ini akan membuat klaster DB dan instans primer.

Dalam contoh ini, Anda membuat kluster DB yang kompatibel dengan MySQL 5.7 yang *mydbcluster* dinamai dari snapshot DB dengan ARN yang disetel ke. *mydbsnapshotARN*

Untuk Linux, macOS, atau Unix:

```
aws rds restore-db-cluster-from-snapshot \
    --db-cluster-identifier mydbcluster \
    --snapshot-identifier mydbsnapshotARN \
    --engine aurora-mysql
```

Untuk Windows:

```
aws rds restore-db-cluster-from-snapshot ^
    --db-cluster-identifier mydbcluster ^
    --snapshot-identifier mydbsnapshotARN ^
    --engine aurora-mysql
```

Dalam contoh ini, Anda membuat kluster DB yang kompatibel dengan MySQL 5.7 yang *mydbcluster* dinamai dari snapshot DB dengan ARN yang disetel ke. *mydbsnapshotARN*

Untuk Linux, macOS, atau Unix:

```
aws rds restore-db-cluster-from-snapshot \
    --db-cluster-identifier mydbcluster \
    --snapshot-identifier mydbsnapshotARN \
    --engine aurora-mysql
```

Untuk Windows:

```
aws rds restore-db-cluster-from-snapshot ^
    --db-cluster-identifier mydbcluster ^
    --snapshot-identifier mydbsnapshotARN ^
    --engine aurora-mysql
```

# Memigrasikan data dari instans DB RDS for MySQL ke klaster DB Amazon Aurora MySQL menggunakan replika baca Aurora
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica"></a>

Aurora menggunakan fungsi replikasi biner log mesin DB MySQL untuk membuat jenis khusus klaster DB yang disebut replika baca Aurora untuk instans DB MySQL sumber. Pembaruan yang dibuat ke instans DB RDS for MySQL sumber direplikasi secara asinkron ke replika baca Aurora.

Kami merekomendasikan untuk menggunakan fungsionalitas ini untuk bermigrasi dari instans DB RDS for MySQL ke klaster DB Aurora MySQL dengan membuat replika baca Aurora dari instans DB RDS for Aurora MySQL. Ketika lag replika antara instans DB MySQL dan replika baca Aurora adalah 0, Anda dapat mengarahkan aplikasi klien Anda ke replika baca Aurora lalu menghentikan replikasi untuk menjadikan replika baca Aurora sebagai klaster DB Aurora MySQL mandiri. Lakukan antisipasi sesuai kebutuhan karena migrasi dapat memerlukan waktu yang lama, sekitar beberapa jam per tebibyte (TiB) data.

Untuk daftar wilayah tempat Aurora tersedia, lihat [Amazon Aurora](https://docs.aws.amazon.com/general/latest/gr/rande.html#aurora) dalam *Referensi Umum AWS*.

Saat Anda membuat replika baca Aurora dari instans DB RDS for MySQL, Amazon RDS membuat snapshot DB dari instans DB RDS for MySQL sumber Anda (privat ke Amazon RDS, dan tidak dikenai biaya). Amazon RDS kemudian memigrasikan data dari snapshot DB ke replika baca Aurora. Setelah data dari snapshot DB dimigrasikan ke klaster DB Aurora MySQL baru, Amazon RDS memulai replikasi antara instans DB MySQL Anda dan klaster DB Aurora MySQL. Jika instans DB MySQL Anda berisi tabel yang menggunakan mesin penyimpanan selain InnoDB, atau yang menggunakan format baris terkompresi, Anda dapat mempercepat proses pembuatan replika baca Aurora dengan mengubah tabel tersebut untuk menggunakan mesin penyimpanan InnoDB dan format baris dinamis sebelum Anda membuat replika baca Aurora Anda. Untuk informasi selengkapnya tentang proses menyalin snapshot DB MySQL ke klaster DB Aurora MySQL, lihat [Memigrasikan data dari instans DB RDS for MySQL ke klaster DB Amazon Aurora MySQL](AuroraMySQL.Migrating.RDSMySQL.md).

Anda hanya dapat memiliki satu replika baca Aurora untuk instans DB RDS for MySQL.

**catatan**  
Masalah replikasi dapat muncul karena perbedaan fitur antara Amazon Aurora MySQL dan versi mesin basis data MySQL dari instans DB RDS for MySQL Anda yang merupakan replikasi primer. Jika Anda mengalami kesalahan, Anda dapat menemukan bantuan di [forum komunitas Amazon RDS](https://forums.aws.amazon.com/forum.jspa?forumID=60) atau dengan menghubungi AWS Dukungan.  
Anda tidak dapat membuat replika baca Aurora jika instans DB RDS for MySQL Anda sudah menjadi sumber replika baca lintas Wilayah.  
Anda tidak dapat bermigrasi ke Aurora MySQL versi 3.05 dan lebih tinggi dari beberapa versi RDS for MySQL 8.0 yang lebih lama, termasuk 8.0.11, 8.0.13, dan 8.0.15. Kami menyarankan Anda meningkatkan ke RDS for MySQL versi 8.0.28 sebelum bermigrasi.

Untuk informasi selengkapnya tentang replika baca MySQL, lihat [Menggunakan replika baca instans DB MariaDB, MySQL, dan PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html).

## Membuat replika baca Aurora
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create"></a>

Anda dapat membuat replika baca Aurora untuk instans RDS untuk MySQL DB dengan menggunakan konsol, API, atau RDS. AWS CLI

### Konsol
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create.Console"></a>

**Untuk membuat replika baca Aurora dari instans DB RDS for MySQL sumber**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Database**. 

1. Pilih instans DB MySQL yang ingin Anda gunakan sebagai sumber untuk replika baca Aurora Anda.

1. Untuk **Tindakan**, pilih **Buat replika baca Aurora**.

1. Pilih spesifikasi klaster DB yang ingin Anda gunakan untuk replika baca Aurora, seperti yang dijelaskan dalam tabel berikut.     
<a name="aurora_read_replica_param_advice"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Replica.html)

1. Pilih **Buat replika baca**.

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create.CLI"></a>

Untuk membuat replika baca Aurora dari sumber RDS untuk instance MySQL DB, gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)and [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI untuk membuat cluster DB MySQL Aurora baru. Saat Anda memanggil perintah `create-db-cluster`, sertakan parameter `--replication-source-identifier` untuk mengidentifikasi Amazon Resource Name (ARN) untuk instans DB MySQL sumber. Untuk informasi selengkapnya tentang Amazon RDS ARNs, lihat [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds).

Jangan tentukan nama pengguna master, kata sandi master, atau nama basis data karena replika baca Aurora menggunakan nama pengguna master, kata sandi master, dan nama basis data yang sama dengan instans DB MySQL sumber. 

Untuk Linux, macOS, atau Unix:

```
aws rds create-db-cluster --db-cluster-identifier sample-replica-cluster --engine aurora \
    --db-subnet-group-name mysubnetgroup --vpc-security-group-ids sg-c7e5b0d2 \
    --replication-source-identifier arn:aws:rds:us-west-2:123456789012:db:primary-mysql-instance
```

Untuk Windows:

```
aws rds create-db-cluster --db-cluster-identifier sample-replica-cluster --engine aurora ^
    --db-subnet-group-name mysubnetgroup --vpc-security-group-ids sg-c7e5b0d2 ^
    --replication-source-identifier arn:aws:rds:us-west-2:123456789012:db:primary-mysql-instance
```

Jika Anda menggunakan konsol untuk membuat replika baca Aurora, Aurora secara otomatis membuat instans primer untuk replika baca Aurora klaster DB Anda. Jika Anda menggunakan AWS CLI untuk membuat replika baca Aurora, Anda harus secara eksplisit membuat instance utama untuk cluster DB Anda. Instans primer adalah instans pertama yang dibuat dalam klaster DB.

Anda dapat membuat instance utama untuk cluster DB Anda dengan menggunakan [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI perintah dengan parameter berikut.
+ `--db-cluster-identifier`

  Nama klaster DB Anda.
+ `--db-instance-class`

  Nama kelas instans DB yang akan digunakan untuk instans primer Anda.
+ `--db-instance-identifier`

  Nama instans primer Anda.
+ `--engine aurora`

Dalam contoh ini, Anda membuat instance utama bernama *myreadreplicainstance* untuk cluster DB bernama*myreadreplicacluster*, menggunakan kelas instans DB yang ditentukan dalam*myinstanceclass*.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds create-db-instance \
    --db-cluster-identifier myreadreplicacluster \
    --db-instance-class myinstanceclass \
    --db-instance-identifier myreadreplicainstance \
    --engine aurora
```
Untuk Windows:  

```
aws rds create-db-instance ^
    --db-cluster-identifier myreadreplicacluster ^
    --db-instance-class myinstanceclass ^
    --db-instance-identifier myreadreplicainstance ^
    --engine aurora
```

### API RDS
<a name="Aurora.Migration.RDSMySQL.Create.API"></a>

Untuk membuat replika baca Aurora dari instans DB RDS for MySQL sumber, gunakan perintah API Amazon RDS [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) dan [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) untuk membuat klaster DB dan instans primer Aurora. Jangan tentukan nama pengguna master, kata sandi master, atau nama basis data karena replika baca Aurora menggunakan nama pengguna master, kata sandi master, dan nama basis data yang sama dengan instans DB RDS for MySQL sumber. 

Anda dapat membuat klaster DB Aurora baru untuk replika baca Aurora dari instans DB RDS for MySQL sumber menggunakan perintah API Amazon RDS [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) dengan parameter berikut:
+ `DBClusterIdentifier`

  Nama klaster DB yang akan dibuat.
+ `DBSubnetGroupName`

  Nama grup subnet DB yang akan dikaitkan dengan klaster DB ini.
+ `Engine=aurora`
+ `KmsKeyId`

   AWS KMS key Untuk mengenkripsi cluster DB secara opsional, tergantung pada apakah instance MySQL DB Anda dienkripsi.
  + Jika instans DB MySQL Anda tidak dienkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam. Jika tidak, klaster DB Anda akan dienkripsi saat diam menggunakan kunci enkripsi default untuk akun Anda.
  + Jika instans DB MySQL Anda dienkripsi, tentukan kunci enkripsi agar klaster DB Anda dienkripsi saat diam menggunakan kunci enkripsi yang ditentukan. Jika tidak, klaster DB Anda akan dienkripsi saat diam menggunakan kunci enkripsi untuk instans DB MySQL.
**catatan**  
Anda tidak dapat membuat klaster DB yang tidak terenkripsi dari instans DB MySQL terenkripsi.
+ `ReplicationSourceIdentifier`

  Amazon Resource Name (ARN) untuk instans DB MySQL sumber. Untuk informasi selengkapnya tentang Amazon RDS ARNs, lihat [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds). 
+ `VpcSecurityGroupIds`

  Daftar grup keamanan VPC EC2 yang akan dikaitkan dengan klaster DB ini.

Dalam contoh ini, Anda membuat cluster DB bernama *myreadreplicacluster* dari instance MySQL DB sumber dengan ARN diatur *mysqlprimaryARN* ke, terkait dengan grup subnet DB *mysubnetgroup* bernama dan grup keamanan VPC bernama. *mysecuritygroup*

**Example**  

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CreateDBCluster
    &DBClusterIdentifier=myreadreplicacluster
    &DBSubnetGroupName=mysubnetgroup
    &Engine=aurora
    &ReplicationSourceIdentifier=mysqlprimaryARN
    &SignatureMethod=HmacSHA256
    &SignatureVersion=4
    &Version=2014-10-31
    &VpcSecurityGroupIds=mysecuritygroup
    &X-Amz-Algorithm=AWS4-HMAC-SHA256
    &X-Amz-Credential=AKIADQKE4SARGYLE/20150927/us-east-1/rds/aws4_request
    &X-Amz-Date=20150927T164851Z
    &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
    &X-Amz-Signature=6a8f4bd6a98f649c75ea04a6b3929ecc75ac09739588391cd7250f5280e716db
```

Jika Anda menggunakan konsol untuk membuat replika baca Aurora, Aurora secara otomatis membuat instans primer untuk replika baca Aurora klaster DB Anda. Jika Anda menggunakan AWS CLI untuk membuat replika baca Aurora, Anda harus secara eksplisit membuat instance utama untuk cluster DB Anda. Instans primer adalah instans pertama yang dibuat dalam klaster DB.

Anda dapat membuat instans primer untuk klaster DB Anda dengan menggunakan perintah API Amazon RDS [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) dengan parameter berikut:
+ `DBClusterIdentifier`

  Nama klaster DB Anda.
+ `DBInstanceClass`

  Nama kelas instans DB yang akan digunakan untuk instans primer Anda.
+ `DBInstanceIdentifier`

  Nama instans primer Anda.
+ `Engine=aurora`

Dalam contoh ini, Anda membuat instance utama bernama *myreadreplicainstance* untuk cluster DB bernama*myreadreplicacluster*, menggunakan kelas instans DB yang ditentukan dalam*myinstanceclass*.

**Example**  

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CreateDBInstance
    &DBClusterIdentifier=myreadreplicacluster
    &DBInstanceClass=myinstanceclass
    &DBInstanceIdentifier=myreadreplicainstance
    &Engine=aurora
    &SignatureMethod=HmacSHA256
    &SignatureVersion=4
    &Version=2014-09-01
    &X-Amz-Algorithm=AWS4-HMAC-SHA256
    &X-Amz-Credential=AKIADQKE4SARGYLE/20140424/us-east-1/rds/aws4_request
    &X-Amz-Date=20140424T194844Z
    &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
    &X-Amz-Signature=bee4aabc750bf7dad0cd9e22b952bd6089d91e2a16592c2293e532eeaab8bc77
```

## Melihat replika baca Aurora
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View"></a>

Anda dapat menampilkan relasi replikasi MySQL ke Aurora MySQL untuk klaster DB Aurora MySQL Anda dengan menggunakan Konsol Manajemen AWS atau AWS CLI.

### Konsol
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View.Console"></a>

**Untuk menampilkan instans DB MySQL primer untuk replika baca Aurora**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Basis data**. 

1. Pilih klaster DB untuk replika baca Aurora untuk menampilkan detailnya. Informasi instans DB MySQL primer ada di bidang **Sumber replikasi**.  
![\[Lihat instans primer MySQL\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/aurora-repl6.png)

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View.CLI"></a>

Untuk melihat hubungan replikasi MySQL ke Aurora MySQL untuk cluster DB Aurora MySQL Anda dengan menggunakan, gunakan perintah dan. AWS CLI[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 

Untuk menentukan instans DB MySQL mana yang primer, gunakan [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) dan tentukan pengidentifikasi klaster replika baca Aurora untuk opsi `--db-cluster-identifier`. Lihat elemen `ReplicationSourceIdentifier` dalam output untuk ARN instans DB yang merupakan replikasi primer. 

Untuk menentukan klaster DB mana yang merupakan replika baca Aurora, gunakan [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) dan tentukan pengidentifikasi instans DB MySQL untuk opsi `--db-instance-identifier`. Lihat elemen `ReadReplicaDBClusterIdentifiers` dalam output untuk pengidentifikasi klaster DB dari replika baca Aurora. 

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds describe-db-clusters \
    --db-cluster-identifier myreadreplicacluster
```

```
aws rds describe-db-instances \
    --db-instance-identifier mysqlprimary
```
Untuk Windows:  

```
aws rds describe-db-clusters ^
    --db-cluster-identifier myreadreplicacluster
```

```
aws rds describe-db-instances ^
    --db-instance-identifier mysqlprimary
```

## Mempromosikan replika baca Aurora
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote"></a>

Setelah migrasi selesai, Anda dapat mempromosikan replika baca Aurora ke cluster DB yang berdiri sendiri menggunakan or. Konsol Manajemen AWS AWS CLI

Kemudian, Anda dapat mengarahkan aplikasi klien Anda ke titik akhir untuk replika baca Aurora. Untuk informasi selengkapnya tentang titik akhir Aurora, lihat [Koneksi titik akhir Amazon Aurora](Aurora.Overview.Endpoints.md). Promosi akan selesai dengan cukup cepat, dan Anda dapat membaca dan menulis ke replika baca Aurora selama promosi. Namun, Anda tidak dapat menghapus instans DB MySQL primer atau membatalkan tautan Instans DB dan replika baca Aurora selama waktu ini.

Sebelum Anda mempromosikan replika baca Aurora, hentikan transaksi apa pun agar tidak ditulis ke instans DB MySQL sumber, lalu tunggu hingga lag replika pada replika baca Aurora mencapai 0. Anda dapat melihat lag replika untuk replika baca Aurora dengan memanggil perintah `SHOW SLAVE STATUS` (Aurora MySQL versi 2) atau `SHOW REPLICA STATUS` (Aurora MySQL versi 3) pada replika baca Aurora Anda. Periksa nilai **Detik di belakang master**. 

Anda dapat mulai menulis ke replika baca Aurora setelah transaksi tulis ke primer berhenti dan lag replika adalah 0. Jika Anda menulis ke replika baca Aurora sebelum hal ini terjadi dan Anda memodifikasi tabel yang juga sedang dimodifikasi di MySQL primer, Anda berisiko merusak replikasi ke Aurora. Jika ini terjadi, Anda harus menghapus dan membuat ulang replika baca Aurora Anda.

### Konsol
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote.Console"></a>

**Untuk mempromosikan replika baca Aurora ke klaster DB Aurora**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Basis data**.

1. Pilih klaster DB untuk replika baca Aurora.

1. Untuk **Tindakan**, pilih **Promosikan**.

1. Pilih **Promosikan replika baca**.

Setelah mempromosikan, konfirmasikan bahwa proses promosinya telah selesai dengan menggunakan prosedur berikut.

**Untuk mengonfirmasi bahwa replika baca Aurora telah dipromosikan**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon RDS di [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Di panel navigasi, pilih **Peristiwa**.

1. Di halaman **Peristiwa**, verifikasi bahwa ada peristiwa `Promoted Read Replica cluster to a stand-alone database cluster` untuk klaster yang Anda promosikan.

Setelah promosi selesai, instans DB MySQL primer dan replika baca Aurora akan dibatalkan tautannya, dan Anda dapat menghapus instans DB dengan aman jika ingin.

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote.CLI"></a>

Untuk mempromosikan replika baca Aurora ke cluster DB yang berdiri sendiri, gunakan perintah. [https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html) AWS CLI 

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws rds promote-read-replica-db-cluster \
    --db-cluster-identifier myreadreplicacluster
```
Untuk Windows:  

```
aws rds promote-read-replica-db-cluster ^
    --db-cluster-identifier myreadreplicacluster
```